rewrite includes to not need so much -Ifoo

Current strategy: everything from the top

Things to look at first are the manual changes:

   - added tools/rewrite_includes.py
   - removed -Idirectives from BUILD.gn
   - various compile.sh simplifications
   - tweak tools/embed_resources.py
   - update gn/find_headers.py to write paths from the top
   - update gn/gn_to_bp.py SkUserConfig.h layout
     so that #include "include/config/SkUserConfig.h" always
     gets the header we want.

No-Presubmit: true
Change-Id: I73a4b181654e0e38d229bc456c0d0854bae3363e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209706
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
diff --git a/BUILD.gn b/BUILD.gn
index 657208f..97ed982 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -97,28 +97,13 @@
   import(skia_settings)
 }
 
-skia_public_includes = [
-  "include/android",
-  "include/atlastext",
-  "include/c",
-  "include/codec",
-  "include/config",
-  "include/core",
-  "include/docs",
-  "include/effects",
-  "include/encode",
-  "include/gpu",
-  "include/pathops",
-  "include/ports",
-  "include/svg",
-  "include/utils",
-  "include/utils/mac",
-  "third_party/skcms",
-]
-
 # Skia public API, generally provided by :skia.
 config("skia_public") {
-  include_dirs = skia_public_includes
+  include_dirs = [
+    ".",
+    "third_party/skcms",
+    "include/third_party/vulkan",
+  ]
   defines = []
   if (is_component_build) {
     defines += [ "SKIA_DLL" ]
@@ -152,26 +137,6 @@
   visibility = [ ":*" ]
 
   include_dirs = [
-    "include/private",
-    "src/c",
-    "src/codec",
-    "src/core",
-    "src/effects",
-    "src/fonts",
-    "src/image",
-    "src/images",
-    "src/lazy",
-    "src/opts",
-    "src/pathops",
-    "src/pdf",
-    "src/ports",
-    "src/sfnt",
-    "src/shaders",
-    "src/shaders/gradients",
-    "src/sksl",
-    "src/utils",
-    "src/utils/win",
-    "src/xml",
     "third_party/etc1",
     "third_party/gif",
   ]
@@ -189,12 +154,6 @@
   }
   libs = []
   lib_dirs = []
-  if (skia_enable_gpu) {
-    include_dirs += [ "src/gpu" ]
-    if (is_skia_dev_build && skia_use_vulkan) {
-      include_dirs += [ "tools/gpu/vk" ]
-    }
-  }
   if (skia_use_angle) {
     defines += [ "SK_ANGLE" ]
   }
@@ -508,7 +467,7 @@
       "src/sksl/lex/RegexNode.cpp",
       "src/sksl/lex/RegexParser.cpp",
     ]
-    include_dirs = [ "src/sksl/lex" ]
+    include_dirs = [ "." ]
   }
 
   action("run_sksllex") {
@@ -551,10 +510,7 @@
       "src/sksl/SkSLMain.cpp",
     ]
     sources += skia_sksl_sources
-    include_dirs = [
-      "src/gpu",
-      "src/sksl",
-    ]
+    include_dirs = [ "." ]
     deps = [
       ":run_sksllex",
       "//third_party/spirv-tools",
@@ -1096,18 +1052,6 @@
   static_library("debugcanvas") {
     public_configs = [ ":skia_public" ]
 
-    include_dirs = [
-      "include/gpu",
-      "include/private",
-      "src/gpu",
-      "src/core",
-      "src/sksl",
-      "src/shaders",
-      "src/utils",
-      "tools",
-      "tools/debugger",
-    ]
-
     sources = [
       "tools/UrlDataManager.cpp",
       "tools/debugger/DebugCanvas.cpp",
@@ -1199,9 +1143,31 @@
 
 # Targets guarded by skia_enable_tools may use //third_party freely.
 if (skia_enable_tools) {
+  skia_public_includes = [
+    "include/android",
+    "include/atlastext",
+    "include/c",
+    "include/codec",
+    "include/config",
+    "include/core",
+    "include/docs",
+    "include/effects",
+    "include/encode",
+    "include/gpu",
+    "include/pathops",
+    "include/ports",
+    "include/svg",
+    "include/utils",
+    "include/utils/mac",
+    "modules/sksg/include",
+    "modules/skshaper/include",
+    "modules/skottie/include",
+  ]
+
   # Used by gn_to_bp.py to list our public include dirs.
   source_set("public") {
     configs += [ ":skia_public" ]
+    include_dirs = skia_public_includes
   }
 
   config("skia.h_config") {
@@ -1212,16 +1178,9 @@
     skia_h = "$target_gen_dir/skia.h"
     script = "gn/find_headers.py"
 
-    # TODO: would be cool to not hard-code these here, but how?
-    module_public_includes = [
-      "modules/sksg/include",
-      "modules/skshaper/include",
-      "modules/skottie/include",
-    ]
-    args =
-        [ rebase_path("//bin/gn") ] + [ rebase_path("//") ] +
-        [ rebase_path(skia_h, root_build_dir) ] +
-        rebase_path(skia_public_includes) + rebase_path(module_public_includes)
+    args = [ rebase_path("//bin/gn") ] + [ rebase_path("//") ] +
+           [ rebase_path(skia_h, root_build_dir) ] +
+           rebase_path(skia_public_includes)
     depfile = "$skia_h.deps"
     outputs = [
       skia_h,
@@ -1273,13 +1232,12 @@
 
   template("test_lib") {
     config(target_name + "_config") {
-      include_dirs = invoker.public_include_dirs
       if (defined(invoker.public_defines)) {
         defines = invoker.public_defines
       }
     }
     source_set(target_name) {
-      forward_variables_from(invoker, "*", [ "public_include_dirs" ])
+      forward_variables_from(invoker, "*", [])
       check_includes = false
       public_configs = [
         ":" + target_name + "_config",
@@ -1484,9 +1442,7 @@
   }
 
   test_lib("gpu_tool_utils") {
-    public_include_dirs = []
     public_defines = []
-    public_include_dirs += [ "tools/gpu" ]
 
     defines = []
     if (skia_enable_discrete_gpu) {
@@ -1539,7 +1495,6 @@
       sources += [ "tools/gpu/gl/angle/GLTestContext_angle.cpp" ]
     }
 
-    public_include_dirs += [ "include/third_party/vulkan" ]
     if (skia_use_vulkan) {
       sources += [ "tools/gpu/vk/VkTestContext.cpp" ]
       sources += [ "tools/gpu/vk/VkTestUtils.cpp" ]
@@ -1553,14 +1508,12 @@
   }
 
   test_lib("flags") {
-    public_include_dirs = [ "tools/flags" ]
     sources = [
       "tools/flags/CommandLineFlags.cpp",
     ]
   }
 
   test_lib("common_flags_config") {
-    public_include_dirs = [ "tools/flags" ]
     sources = [
       "tools/flags/CommonFlagsConfig.cpp",
     ]
@@ -1572,7 +1525,6 @@
     ]
   }
   test_lib("common_flags_gpu") {
-    public_include_dirs = [ "tools/flags" ]
     sources = [
       "tools/flags/CommonFlagsGpu.cpp",
     ]
@@ -1584,7 +1536,6 @@
     ]
   }
   test_lib("common_flags_images") {
-    public_include_dirs = [ "tools/flags" ]
     sources = [
       "tools/flags/CommonFlagsImages.cpp",
     ]
@@ -1593,7 +1544,6 @@
     ]
   }
   test_lib("common_flags_aa") {
-    public_include_dirs = [ "tools/flags" ]
     sources = [
       "tools/flags/CommonFlagsAA.cpp",
     ]
@@ -1603,7 +1553,6 @@
   }
 
   test_lib("trace") {
-    public_include_dirs = [ "tools/trace" ]
     deps = [
       ":flags",
     ]
@@ -1618,12 +1567,6 @@
   }
 
   test_lib("tool_utils") {
-    public_include_dirs = [
-      "tools",
-      "tools/debugger",
-      "tools/fonts",
-      "tools/timer",
-    ]
     sources = [
       "tools/AndroidSkDebugToStdOut.cpp",
       "tools/CrashHandler.cpp",
@@ -1673,7 +1616,6 @@
 
   import("gn/gm.gni")
   test_lib("gm") {
-    public_include_dirs = [ "gm" ]
     sources = gm_sources
     deps = [
       ":flags",
@@ -1691,7 +1633,6 @@
 
   import("gn/tests.gni")
   test_lib("tests") {
-    public_include_dirs = [ "tests" ]
     sources = tests_sources + pathops_tests_sources
     if (!skia_enable_fontmgr_android) {
       sources -= [ "//tests/FontMgrAndroidParserTest.cpp" ]
@@ -1718,7 +1659,6 @@
 
   import("gn/bench.gni")
   test_lib("bench") {
-    public_include_dirs = [ "bench" ]
     sources = bench_sources
     deps = [
       ":flags",
@@ -1730,9 +1670,7 @@
   }
 
   test_lib("experimental_svg_model") {
-    public_include_dirs = []
     if (skia_use_expat) {
-      public_include_dirs += [ "experimental/svg/model" ]
       sources = [
         "experimental/svg/model/SkSVGAttribute.cpp",
         "experimental/svg/model/SkSVGAttributeParser.cpp",
@@ -1767,7 +1705,6 @@
 
   if (skia_use_lua) {
     test_lib("lua") {
-      public_include_dirs = []
       sources = [
         "src/utils/SkLua.cpp",
         "src/utils/SkLuaCanvas.cpp",
@@ -1823,8 +1760,6 @@
   if (target_cpu != "wasm") {
     import("gn/samples.gni")
     test_lib("samples") {
-      public_include_dirs = [ "samplecode" ]
-      include_dirs = [ "experimental" ]
       sources = samples_sources
       public_deps = [
         ":tool_utils",
@@ -1862,7 +1797,6 @@
       ]
     }
     test_lib("hash_and_encode") {
-      public_include_dirs = [ "tools" ]
       sources = [
         "tools/HashAndEncode.cpp",
         "tools/HashAndEncode.h",
@@ -2060,12 +1994,6 @@
   }
 
   test_app("fuzz") {
-    include_dirs = [
-      "tools",
-      "tools/debugger",
-      "tools/fonts",
-      "src/sksl",
-    ]
     sources = [
       "fuzz/Fuzz.cpp",
       "fuzz/FuzzCanvas.cpp",
@@ -2155,7 +2083,6 @@
 
   if (!is_win) {
     test_lib("skqp_lib") {
-      public_include_dirs = [ "tools/skqp/src" ]
       defines =
           [ "SK_SKQP_GLOBAL_ERROR_TOLERANCE=$skia_skqp_global_error_tolerance" ]
       sources = [
@@ -2216,7 +2143,6 @@
       ]
       libs = []
 
-      include_dirs = []
       deps = [
         ":skia",
         "modules/skottie",
@@ -2246,7 +2172,6 @@
   }
 
   test_lib("sk_app") {
-    public_include_dirs = [ "tools/sk_app" ]
     sources = [
       "tools/sk_app/CommandSet.cpp",
       "tools/sk_app/GLWindowContext.cpp",
@@ -2351,7 +2276,6 @@
         "tools/fiddle/examples.cpp",
         "tools/fiddle/examples.h",
       ]
-      include_dirs = [ "tools" ]
       if (is_win) {
         cflags = [ "/wd4756" ]  # Overflow in constant arithmetic
       }
@@ -2383,7 +2307,6 @@
     ]
     libs = []
 
-    include_dirs = [ "experimental" ]
     deps = [
       ":common_flags_gpu",
       ":experimental_svg_model",
@@ -2474,7 +2397,6 @@
       ]
       libs = []
 
-      include_dirs = []
       deps = [
         ":flags",
         ":gpu_tool_utils",
@@ -2491,7 +2413,6 @@
         "example/SkiaSDLExample.cpp",
       ]
       libs = []
-      include_dirs = []
       deps = [
         ":gpu_tool_utils",
         ":skia",
@@ -2559,8 +2480,6 @@
         "$skia_qt_path/include",
         "$skia_qt_path/include/QtCore",
         "$skia_qt_path/include/QtWidgets",
-        "tools",
-        "tools/debugger",
       ]
       deps = [
         ":generate_mocs",
diff --git a/bench/AAClipBench.cpp b/bench/AAClipBench.cpp
index 82e4e38..98bf2c0 100644
--- a/bench/AAClipBench.cpp
+++ b/bench/AAClipBench.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkAAClip.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkRegion.h"
-#include "SkString.h"
-#include "SkClipOpPriv.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkAAClip.h"
+#include "src/core/SkClipOpPriv.h"
 
 ////////////////////////////////////////////////////////////////////////////////
 // This bench tests out AA/BW clipping via canvas' clipPath and clipRect calls
diff --git a/bench/AlternatingColorPatternBench.cpp b/bench/AlternatingColorPatternBench.cpp
index b2735cf0..529686a 100644
--- a/bench/AlternatingColorPatternBench.cpp
+++ b/bench/AlternatingColorPatternBench.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkGradientShader.h"
 
 enum ColorPattern {
     kWhite_ColorPattern,
diff --git a/bench/AndroidCodecBench.cpp b/bench/AndroidCodecBench.cpp
index ba92a74..96f50c6 100644
--- a/bench/AndroidCodecBench.cpp
+++ b/bench/AndroidCodecBench.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "AndroidCodecBench.h"
-#include "CodecBenchPriv.h"
-#include "CommandLineFlags.h"
-#include "SkAndroidCodec.h"
-#include "SkBitmap.h"
-#include "SkOSFile.h"
+#include "bench/AndroidCodecBench.h"
+#include "bench/CodecBenchPriv.h"
+#include "include/codec/SkAndroidCodec.h"
+#include "include/core/SkBitmap.h"
+#include "src/core/SkOSFile.h"
+#include "tools/flags/CommandLineFlags.h"
 
 AndroidCodecBench::AndroidCodecBench(SkString baseName, SkData* encoded, int sampleSize)
     : fData(SkRef(encoded))
diff --git a/bench/AndroidCodecBench.h b/bench/AndroidCodecBench.h
index 528ecab..95c9781 100644
--- a/bench/AndroidCodecBench.h
+++ b/bench/AndroidCodecBench.h
@@ -8,12 +8,12 @@
 #ifndef AndroidCodecBench_DEFINED
 #define AndroidCodecBench_DEFINED
 
-#include "Benchmark.h"
-#include "SkAutoMalloc.h"
-#include "SkData.h"
-#include "SkImageInfo.h"
-#include "SkRefCnt.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkString.h"
+#include "src/core/SkAutoMalloc.h"
 
 /**
  *  Time SkAndroidCodec.
diff --git a/bench/BenchLogger.cpp b/bench/BenchLogger.cpp
index 7eae514..cef5232 100644
--- a/bench/BenchLogger.cpp
+++ b/bench/BenchLogger.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "BenchLogger.h"
+#include "bench/BenchLogger.h"
 
-#include "SkStream.h"
+#include "include/core/SkStream.h"
 
 BenchLogger::BenchLogger()
 : fFileStream(nullptr) {}
diff --git a/bench/BenchLogger.h b/bench/BenchLogger.h
index a7c283a..9e4aa65 100644
--- a/bench/BenchLogger.h
+++ b/bench/BenchLogger.h
@@ -9,8 +9,8 @@
 #define BenchLogger_DEFINED
 
 #include <stdio.h>
-#include "SkString.h"
-#include "SkTypes.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
 
 class SkFILEWStream;
 
diff --git a/bench/Benchmark.cpp b/bench/Benchmark.cpp
index 9438e08..eba1750 100644
--- a/bench/Benchmark.cpp
+++ b/bench/Benchmark.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
+#include "bench/Benchmark.h"
 
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkParse.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/utils/SkParse.h"
 
 template BenchRegistry* BenchRegistry::gHead;
 
diff --git a/bench/Benchmark.h b/bench/Benchmark.h
index b9126ce..ca9aa5b 100644
--- a/bench/Benchmark.h
+++ b/bench/Benchmark.h
@@ -8,10 +8,10 @@
 #ifndef Benchmark_DEFINED
 #define Benchmark_DEFINED
 
-#include "SkPoint.h"
-#include "SkRefCnt.h"
-#include "SkString.h"
-#include "../tools/Registry.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkString.h"
+#include "tools/Registry.h"
 
 #define DEF_BENCH3(code, N) \
     static BenchRegistry gBench##N([](void*) -> Benchmark* { code; });
diff --git a/bench/BezierBench.cpp b/bench/BezierBench.cpp
index 6c8be69..395cdde 100644
--- a/bench/BezierBench.cpp
+++ b/bench/BezierBench.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkString.h"
 
 struct BezierRec {
     SkCanvas*   fCanvas;
diff --git a/bench/BigPathBench.cpp b/bench/BigPathBench.cpp
index 6c49ae7..02f4203 100644
--- a/bench/BigPathBench.cpp
+++ b/bench/BigPathBench.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "ToolUtils.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "tools/ToolUtils.h"
 
 enum Align {
     kLeft_Align,
diff --git a/bench/BitmapBench.cpp b/bench/BitmapBench.cpp
index a44a897..d06de27 100644
--- a/bench/BitmapBench.cpp
+++ b/bench/BitmapBench.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkPaint.h"
-#include "SkRandom.h"
-#include "SkString.h"
-#include "ToolUtils.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 /*  Variants for bitmaps
 
diff --git a/bench/BitmapRectBench.cpp b/bench/BitmapRectBench.cpp
index 0e5d362..563f1af 100644
--- a/bench/BitmapRectBench.cpp
+++ b/bench/BitmapRectBench.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkPaint.h"
-#include "SkRandom.h"
-#include "SkString.h"
-#include "SkTo.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkString.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkRandom.h"
 
 static void draw_into_bitmap(const SkBitmap& bm) {
     const int w = bm.width();
diff --git a/bench/BitmapRegionDecoderBench.cpp b/bench/BitmapRegionDecoderBench.cpp
index d80fc5d..52014b9 100644
--- a/bench/BitmapRegionDecoderBench.cpp
+++ b/bench/BitmapRegionDecoderBench.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "BitmapRegionDecoderBench.h"
-#include "CodecBenchPriv.h"
-#include "SkBitmap.h"
-#include "SkOSFile.h"
+#include "bench/BitmapRegionDecoderBench.h"
+#include "bench/CodecBenchPriv.h"
+#include "include/core/SkBitmap.h"
+#include "src/core/SkOSFile.h"
 
 BitmapRegionDecoderBench::BitmapRegionDecoderBench(const char* baseName, SkData* encoded,
         SkColorType colorType, uint32_t sampleSize, const SkIRect& subset)
diff --git a/bench/BitmapRegionDecoderBench.h b/bench/BitmapRegionDecoderBench.h
index 3099055..3d3372f 100644
--- a/bench/BitmapRegionDecoderBench.h
+++ b/bench/BitmapRegionDecoderBench.h
@@ -8,12 +8,12 @@
 #ifndef BitmapRegionDecoderBench_DEFINED
 #define BitmapRegionDecoderBench_DEFINED
 
-#include "Benchmark.h"
-#include "SkBitmapRegionDecoder.h"
-#include "SkData.h"
-#include "SkImageInfo.h"
-#include "SkRefCnt.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/android/SkBitmapRegionDecoder.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkString.h"
 
 /**
  *  Benchmark Android's BitmapRegionDecoder for a particular colorType, sampleSize, and subset.
diff --git a/bench/BlendmodeBench.cpp b/bench/BlendmodeBench.cpp
index c89e7ea..f51ecce 100644
--- a/bench/BlendmodeBench.cpp
+++ b/bench/BlendmodeBench.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkBlendModePriv.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkPaint.h"
-#include "SkRandom.h"
-#include "SkString.h"
-#include "SkTextBlob.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTextBlob.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkBlendModePriv.h"
 
 // Benchmark that draws non-AA rects or AA text with an SkXfermode::Mode.
 class XfermodeBench : public Benchmark {
diff --git a/bench/BlurBench.cpp b/bench/BlurBench.cpp
index d253f67..06d19d6 100644
--- a/bench/BlurBench.cpp
+++ b/bench/BlurBench.cpp
@@ -4,14 +4,14 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Benchmark.h"
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkMaskFilter.h"
-#include "SkPaint.h"
-#include "SkRandom.h"
-#include "SkShader.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkBlurMask.h"
 
 #define MINI    0.01f
 #define SMALL   SkIntToScalar(2)
diff --git a/bench/BlurImageFilterBench.cpp b/bench/BlurImageFilterBench.cpp
index fdd77ae..c988ee9 100644
--- a/bench/BlurImageFilterBench.cpp
+++ b/bench/BlurImageFilterBench.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkBitmap.h"
-#include "SkBlurImageFilter.h"
-#include "SkOffsetImageFilter.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkRandom.h"
-#include "SkShader.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkOffsetImageFilter.h"
+#include "include/utils/SkRandom.h"
 
 #define FILTER_WIDTH_SMALL  32
 #define FILTER_HEIGHT_SMALL 32
diff --git a/bench/BlurRectBench.cpp b/bench/BlurRectBench.cpp
index 3449ffa..2fe92bd 100644
--- a/bench/BlurRectBench.cpp
+++ b/bench/BlurRectBench.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkRandom.h"
-#include "SkShader.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkBlurMask.h"
 
 #define SMALL   SkIntToScalar(2)
 #define REAL    1.5f
diff --git a/bench/BlurRectsBench.cpp b/bench/BlurRectsBench.cpp
index d41ee1a..ed2b254 100644
--- a/bench/BlurRectsBench.cpp
+++ b/bench/BlurRectsBench.cpp
@@ -5,13 +5,13 @@
 * found in the LICENSE file.
 */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkMaskFilter.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRect.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkString.h"
 
 class BlurRectsBench : public Benchmark {
 public:
diff --git a/bench/BlurRoundRectBench.cpp b/bench/BlurRoundRectBench.cpp
index 624c681..1733f1b 100644
--- a/bench/BlurRoundRectBench.cpp
+++ b/bench/BlurRoundRectBench.cpp
@@ -5,18 +5,18 @@
 * found in the LICENSE file.
 */
 
-#include "Benchmark.h"
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkLayerDrawLooper.h"
-#include "SkMaskFilter.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPoint.h"
-#include "SkRRect.h"
-#include "SkRect.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkLayerDrawLooper.h"
+#include "src/core/SkBlurMask.h"
 
 // Large blurred RR appear frequently on web pages. This benchmark measures our
 // performance in this case.
diff --git a/bench/ChartBench.cpp b/bench/ChartBench.cpp
index 944f610..1daa637 100644
--- a/bench/ChartBench.cpp
+++ b/bench/ChartBench.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkTDArray.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkTDArray.h"
+#include "include/utils/SkRandom.h"
 
 /**
  * This is a conversion of samplecode/SampleChart.cpp into a bench. It sure would be nice to be able
diff --git a/bench/ChecksumBench.cpp b/bench/ChecksumBench.cpp
index 685ac20..27c9bb0 100644
--- a/bench/ChecksumBench.cpp
+++ b/bench/ChecksumBench.cpp
@@ -4,13 +4,13 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkChecksum.h"
-#include "SkOpts.h"
-#include "SkMD5.h"
-#include "SkRandom.h"
-#include "SkTemplates.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/private/SkChecksum.h"
+#include "include/private/SkTemplates.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkMD5.h"
+#include "src/core/SkOpts.h"
 
 enum ChecksumType {
     kMD5_ChecksumType,
diff --git a/bench/ChromeBench.cpp b/bench/ChromeBench.cpp
index 60d86f9..1457b94 100644
--- a/bench/ChromeBench.cpp
+++ b/bench/ChromeBench.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkString.h"
 
 /**
    Benchmarks that try to emulate a particular Skia call pattern observed in Chrome.
diff --git a/bench/ClearBench.cpp b/bench/ClearBench.cpp
index 2fbfd8f..5adfc77 100644
--- a/bench/ClearBench.cpp
+++ b/bench/ClearBench.cpp
@@ -10,15 +10,15 @@
 // partial clears on the GPU should follow a fast path that maps to backend-specialized clear
 // operations, whereas the rounded-rect clear cannot be.
 
-#include "Benchmark.h"
+#include "bench/Benchmark.h"
 
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkPaint.h"
-#include "SkRect.h"
-#include "SkRRect.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRect.h"
+#include "include/effects/SkGradientShader.h"
 
-#include "GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetContext.h"
 
 static sk_sp<SkShader> make_shader() {
     static const SkPoint kPts[] = {{0, 0}, {10, 10}};
diff --git a/bench/ClipMaskBench.cpp b/bench/ClipMaskBench.cpp
index a6e4994..c030b4a 100644
--- a/bench/ClipMaskBench.cpp
+++ b/bench/ClipMaskBench.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkColorSpace.h"
-#include "SkImage.h"
-#include "SkPictureRecorder.h"
-#include "SkString.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkString.h"
+#include "include/core/SkSurface.h"
+#include "tools/ToolUtils.h"
 
 static void DrawMask(SkCanvas* canvas) {
     ToolUtils::draw_checkerboard(canvas, SK_ColorTRANSPARENT, SK_ColorGREEN, 10);
@@ -67,8 +67,8 @@
 });)
 
 /////////
-#include "SkSurface.h"
-#include "SkPath.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkSurface.h"
 
 class RasterTileBench : public Benchmark {
     sk_sp<SkSurface> fSurf;
diff --git a/bench/ClipStrategyBench.cpp b/bench/ClipStrategyBench.cpp
index c65cf4b..4110e3b 100644
--- a/bench/ClipStrategyBench.cpp
+++ b/bench/ClipStrategyBench.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkPathOps.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/pathops/SkPathOps.h"
 
 class ClipStrategyBench : public Benchmark {
 public:
diff --git a/bench/CmapBench.cpp b/bench/CmapBench.cpp
index cc34af1..53d5cef 100644
--- a/bench/CmapBench.cpp
+++ b/bench/CmapBench.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkCharToGlyphCache.h"
-#include "SkFont.h"
-#include "SkRandom.h"
-#include "SkTypeface.h"
-#include "SkUTF.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkTypeface.h"
+#include "include/utils/SkRandom.h"
+#include "src/utils/SkCharToGlyphCache.h"
+#include "src/utils/SkUTF.h"
 
 enum {
     NGLYPHS = 100
diff --git a/bench/CodecBench.cpp b/bench/CodecBench.cpp
index 2794c4a..2c56838 100644
--- a/bench/CodecBench.cpp
+++ b/bench/CodecBench.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "CodecBench.h"
-#include "CodecBenchPriv.h"
-#include "CommandLineFlags.h"
-#include "SkBitmap.h"
-#include "SkCodec.h"
-#include "SkOSFile.h"
+#include "bench/CodecBench.h"
+#include "bench/CodecBenchPriv.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkBitmap.h"
+#include "src/core/SkOSFile.h"
+#include "tools/flags/CommandLineFlags.h"
 
 // Actually zeroing the memory would throw off timing, so we just lie.
 static DEFINE_bool(zero_init, false,
diff --git a/bench/CodecBench.h b/bench/CodecBench.h
index dc44704..78211d7 100644
--- a/bench/CodecBench.h
+++ b/bench/CodecBench.h
@@ -8,12 +8,12 @@
 #ifndef CodecBench_DEFINED
 #define CodecBench_DEFINED
 
-#include "Benchmark.h"
-#include "SkAutoMalloc.h"
-#include "SkData.h"
-#include "SkImageInfo.h"
-#include "SkRefCnt.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkString.h"
+#include "src/core/SkAutoMalloc.h"
 
 /**
  *  Time SkCodec.
diff --git a/bench/CodecBenchPriv.h b/bench/CodecBenchPriv.h
index 50b68f6..44b57ed 100644
--- a/bench/CodecBenchPriv.h
+++ b/bench/CodecBenchPriv.h
@@ -8,7 +8,7 @@
 #ifndef CodecBenchPriv_DEFINED
 #define CodecBenchPriv_DEFINED
 
-#include "SkImageInfo.h"
+#include "include/core/SkImageInfo.h"
 
 inline const char* color_type_to_str(SkColorType colorType) {
     switch (colorType) {
diff --git a/bench/ColorFilterBench.cpp b/bench/ColorFilterBench.cpp
index 46052b3..cced1b2 100644
--- a/bench/ColorFilterBench.cpp
+++ b/bench/ColorFilterBench.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkColorFilterImageFilter.h"
-#include "SkColorMatrixFilter.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/effects/SkColorFilterImageFilter.h"
+#include "include/effects/SkColorMatrixFilter.h"
 
 #define FILTER_WIDTH_SMALL  SkIntToScalar(32)
 #define FILTER_HEIGHT_SMALL SkIntToScalar(32)
diff --git a/bench/ColorPrivBench.cpp b/bench/ColorPrivBench.cpp
index 46aacd74..404fc1f 100644
--- a/bench/ColorPrivBench.cpp
+++ b/bench/ColorPrivBench.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Benchmark.h"
-#include "SkColorData.h"
-#include "SkRandom.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkString.h"
+#include "include/private/SkColorData.h"
+#include "include/utils/SkRandom.h"
 
 template <bool kFast, bool kScale>
 class FourByteInterpBench : public Benchmark {
diff --git a/bench/CompositingImagesBench.cpp b/bench/CompositingImagesBench.cpp
index e7d91b3..6b37a3f 100644
--- a/bench/CompositingImagesBench.cpp
+++ b/bench/CompositingImagesBench.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
+#include "bench/Benchmark.h"
 
-#include "SkCanvas.h"
-#include "SkImage.h"
-#include "SkRandom.h"
-#include "SkSurface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkSurface.h"
+#include "include/utils/SkRandom.h"
 
 enum class ClampingMode {
     // Submit image set entries with the fast constraint
diff --git a/bench/ControlBench.cpp b/bench/ControlBench.cpp
index d76184c..f8e15c9 100644
--- a/bench/ControlBench.cpp
+++ b/bench/ControlBench.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
+#include "bench/Benchmark.h"
 
 // This benchmark's runtime should be fairly constant for a given machine,
 // so it can be used as a baseline to control for thermal or other throttling.
diff --git a/bench/CoverageBench.cpp b/bench/CoverageBench.cpp
index ce590e5..512e2ec 100644
--- a/bench/CoverageBench.cpp
+++ b/bench/CoverageBench.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkAutoPixmapStorage.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkDraw.h"
-#include "SkMatrix.h"
-#include "SkPath.h"
-#include "SkRasterClip.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPath.h"
+#include "src/core/SkAutoPixmapStorage.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkRasterClip.h"
 
 class DrawPathBench : public Benchmark {
     SkPaint     fPaint;
diff --git a/bench/CubicKLMBench.cpp b/bench/CubicKLMBench.cpp
index 8e13a2d..2303fa1 100644
--- a/bench/CubicKLMBench.cpp
+++ b/bench/CubicKLMBench.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
+#include "bench/Benchmark.h"
 
-#include "GrPathUtils.h"
-#include "SkGeometry.h"
+#include "src/core/SkGeometry.h"
+#include "src/gpu/GrPathUtils.h"
 
 class CubicKLMBench : public Benchmark {
 public:
diff --git a/bench/CubicMapBench.cpp b/bench/CubicMapBench.cpp
index 4cc55c5..18ec115 100644
--- a/bench/CubicMapBench.cpp
+++ b/bench/CubicMapBench.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCubicMap.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCubicMap.h"
 
 class CubicMapBench : public Benchmark {
 public:
diff --git a/bench/DashBench.cpp b/bench/DashBench.cpp
index 7c3df8a..99ca576 100644
--- a/bench/DashBench.cpp
+++ b/bench/DashBench.cpp
@@ -4,16 +4,16 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Benchmark.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkDashPathEffect.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkString.h"
-#include "SkStrokeRec.h"
-#include "SkTDArray.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkString.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "include/private/SkTDArray.h"
+#include "include/utils/SkRandom.h"
 
 
 /*
diff --git a/bench/DisplacementBench.cpp b/bench/DisplacementBench.cpp
index 97c008a..b0749fe 100644
--- a/bench/DisplacementBench.cpp
+++ b/bench/DisplacementBench.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkDisplacementMapEffect.h"
-#include "SkImageSource.h"
-#include "SkSurface.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkDisplacementMapEffect.h"
+#include "include/effects/SkImageSource.h"
 
 #define FILTER_WIDTH_SMALL  32
 #define FILTER_HEIGHT_SMALL 32
diff --git a/bench/DrawBitmapAABench.cpp b/bench/DrawBitmapAABench.cpp
index f0ccd89..52a92f7 100644
--- a/bench/DrawBitmapAABench.cpp
+++ b/bench/DrawBitmapAABench.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Benchmark.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkString.h"
 
 /**
  * This bench measures the rendering time of SkCanvas::drawBitmap with different anti-aliasing /
diff --git a/bench/DrawLatticeBench.cpp b/bench/DrawLatticeBench.cpp
index fbab2f7..6182070 100644
--- a/bench/DrawLatticeBench.cpp
+++ b/bench/DrawLatticeBench.cpp
@@ -5,11 +5,11 @@
 * found in the LICENSE file.
 */
 
-#include "Benchmark.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkRect.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkString.h"
 
 class DrawLatticeBench : public Benchmark {
 public:
diff --git a/bench/EncodeBench.cpp b/bench/EncodeBench.cpp
index e9957de..d17ebed 100644
--- a/bench/EncodeBench.cpp
+++ b/bench/EncodeBench.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "Resources.h"
-#include "SkBitmap.h"
-#include "SkJpegEncoder.h"
-#include "SkPngEncoder.h"
-#include "SkWebpEncoder.h"
-#include "SkStream.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkStream.h"
+#include "include/encode/SkJpegEncoder.h"
+#include "include/encode/SkPngEncoder.h"
+#include "include/encode/SkWebpEncoder.h"
+#include "tools/Resources.h"
 
 // Like other Benchmark subclasses, Encoder benchmarks are run by:
 // nanobench --match ^Encode_
diff --git a/bench/FSRectBench.cpp b/bench/FSRectBench.cpp
index ba68ea1..0307069 100644
--- a/bench/FSRectBench.cpp
+++ b/bench/FSRectBench.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkRandom.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/utils/SkRandom.h"
 
 /**
  * Draws full screen opaque rectangles. It is designed to test any optimizations in the GPU backend
diff --git a/bench/FontCacheBench.cpp b/bench/FontCacheBench.cpp
index 2eb2b71..75d421e 100644
--- a/bench/FontCacheBench.cpp
+++ b/bench/FontCacheBench.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkChecksum.h"
-#include "SkFont.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkString.h"
-#include "SkTemplates.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkString.h"
+#include "include/private/SkChecksum.h"
+#include "include/private/SkTemplates.h"
 
-#include "gUniqueGlyphIDs.h"
+#include "bench/gUniqueGlyphIDs.h"
 
 #define gUniqueGlyphIDs_Sentinel    0xFFFF
 
diff --git a/bench/GMBench.cpp b/bench/GMBench.cpp
index 297ff42..59136bb 100644
--- a/bench/GMBench.cpp
+++ b/bench/GMBench.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "GMBench.h"
+#include "bench/GMBench.h"
 
 GMBench::GMBench(skiagm::GM* gm) : fGM(gm) {
     fName.printf("GM_%s", gm->getName());
diff --git a/bench/GMBench.h b/bench/GMBench.h
index 5a917ad..401562f 100644
--- a/bench/GMBench.h
+++ b/bench/GMBench.h
@@ -7,9 +7,9 @@
 #ifndef GMBench_DEFINED
 #define GMBench_DEFINED
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "gm.h"
+#include "bench/Benchmark.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
 
 /**
  * Runs a GM as a benchmark by repeatedly drawing the GM.
diff --git a/bench/GameBench.cpp b/bench/GameBench.cpp
index 4096e0d..48c774c 100644
--- a/bench/GameBench.cpp
+++ b/bench/GameBench.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkRandom.h"
-#include "SkShader.h"
-#include "SkString.h"
-#include "SkVertices.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/core/SkVertices.h"
+#include "include/utils/SkRandom.h"
 
 // This bench simulates the calls Skia sees from various HTML5 canvas
 // game bench marks
diff --git a/bench/GeometryBench.cpp b/bench/GeometryBench.cpp
index 9b0ac88..457151d 100644
--- a/bench/GeometryBench.cpp
+++ b/bench/GeometryBench.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkGeometry.h"
-#include "SkRandom.h"
-#include "SkRect.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkRect.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkGeometry.h"
 
 class GeometryBench : public Benchmark {
 public:
@@ -244,7 +244,7 @@
 };
 DEF_BENCH( return new ChopCubicAt; )
 
-#include "SkPath.h"
+#include "include/core/SkPath.h"
 
 class ConvexityBench : public Benchmark {
     SkPath fPath;
diff --git a/bench/GrCCFillGeometryBench.cpp b/bench/GrCCFillGeometryBench.cpp
index 84a9e1e..962dcb2 100644
--- a/bench/GrCCFillGeometryBench.cpp
+++ b/bench/GrCCFillGeometryBench.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
+#include "bench/Benchmark.h"
 
-#include "ccpr/GrCCFillGeometry.h"
-#include "SkGeometry.h"
+#include "src/core/SkGeometry.h"
+#include "src/gpu/ccpr/GrCCFillGeometry.h"
 
 static int kNumBaseLoops = 50000;
 
diff --git a/bench/GrMemoryPoolBench.cpp b/bench/GrMemoryPoolBench.cpp
index bcc28c5..4d52662 100644
--- a/bench/GrMemoryPoolBench.cpp
+++ b/bench/GrMemoryPoolBench.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "Benchmark.h"
-#include "GrMemoryPool.h"
-#include "SkRandom.h"
-#include "SkTDArray.h"
-#include "SkTemplates.h"
+#include "bench/Benchmark.h"
+#include "include/private/SkTDArray.h"
+#include "include/private/SkTemplates.h"
+#include "include/utils/SkRandom.h"
+#include "src/gpu/GrMemoryPool.h"
 
 #include <new>
 
diff --git a/bench/GrMipMapBench.cpp b/bench/GrMipMapBench.cpp
index e7f34de..a0a1525 100644
--- a/bench/GrMipMapBench.cpp
+++ b/bench/GrMipMapBench.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkImage.h"
-#include "SkPaint.h"
-#include "SkSurface.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkSurface.h"
 
 class GrMipMapBench: public Benchmark {
     sk_sp<SkSurface> fSurface;
diff --git a/bench/GrResourceCacheBench.cpp b/bench/GrResourceCacheBench.cpp
index 8d96480..18b901e 100644
--- a/bench/GrResourceCacheBench.cpp
+++ b/bench/GrResourceCacheBench.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
+#include "bench/Benchmark.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrGpuResource.h"
-#include "GrGpuResourcePriv.h"
-#include "GrResourceCache.h"
-#include "SkCanvas.h"
+#include "include/core/SkCanvas.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrGpuResource.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/GrResourceCache.h"
 
 enum {
     CACHE_SIZE_COUNT = 4096,
diff --git a/bench/GradientBench.cpp b/bench/GradientBench.cpp
index 4f28b6e..bcafb39 100644
--- a/bench/GradientBench.cpp
+++ b/bench/GradientBench.cpp
@@ -4,14 +4,14 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Benchmark.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkGradientShader.h"
-#include "SkPaint.h"
-#include "SkShader.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkGradientShader.h"
 
 struct GradData {
     int             fCount;
diff --git a/bench/HairlinePathBench.cpp b/bench/HairlinePathBench.cpp
index 176adc5..d57f616 100644
--- a/bench/HairlinePathBench.cpp
+++ b/bench/HairlinePathBench.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkShader.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkRandom.h"
 
 enum Flags {
     kBig_Flag = 1 << 0,
diff --git a/bench/HardStopGradientBench_ScaleNumColors.cpp b/bench/HardStopGradientBench_ScaleNumColors.cpp
index b1f6267..e38022e 100644
--- a/bench/HardStopGradientBench_ScaleNumColors.cpp
+++ b/bench/HardStopGradientBench_ScaleNumColors.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
+#include "bench/Benchmark.h"
 
-#include "SkCanvas.h"
-#include "SkShader.h"
-#include "SkGradientShader.h"
-#include "SkString.h"
-#include "SkColor.h"
-#include "SkPaint.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkGradientShader.h"
 
 static const char* get_tilemode_name(SkTileMode tilemode) {
     switch (tilemode) {
diff --git a/bench/HardStopGradientBench_ScaleNumHardStops.cpp b/bench/HardStopGradientBench_ScaleNumHardStops.cpp
index b1ea306..01ed7be 100644
--- a/bench/HardStopGradientBench_ScaleNumHardStops.cpp
+++ b/bench/HardStopGradientBench_ScaleNumHardStops.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
+#include "bench/Benchmark.h"
 
-#include "SkCanvas.h"
-#include "SkShader.h"
-#include "SkGradientShader.h"
-#include "SkString.h"
-#include "SkColor.h"
-#include "SkPaint.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkGradientShader.h"
 
 class HardStopGradientBench_ScaleNumHardStops : public Benchmark {
 public:
diff --git a/bench/HardStopGradientBench_SpecialHardStops.cpp b/bench/HardStopGradientBench_SpecialHardStops.cpp
index 607080a..ac6e461 100644
--- a/bench/HardStopGradientBench_SpecialHardStops.cpp
+++ b/bench/HardStopGradientBench_SpecialHardStops.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
+#include "bench/Benchmark.h"
 
-#include "SkCanvas.h"
-#include "SkShader.h"
-#include "SkGradientShader.h"
-#include "SkString.h"
-#include "SkColor.h"
-#include "SkPaint.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkGradientShader.h"
 
 enum class Kind {
     k001,
diff --git a/bench/ImageBench.cpp b/bench/ImageBench.cpp
index d8260e7..a452903 100644
--- a/bench/ImageBench.cpp
+++ b/bench/ImageBench.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkImage.h"
-#include "SkSurface.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkSurface.h"
 
 class Image2RasterBench : public Benchmark {
 public:
diff --git a/bench/ImageCacheBench.cpp b/bench/ImageCacheBench.cpp
index cf35bbf..1d577d6 100644
--- a/bench/ImageCacheBench.cpp
+++ b/bench/ImageCacheBench.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkResourceCache.h"
+#include "bench/Benchmark.h"
+#include "src/core/SkResourceCache.h"
 
 namespace {
 static void* gGlobalAddress;
diff --git a/bench/ImageCacheBudgetBench.cpp b/bench/ImageCacheBudgetBench.cpp
index fb714ba..db5002d 100644
--- a/bench/ImageCacheBudgetBench.cpp
+++ b/bench/ImageCacheBudgetBench.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkImage.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkSurface.h"
+#include "tools/ToolUtils.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrContextPriv.h"
 
 #include <utility>
 
diff --git a/bench/ImageCycleBench.cpp b/bench/ImageCycleBench.cpp
index e7e0025..032e43b 100644
--- a/bench/ImageCycleBench.cpp
+++ b/bench/ImageCycleBench.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
+#include "bench/Benchmark.h"
 
-#include "SkCanvas.h"
-#include "SkImage.h"
-#include "SkRandom.h"
-#include "SkSurface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkSurface.h"
+#include "include/utils/SkRandom.h"
 
 /**
  * Draws a small set of small images multiple times each with no overlaps so that each image could
diff --git a/bench/ImageFilterCollapse.cpp b/bench/ImageFilterCollapse.cpp
index 3562766..2e1c6d7 100644
--- a/bench/ImageFilterCollapse.cpp
+++ b/bench/ImageFilterCollapse.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColorFilterImageFilter.h"
-#include "SkColorMatrixFilter.h"
-#include "SkGradientShader.h"
-#include "SkImageFilter.h"
-#include "SkTableColorFilter.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImageFilter.h"
+#include "include/effects/SkColorFilterImageFilter.h"
+#include "include/effects/SkColorMatrixFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/effects/SkTableColorFilter.h"
 
 // Chains several matrix color filters image filter or several
 // table filter image filters and draws a bitmap.
diff --git a/bench/ImageFilterDAGBench.cpp b/bench/ImageFilterDAGBench.cpp
index 76b091f..a7e6bfd 100644
--- a/bench/ImageFilterDAGBench.cpp
+++ b/bench/ImageFilterDAGBench.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "Resources.h"
-#include "SkBlurImageFilter.h"
-#include "SkCanvas.h"
-#include "SkDisplacementMapEffect.h"
-#include "SkImage.h"
-#include "SkMergeImageFilter.h"
-#include "SkOffsetImageFilter.h"
-#include "SkXfermodeImageFilter.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkDisplacementMapEffect.h"
+#include "include/effects/SkMergeImageFilter.h"
+#include "include/effects/SkOffsetImageFilter.h"
+#include "include/effects/SkXfermodeImageFilter.h"
+#include "tools/Resources.h"
 
 // Exercise a blur filter connected to 5 inputs of the same merge filter.
 // This bench shows an improvement in performance once cacheing of re-used
diff --git a/bench/InterpBench.cpp b/bench/InterpBench.cpp
index 16cc499..61c3de6 100644
--- a/bench/InterpBench.cpp
+++ b/bench/InterpBench.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkColorData.h"
-#include "SkFixed.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkRandom.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkString.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkFixed.h"
+#include "include/utils/SkRandom.h"
 
 #define TILE(x, width)  (((x) & 0xFFFF) * width >> 16)
 
diff --git a/bench/JSONBench.cpp b/bench/JSONBench.cpp
index 4ef1d6c..061316d 100644
--- a/bench/JSONBench.cpp
+++ b/bench/JSONBench.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkData.h"
-#include "SkJSON.h"
-#include "SkStream.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
+#include "src/utils/SkJSON.h"
 
 #if defined(SK_BUILD_FOR_ANDROID)
 static constexpr const char* kBenchFile = "/data/local/tmp/bench.json";
diff --git a/bench/LightingBench.cpp b/bench/LightingBench.cpp
index a924f4a..c1f647d 100644
--- a/bench/LightingBench.cpp
+++ b/bench/LightingBench.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkLightingImageFilter.h"
-#include "SkPoint3.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPoint3.h"
+#include "include/effects/SkLightingImageFilter.h"
 
 #define FILTER_WIDTH_SMALL  SkIntToScalar(32)
 #define FILTER_HEIGHT_SMALL SkIntToScalar(32)
diff --git a/bench/LineBench.cpp b/bench/LineBench.cpp
index 67dc564..b904cb8 100644
--- a/bench/LineBench.cpp
+++ b/bench/LineBench.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkPaint.h"
-#include "SkRandom.h"
-#include "SkShader.h"
-#include "SkString.h"
-#include "SkTArray.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/private/SkTArray.h"
+#include "include/utils/SkRandom.h"
 
 
 class LineBench : public Benchmark {
diff --git a/bench/MagnifierBench.cpp b/bench/MagnifierBench.cpp
index d345c63..e890f12 100644
--- a/bench/MagnifierBench.cpp
+++ b/bench/MagnifierBench.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkMagnifierImageFilter.h"
-#include "SkRandom.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/effects/SkMagnifierImageFilter.h"
+#include "include/utils/SkRandom.h"
 
 #define FILTER_WIDTH_SMALL  32
 #define FILTER_HEIGHT_SMALL 32
diff --git a/bench/MathBench.cpp b/bench/MathBench.cpp
index 74b89a3..e47c6ac 100644
--- a/bench/MathBench.cpp
+++ b/bench/MathBench.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkColorData.h"
-#include "SkFixed.h"
-#include "SkMathPriv.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkRandom.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkString.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkFixed.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkMathPriv.h"
 
 static float sk_fsel(float pred, float result_ge, float result_lt) {
     return pred >= 0 ? result_ge : result_lt;
@@ -601,7 +601,7 @@
 
 //////////////////////////////////////////////////////////////
 
-#include "../private/SkFloatBits.h"
+#include "include/private/SkFloatBits.h"
 class Floor2IntBench : public Benchmark {
     enum {
         ARRAY = 1000,
diff --git a/bench/Matrix44Bench.cpp b/bench/Matrix44Bench.cpp
index 35c3e68..5698751 100644
--- a/bench/Matrix44Bench.cpp
+++ b/bench/Matrix44Bench.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkMatrix44.h"
-#include "SkRandom.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkMatrix44.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkRandom.h"
 
 class Matrix44Bench : public Benchmark {
     SkString    fName;
diff --git a/bench/MatrixBench.cpp b/bench/MatrixBench.cpp
index 53e7296..485a88a 100644
--- a/bench/MatrixBench.cpp
+++ b/bench/MatrixBench.cpp
@@ -4,11 +4,11 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Benchmark.h"
-#include "SkMatrix.h"
-#include "SkMatrixUtils.h"
-#include "SkRandom.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkMatrixUtils.h"
 
 class MatrixBench : public Benchmark {
     SkString    fName;
diff --git a/bench/MatrixConvolutionBench.cpp b/bench/MatrixConvolutionBench.cpp
index 3a43de8..c29ccbc 100644
--- a/bench/MatrixConvolutionBench.cpp
+++ b/bench/MatrixConvolutionBench.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkMatrixConvolutionImageFilter.h"
-#include "SkPaint.h"
-#include "SkRandom.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkMatrixConvolutionImageFilter.h"
+#include "include/utils/SkRandom.h"
 
 static const char* name(SkMatrixConvolutionImageFilter::TileMode mode) {
     switch (mode) {
diff --git a/bench/MemsetBench.cpp b/bench/MemsetBench.cpp
index beae339..ccdbebb 100644
--- a/bench/MemsetBench.cpp
+++ b/bench/MemsetBench.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkTemplates.h"
-#include "SkUtils.h"
+#include "bench/Benchmark.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkUtils.h"
 
 template <typename T, bool kInline>
 class MemsetBench : public Benchmark {
diff --git a/bench/MergeBench.cpp b/bench/MergeBench.cpp
index dd0e07c..7068814 100644
--- a/bench/MergeBench.cpp
+++ b/bench/MergeBench.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkImageSource.h"
-#include "SkMergeImageFilter.h"
-#include "SkSurface.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkImageSource.h"
+#include "include/effects/SkMergeImageFilter.h"
 
 #define FILTER_WIDTH_SMALL  SkIntToScalar(32)
 #define FILTER_HEIGHT_SMALL SkIntToScalar(32)
diff --git a/bench/MipMapBench.cpp b/bench/MipMapBench.cpp
index aed2c59..baa8cd3 100644
--- a/bench/MipMapBench.cpp
+++ b/bench/MipMapBench.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkBitmap.h"
-#include "SkMipMap.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "src/core/SkMipMap.h"
 
 class MipMapBench: public Benchmark {
     SkBitmap fBitmap;
diff --git a/bench/MorphologyBench.cpp b/bench/MorphologyBench.cpp
index 5edae6e..1f74bb0 100644
--- a/bench/MorphologyBench.cpp
+++ b/bench/MorphologyBench.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkMorphologyImageFilter.h"
-#include "SkPaint.h"
-#include "SkRandom.h"
-#include "SkShader.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkMorphologyImageFilter.h"
+#include "include/utils/SkRandom.h"
 
 #define SMALL   SkIntToScalar(2)
 #define REAL    1.5f
diff --git a/bench/MutexBench.cpp b/bench/MutexBench.cpp
index 27ebee5..bb98368 100644
--- a/bench/MutexBench.cpp
+++ b/bench/MutexBench.cpp
@@ -4,11 +4,11 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Benchmark.h"
-#include "SkMutex.h"
-#include "SkSharedMutex.h"
-#include "SkSpinlock.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkString.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkSpinlock.h"
+#include "src/core/SkSharedMutex.h"
 
 template <typename Mutex>
 class MutexBench : public Benchmark {
diff --git a/bench/PDFBench.cpp b/bench/PDFBench.cpp
index c3521b3..c8ebdca 100644
--- a/bench/PDFBench.cpp
+++ b/bench/PDFBench.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
+#include "bench/Benchmark.h"
 
-#include "Resources.h"
-#include "SkAutoPixmapStorage.h"
-#include "SkData.h"
-#include "SkExecutor.h"
-#include "SkFloatToDecimal.h"
-#include "SkGradientShader.h"
-#include "SkImage.h"
-#include "SkPDFUnion.h"
-#include "SkPixmap.h"
-#include "SkRandom.h"
-#include "SkStream.h"
-#include "SkTo.h"
+#include "include/core/SkData.h"
+#include "include/core/SkExecutor.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPixmap.h"
+#include "include/core/SkStream.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkAutoPixmapStorage.h"
+#include "src/pdf/SkPDFUnion.h"
+#include "src/utils/SkFloatToDecimal.h"
+#include "tools/Resources.h"
 
 namespace {
 struct WStreamWriteTextBenchmark : public Benchmark {
@@ -75,10 +75,10 @@
 
 #ifdef SK_SUPPORT_PDF
 
-#include "SkPDFBitmap.h"
-#include "SkPDFDocumentPriv.h"
-#include "SkPDFShader.h"
-#include "SkPDFUtils.h"
+#include "src/pdf/SkPDFBitmap.h"
+#include "src/pdf/SkPDFDocumentPriv.h"
+#include "src/pdf/SkPDFShader.h"
+#include "src/pdf/SkPDFUtils.h"
 
 namespace {
 class PDFImageBench : public Benchmark {
@@ -311,7 +311,7 @@
 DEF_BENCH(return new PDFClipPathBenchmark;)
 
 #ifdef SK_PDF_ENABLE_SLOW_TESTS
-#include "SkExecutor.h"
+#include "include/core/SkExecutor.h"
 namespace {
 void big_pdf_test(SkDocument* doc, const SkBitmap& background) {
     static const char* kText[] = {
diff --git a/bench/PatchBench.cpp b/bench/PatchBench.cpp
index 064db69..b2fc1a8 100644
--- a/bench/PatchBench.cpp
+++ b/bench/PatchBench.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkPaint.h"
-#include "SkPatchUtils.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkGradientShader.h"
+#include "src/utils/SkPatchUtils.h"
 
 /**
  * This bench measures the rendering time of the call SkCanvas::drawPatch with different types of
@@ -324,7 +324,7 @@
                                         PatchBench::kBoth_VertexMode); )
 
 //////////////////////////////////////////////
-#include "SkPatchUtils.h"
+#include "src/utils/SkPatchUtils.h"
 
 class PatchUtilsBench : public Benchmark {
     SkString    fName;
diff --git a/bench/PathBench.cpp b/bench/PathBench.cpp
index b065c0c..e26f120 100644
--- a/bench/PathBench.cpp
+++ b/bench/PathBench.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkShader.h"
-#include "SkString.h"
-#include "SkTArray.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/private/SkTArray.h"
+#include "include/utils/SkRandom.h"
 
 enum Flags {
     kStroke_Flag = 1 << 0,
@@ -885,7 +885,7 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkGeometry.h"
+#include "src/core/SkGeometry.h"
 
 class ConicBench_Chop : public Benchmark {
 protected:
@@ -1175,8 +1175,8 @@
 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::kRoundRect_Type); )
 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::kOval_Type); )
 
-#include "SkPathOps.h"
-#include "SkPathPriv.h"
+#include "include/pathops/SkPathOps.h"
+#include "src/core/SkPathPriv.h"
 
 DEF_BENCH( return new TightBoundsBench([](const SkPath& path){ return path.computeTightBounds();},
                                        "priv"); )
diff --git a/bench/PathIterBench.cpp b/bench/PathIterBench.cpp
index cf93b5d..c374c36 100644
--- a/bench/PathIterBench.cpp
+++ b/bench/PathIterBench.cpp
@@ -4,15 +4,15 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Benchmark.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkShader.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkRandom.h"
 
 static int rand_pts(SkRandom& rand, SkPoint pts[4]) {
     int n = rand.nextU() & 3;
diff --git a/bench/PathOpsBench.cpp b/bench/PathOpsBench.cpp
index 4d2e9e1..c7df558 100644
--- a/bench/PathOpsBench.cpp
+++ b/bench/PathOpsBench.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkPath.h"
-#include "SkPathOps.h"
-#include "SkRandom.h"
-#include "SkShader.h"
-#include "SkString.h"
-#include "SkTArray.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/pathops/SkPathOps.h"
+#include "include/private/SkTArray.h"
+#include "include/utils/SkRandom.h"
 
 class PathOpsBench : public Benchmark {
     SkString    fName;
diff --git a/bench/PathTextBench.cpp b/bench/PathTextBench.cpp
index a9b845d..ed4468a 100644
--- a/bench/PathTextBench.cpp
+++ b/bench/PathTextBench.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkStrike.h"
-#include "SkStrikeCache.h"
-#include "ToolUtils.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkStrike.h"
+#include "src/core/SkStrikeCache.h"
+#include "tools/ToolUtils.h"
 
 static constexpr int kScreenWidth = 1500;
 static constexpr int kScreenHeight = 1500;
diff --git a/bench/PerlinNoiseBench.cpp b/bench/PerlinNoiseBench.cpp
index 802c5be0..1d246b6 100644
--- a/bench/PerlinNoiseBench.cpp
+++ b/bench/PerlinNoiseBench.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkPerlinNoiseShader.h"
-#include "SkShader.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkShader.h"
+#include "include/effects/SkPerlinNoiseShader.h"
 
 class PerlinNoiseBench : public Benchmark {
     SkISize fSize;
diff --git a/bench/PictureNestingBench.cpp b/bench/PictureNestingBench.cpp
index abe8936..fab48f3 100644
--- a/bench/PictureNestingBench.cpp
+++ b/bench/PictureNestingBench.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkNullCanvas.h"
-#include "SkPaint.h"
-#include "SkPicture.h"
-#include "SkPictureRecorder.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkNullCanvas.h"
 
 class PictureNesting : public Benchmark {
 public:
diff --git a/bench/PictureOverheadBench.cpp b/bench/PictureOverheadBench.cpp
index 8489ab8..49ddb90 100644
--- a/bench/PictureOverheadBench.cpp
+++ b/bench/PictureOverheadBench.cpp
@@ -8,11 +8,11 @@
 // A benchmark designed to isolate the constant overheads of picture recording.
 // We record an empty picture and a picture with one draw op to force memory allocation.
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkLiteDL.h"
-#include "SkLiteRecorder.h"
-#include "SkPictureRecorder.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPictureRecorder.h"
+#include "src/core/SkLiteDL.h"
+#include "src/core/SkLiteRecorder.h"
 
 template <int kDraws, bool kLite>
 struct PictureOverheadBench : public Benchmark {
diff --git a/bench/PicturePlaybackBench.cpp b/bench/PicturePlaybackBench.cpp
index 40dde4b..461cd8d 100644
--- a/bench/PicturePlaybackBench.cpp
+++ b/bench/PicturePlaybackBench.cpp
@@ -4,16 +4,16 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkPaint.h"
-#include "SkPicture.h"
-#include "SkPictureRecorder.h"
-#include "SkPoint.h"
-#include "SkRandom.h"
-#include "SkRect.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkRandom.h"
 
 // This is designed to emulate about 4 screens of textual content
 
diff --git a/bench/PolyUtilsBench.cpp b/bench/PolyUtilsBench.cpp
index 5cbff93..0b45376 100644
--- a/bench/PolyUtilsBench.cpp
+++ b/bench/PolyUtilsBench.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkPolyUtils.h"
+#include "bench/Benchmark.h"
+#include "src/utils/SkPolyUtils.h"
 
 class PolyUtilsBench : public Benchmark {
 public:
diff --git a/bench/PremulAndUnpremulAlphaOpsBench.cpp b/bench/PremulAndUnpremulAlphaOpsBench.cpp
index 22467ec..b67098c 100644
--- a/bench/PremulAndUnpremulAlphaOpsBench.cpp
+++ b/bench/PremulAndUnpremulAlphaOpsBench.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkString.h"
-#include "ToolUtils.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkString.h"
+#include "tools/ToolUtils.h"
 
 class PremulAndUnpremulAlphaOpsBench : public Benchmark {
     enum {
diff --git a/bench/QuickRejectBench.cpp b/bench/QuickRejectBench.cpp
index 1feade4..daad4d4 100644
--- a/bench/QuickRejectBench.cpp
+++ b/bench/QuickRejectBench.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkRandom.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/utils/SkRandom.h"
 
 class QuickRejectBench : public Benchmark {
     enum { N = 1000000 };
diff --git a/bench/RTreeBench.cpp b/bench/RTreeBench.cpp
index e484050..95fd89d 100644
--- a/bench/RTreeBench.cpp
+++ b/bench/RTreeBench.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkRTree.h"
-#include "SkRandom.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkRTree.h"
 
 // confine rectangles to a smallish area, so queries generally hit something, and overlap occurs:
 static const SkScalar GENERATE_EXTENTS = 1000.0f;
diff --git a/bench/ReadPixBench.cpp b/bench/ReadPixBench.cpp
index 35e536d..3e5d0dc 100644
--- a/bench/ReadPixBench.cpp
+++ b/bench/ReadPixBench.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColorSpace.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorSpace.h"
 
 // Time variants of read-pixels
 //  [ colortype ][ alphatype ][ colorspace ]
@@ -62,8 +62,8 @@
 DEF_BENCH( return new ReadPixBench(kBGRA_8888_SkColorType, kUnpremul_SkAlphaType, SkColorSpace::MakeSRGB()); )
 
 ////////////////////////////////////////////////////////////////////////////////
-#include "SkBitmap.h"
-#include "SkPixmapPriv.h"
+#include "include/core/SkBitmap.h"
+#include "src/core/SkPixmapPriv.h"
 
 class PixmapOrientBench : public Benchmark {
 public:
diff --git a/bench/RecordingBench.cpp b/bench/RecordingBench.cpp
index 45a9128..32354d6 100644
--- a/bench/RecordingBench.cpp
+++ b/bench/RecordingBench.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "RecordingBench.h"
-#include "SkBBHFactory.h"
-#include "SkLiteDL.h"
-#include "SkLiteRecorder.h"
-#include "SkPictureRecorder.h"
+#include "bench/RecordingBench.h"
+#include "include/core/SkBBHFactory.h"
+#include "include/core/SkPictureRecorder.h"
+#include "src/core/SkLiteDL.h"
+#include "src/core/SkLiteRecorder.h"
 
 PictureCentricBench::PictureCentricBench(const char* name, const SkPicture* pic) : fName(name) {
     // Flatten the source picture in case it's trivially nested (useless for timing).
@@ -67,7 +67,7 @@
 }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
-#include "SkSerialProcs.h"
+#include "include/core/SkSerialProcs.h"
 
 DeserializePictureBench::DeserializePictureBench(const char* name, sk_sp<SkData> data)
     : fName(name)
diff --git a/bench/RecordingBench.h b/bench/RecordingBench.h
index 56a08e5..e67c28a 100644
--- a/bench/RecordingBench.h
+++ b/bench/RecordingBench.h
@@ -8,9 +8,9 @@
 #ifndef RecordingBench_DEFINED
 #define RecordingBench_DEFINED
 
-#include "Benchmark.h"
-#include "SkPicture.h"
-#include "SkLiteDL.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkPicture.h"
+#include "src/core/SkLiteDL.h"
 
 class PictureCentricBench : public Benchmark {
 public:
diff --git a/bench/RectBench.cpp b/bench/RectBench.cpp
index 0c30dc0..19d36a2 100644
--- a/bench/RectBench.cpp
+++ b/bench/RectBench.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "CommandLineFlags.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkPaint.h"
-#include "SkRandom.h"
-#include "SkShader.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkRandom.h"
+#include "tools/flags/CommandLineFlags.h"
 
 static DEFINE_double(strokeWidth, -1.0, "If set, use this stroke width in RectBench.");
 
diff --git a/bench/RectanizerBench.cpp b/bench/RectanizerBench.cpp
index c5ec21d..224bd56 100644
--- a/bench/RectanizerBench.cpp
+++ b/bench/RectanizerBench.cpp
@@ -5,13 +5,13 @@
 * found in the LICENSE file.
 */
 
-#include "Benchmark.h"
-#include "SkRandom.h"
-#include "SkSize.h"
-#include "SkTDArray.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkSize.h"
+#include "include/private/SkTDArray.h"
+#include "include/utils/SkRandom.h"
 
-#include "GrRectanizer_pow2.h"
-#include "GrRectanizer_skyline.h"
+#include "src/gpu/GrRectanizer_pow2.h"
+#include "src/gpu/GrRectanizer_skyline.h"
 
 /**
  * This bench exercises Ganesh' GrRectanizer classes. It exercises the following
diff --git a/bench/RectoriBench.cpp b/bench/RectoriBench.cpp
index c0d2155..442138b 100644
--- a/bench/RectoriBench.cpp
+++ b/bench/RectoriBench.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkLayerDrawLooper.h"
-#include "SkMaskFilter.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRandom.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/effects/SkLayerDrawLooper.h"
+#include "include/utils/SkRandom.h"
 
 // This bench replicates a problematic use case of a draw looper used
 // to create an inner blurred rect
diff --git a/bench/RefCntBench.cpp b/bench/RefCntBench.cpp
index 39b3a73..af4822a 100644
--- a/bench/RefCntBench.cpp
+++ b/bench/RefCntBench.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Benchmark.h"
-#include "SkRefCnt.h"
-#include "SkWeakRefCnt.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkWeakRefCnt.h"
 #include <memory>
 #include <new>
 
diff --git a/bench/RegionBench.cpp b/bench/RegionBench.cpp
index f73a888..b6ad54b 100644
--- a/bench/RegionBench.cpp
+++ b/bench/RegionBench.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Benchmark.h"
-#include "SkRandom.h"
-#include "SkRegion.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkRandom.h"
 
 static bool union_proc(SkRegion& a, SkRegion& b) {
     SkRegion result;
diff --git a/bench/RegionContainBench.cpp b/bench/RegionContainBench.cpp
index 961cbe3..0e28d41 100644
--- a/bench/RegionContainBench.cpp
+++ b/bench/RegionContainBench.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkRandom.h"
-#include "SkRegion.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkRandom.h"
 
 static bool sect_proc(SkRegion& a, SkRegion& b) {
     SkRegion result;
diff --git a/bench/RepeatTileBench.cpp b/bench/RepeatTileBench.cpp
index adec4f4..2614450 100644
--- a/bench/RepeatTileBench.cpp
+++ b/bench/RepeatTileBench.cpp
@@ -4,14 +4,14 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Benchmark.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkPaint.h"
-#include "SkShader.h"
-#include "SkString.h"
-#include "ToolUtils.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "tools/ToolUtils.h"
 
 static void draw_into_bitmap(const SkBitmap& bm) {
     const int w = bm.width();
diff --git a/bench/ResultsWriter.h b/bench/ResultsWriter.h
index 41f3ae3..f525a5d 100644
--- a/bench/ResultsWriter.h
+++ b/bench/ResultsWriter.h
@@ -10,9 +10,9 @@
 #ifndef SkResultsWriter_DEFINED
 #define SkResultsWriter_DEFINED
 
-#include "SkJSONWriter.h"
-#include "SkString.h"
-#include "SkTypes.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "src/utils/SkJSONWriter.h"
 
 /**
  NanoJSONResultsWriter helps nanobench writes the test results out in the following format:
diff --git a/bench/RotatedRectBench.cpp b/bench/RotatedRectBench.cpp
index db4a792..ac8f4e6 100644
--- a/bench/RotatedRectBench.cpp
+++ b/bench/RotatedRectBench.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkBlendModePriv.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkPaint.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/effects/SkGradientShader.h"
+#include "src/core/SkBlendModePriv.h"
 
 #include <ctype.h>
 
diff --git a/bench/SKPAnimationBench.cpp b/bench/SKPAnimationBench.cpp
index efa2c76..94169ab 100644
--- a/bench/SKPAnimationBench.cpp
+++ b/bench/SKPAnimationBench.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SKPAnimationBench.h"
-#include "CommandLineFlags.h"
-#include "SkMultiPictureDraw.h"
-#include "SkSurface.h"
+#include "bench/SKPAnimationBench.h"
+#include "include/core/SkMultiPictureDraw.h"
+#include "include/core/SkSurface.h"
+#include "tools/flags/CommandLineFlags.h"
 
 SKPAnimationBench::SKPAnimationBench(const char* name, const SkPicture* pic, const SkIRect& clip,
                                      Animation* animation, bool doLooping)
diff --git a/bench/SKPAnimationBench.h b/bench/SKPAnimationBench.h
index b7a4ae1..5190dbf 100644
--- a/bench/SKPAnimationBench.h
+++ b/bench/SKPAnimationBench.h
@@ -8,8 +8,8 @@
 #ifndef SKPAnimationBench_DEFINED
 #define SKPAnimationBench_DEFINED
 
-#include "SKPBench.h"
-#include "Timer.h"
+#include "bench/SKPBench.h"
+#include "tools/timer/Timer.h"
 
 /**
  * Runs an SkPicture as a benchmark by repeatedly drawing it, first centering the picture and
diff --git a/bench/SKPBench.cpp b/bench/SKPBench.cpp
index 7617fe3..8543174 100644
--- a/bench/SKPBench.cpp
+++ b/bench/SKPBench.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SKPBench.h"
-#include "CommandLineFlags.h"
-#include "SkMultiPictureDraw.h"
-#include "SkSurface.h"
+#include "bench/SKPBench.h"
+#include "include/core/SkMultiPictureDraw.h"
+#include "include/core/SkSurface.h"
+#include "tools/flags/CommandLineFlags.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrContextPriv.h"
 
 // These CPU tile sizes are not good per se, but they are similar to what Chrome uses.
 static DEFINE_int(CPUbenchTileW, 256, "Tile width  used for CPU SKP playback.");
@@ -150,7 +150,7 @@
     }
 }
 
-#include "GrGpu.h"
+#include "src/gpu/GrGpu.h"
 static void draw_pic_for_stats(SkCanvas* canvas, GrContext* context, const SkPicture* picture,
                                SkTArray<SkString>* keys, SkTArray<double>* values) {
     context->priv().resetGpuStats();
diff --git a/bench/SKPBench.h b/bench/SKPBench.h
index 6756c60..db0c3b3 100644
--- a/bench/SKPBench.h
+++ b/bench/SKPBench.h
@@ -8,10 +8,10 @@
 #ifndef SKPBench_DEFINED
 #define SKPBench_DEFINED
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkPicture.h"
-#include "SkTDArray.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPicture.h"
+#include "include/private/SkTDArray.h"
 
 class SkSurface;
 
diff --git a/bench/ScalarBench.cpp b/bench/ScalarBench.cpp
index 9d3b0ec..e1403f6 100644
--- a/bench/ScalarBench.cpp
+++ b/bench/ScalarBench.cpp
@@ -4,11 +4,11 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Benchmark.h"
-#include "SkFloatBits.h"
-#include "SkRandom.h"
-#include "SkRect.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkString.h"
+#include "include/private/SkFloatBits.h"
+#include "include/utils/SkRandom.h"
 
 class ScalarBench : public Benchmark {
     SkString    fName;
diff --git a/bench/ShaderMaskFilterBench.cpp b/bench/ShaderMaskFilterBench.cpp
index 164d5dd..0e12858 100644
--- a/bench/ShaderMaskFilterBench.cpp
+++ b/bench/ShaderMaskFilterBench.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPictureRecorder.h"
-#include "SkPictureShader.h"
-#include "SkShaderMaskFilter.h"
-#include "SkSurface.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkShaderMaskFilter.h"
+#include "src/shaders/SkPictureShader.h"
 
 static sk_sp<SkShader> make_bitmap_shader() {
     SkPaint p;
diff --git a/bench/ShadowBench.cpp b/bench/ShadowBench.cpp
index 072af66..13c1050 100644
--- a/bench/ShadowBench.cpp
+++ b/bench/ShadowBench.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkDrawShadowInfo.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkShadowUtils.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/utils/SkShadowUtils.h"
+#include "src/core/SkDrawShadowInfo.h"
 
 class ShadowBench : public Benchmark {
 // Draws a set of shadowed rrects filling the canvas, in various modes:
diff --git a/bench/ShapesBench.cpp b/bench/ShapesBench.cpp
index 9c21f5c..9b4e99ff 100644
--- a/bench/ShapesBench.cpp
+++ b/bench/ShapesBench.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "CommandLineFlags.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkRRect.h"
-#include "SkRandom.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkRandom.h"
+#include "tools/flags/CommandLineFlags.h"
 
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/bench/Sk4fBench.cpp b/bench/Sk4fBench.cpp
index a932c29..7241259 100644
--- a/bench/Sk4fBench.cpp
+++ b/bench/Sk4fBench.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkColor.h"
-#include "SkNx.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkColor.h"
+#include "include/private/SkNx.h"
 
 // Writing into this array prevents the loops from being compiled away.
 static volatile float blackhole[4];
diff --git a/bench/SkGlyphCacheBench.cpp b/bench/SkGlyphCacheBench.cpp
index fca0381..e692588 100644
--- a/bench/SkGlyphCacheBench.cpp
+++ b/bench/SkGlyphCacheBench.cpp
@@ -6,15 +6,15 @@
  */
 
 
-#include "SkStrike.h"
+#include "src/core/SkStrike.h"
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkGraphics.h"
-#include "SkStrikeCache.h"
-#include "SkTaskGroup.h"
-#include "SkTypeface.h"
-#include "ToolUtils.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkTypeface.h"
+#include "src/core/SkStrikeCache.h"
+#include "src/core/SkTaskGroup.h"
+#include "tools/ToolUtils.h"
 
 static void do_font_stuff(SkFont* font) {
     SkPaint defaultPaint;
diff --git a/bench/SortBench.cpp b/bench/SortBench.cpp
index e380c78..6933ee2 100644
--- a/bench/SortBench.cpp
+++ b/bench/SortBench.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkRandom.h"
-#include "SkString.h"
-#include "SkTSort.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkTSort.h"
 
 #include <algorithm>
 #include <stdlib.h>
diff --git a/bench/StreamBench.cpp b/bench/StreamBench.cpp
index e89b207..5288e17 100644
--- a/bench/StreamBench.cpp
+++ b/bench/StreamBench.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkStream.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkStream.h"
 
 class StreamBench : public Benchmark {
     SkString    fName;
diff --git a/bench/StrokeBench.cpp b/bench/StrokeBench.cpp
index 63199d0..c543bf8 100644
--- a/bench/StrokeBench.cpp
+++ b/bench/StrokeBench.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkRandom.h"
 
 class StrokeBench : public Benchmark {
 public:
diff --git a/bench/SwizzleBench.cpp b/bench/SwizzleBench.cpp
index c634547..ee6f220 100644
--- a/bench/SwizzleBench.cpp
+++ b/bench/SwizzleBench.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkOpts.h"
+#include "bench/Benchmark.h"
+#include "src/core/SkOpts.h"
 
 class SwizzleBench : public Benchmark {
 public:
diff --git a/bench/TableBench.cpp b/bench/TableBench.cpp
index 346aba8..33654c0 100644
--- a/bench/TableBench.cpp
+++ b/bench/TableBench.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkRect.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkRect.h"
 
 static const SkScalar kCellWidth = SkIntToScalar(20);
 static const SkScalar kCellHeight = SkIntToScalar(10);
diff --git a/bench/TextBlobBench.cpp b/bench/TextBlobBench.cpp
index a52b09c..73e6960 100644
--- a/bench/TextBlobBench.cpp
+++ b/bench/TextBlobBench.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkPaint.h"
-#include "SkRandom.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkTemplates.h"
-#include "SkTextBlob.h"
-#include "SkTypeface.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkTemplates.h"
+#include "include/utils/SkRandom.h"
+#include "tools/Resources.h"
 
-#include "ToolUtils.h"
+#include "tools/ToolUtils.h"
 
 /*
  * A trivial test which benchmarks the performance of a textblob with a single run.
diff --git a/bench/TileBench.cpp b/bench/TileBench.cpp
index 0679587..0a944dd 100644
--- a/bench/TileBench.cpp
+++ b/bench/TileBench.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkShader.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
 
 static void create_gradient(SkBitmap* bm) {
     SkASSERT(1 == bm->width());
diff --git a/bench/TileImageFilterBench.cpp b/bench/TileImageFilterBench.cpp
index b9b38ed..6f437bc 100644
--- a/bench/TileImageFilterBench.cpp
+++ b/bench/TileImageFilterBench.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkTileImageFilter.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkTileImageFilter.h"
 
 #define WIDTH 512
 #define HEIGHT 512
diff --git a/bench/TopoSortBench.cpp b/bench/TopoSortBench.cpp
index d0b6202..712d37f 100644
--- a/bench/TopoSortBench.cpp
+++ b/bench/TopoSortBench.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkRandom.h"
-#include "SkString.h"
-#include "SkTTopoSort.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkTTopoSort.h"
 
-#include "ToolUtils.h"
+#include "tools/ToolUtils.h"
 
 class TopoSortBench : public Benchmark {
 public:
diff --git a/bench/TypefaceBench.cpp b/bench/TypefaceBench.cpp
index 00b19d2..711bb6a 100644
--- a/bench/TypefaceBench.cpp
+++ b/bench/TypefaceBench.cpp
@@ -7,12 +7,12 @@
 
 #include <vector>
 
-#include "Benchmark.h"
-#include "SkFont.h"
-#include "SkMakeUnique.h"
-#include "SkTypeface.h"
-#include "SkUTF.h"
-#include "SkUtils.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkTypeface.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkUtils.h"
+#include "src/utils/SkUTF.h"
 
 // From Project Guttenberg. This is UTF-8 text.
 static const char* atext[] = {
diff --git a/bench/VertBench.cpp b/bench/VertBench.cpp
index a49d3a8..1834408 100644
--- a/bench/VertBench.cpp
+++ b/bench/VertBench.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkRandom.h"
-#include "SkShader.h"
-#include "SkString.h"
-#include "SkVertices.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/core/SkVertices.h"
+#include "include/utils/SkRandom.h"
 
 enum VertFlags {
     kColors_VertFlag,
@@ -95,9 +95,9 @@
 
 /////////////////////////////////////////////////////////////////////////////////////////////////
 
-#include "Resources.h"
-#include "SkRandom.h"
-#include "SkRSXform.h"
+#include "include/core/SkRSXform.h"
+#include "include/utils/SkRandom.h"
+#include "tools/Resources.h"
 
 enum AtlasFlags {
     kColors_Flag = 1 << 0,
diff --git a/bench/VertexColorSpaceBench.cpp b/bench/VertexColorSpaceBench.cpp
index b203d2f..33d2a6a 100644
--- a/bench/VertexColorSpaceBench.cpp
+++ b/bench/VertexColorSpaceBench.cpp
@@ -5,24 +5,24 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
+#include "bench/Benchmark.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGeometryProcessor.h"
-#include "GrMemoryPool.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "SkColorSpacePriv.h"
-#include "SkGr.h"
-#include "SkHalf.h"
-#include "SkString.h"
-#include "glsl/GrGLSLColorSpaceXformHelper.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLVarying.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
-#include "ops/GrMeshDrawOp.h"
+#include "include/core/SkString.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/SkHalf.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/glsl/GrGLSLColorSpaceXformHelper.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
 
 namespace {
 
diff --git a/bench/WritePixelsBench.cpp b/bench/WritePixelsBench.cpp
index 39ceb1f..6d532b0 100644
--- a/bench/WritePixelsBench.cpp
+++ b/bench/WritePixelsBench.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkString.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkString.h"
 
 // Time variants of write-pixels
 //  [ colortype ][ alphatype ][ colorspace ]
diff --git a/bench/WriterBench.cpp b/bench/WriterBench.cpp
index 78c5d8b..40cc1a8 100644
--- a/bench/WriterBench.cpp
+++ b/bench/WriterBench.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "Benchmark.h"
-#include "SkCanvas.h"
-#include "SkWriter32.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkCanvas.h"
+#include "src/core/SkWriter32.h"
 
 class WriterBench : public Benchmark {
 public:
diff --git a/bench/nanobench.cpp b/bench/nanobench.cpp
index bd61d34..936265a 100644
--- a/bench/nanobench.cpp
+++ b/bench/nanobench.cpp
@@ -7,47 +7,47 @@
 
 #include <ctype.h>
 
-#include "nanobench.h"
+#include "bench/nanobench.h"
 
-#include "AndroidCodecBench.h"
-#include "Benchmark.h"
-#include "BitmapRegionDecoderBench.h"
-#include "CodecBench.h"
-#include "CodecBenchPriv.h"
-#include "CommonFlags.h"
-#include "CommonFlagsConfig.h"
-#include "CrashHandler.h"
-#include "EventTracingPriv.h"
-#include "GMBench.h"
-#include "ProcStats.h"
-#include "RecordingBench.h"
-#include "ResultsWriter.h"
-#include "SKPAnimationBench.h"
-#include "SKPBench.h"
-#include "SkAndroidCodec.h"
-#include "SkAutoMalloc.h"
-#include "SkBBoxHierarchy.h"
-#include "SkBitmapRegionDecoder.h"
-#include "SkCanvas.h"
-#include "SkCodec.h"
-#include "SkColorSpacePriv.h"
-#include "SkData.h"
-#include "SkDebugfTracer.h"
-#include "SkGraphics.h"
-#include "SkJSONWriter.h"
-#include "SkLeanWindows.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkPictureRecorder.h"
-#include "SkString.h"
-#include "SkSurface.h"
-#include "SkTaskGroup.h"
-#include "SkTraceEvent.h"
-#include "Stats.h"
-#include "ios_utils.h"
+#include "bench/AndroidCodecBench.h"
+#include "bench/Benchmark.h"
+#include "bench/BitmapRegionDecoderBench.h"
+#include "bench/CodecBench.h"
+#include "bench/CodecBenchPriv.h"
+#include "bench/GMBench.h"
+#include "bench/RecordingBench.h"
+#include "bench/ResultsWriter.h"
+#include "bench/SKPAnimationBench.h"
+#include "bench/SKPBench.h"
+#include "include/android/SkBitmapRegionDecoder.h"
+#include "include/codec/SkAndroidCodec.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkString.h"
+#include "include/core/SkSurface.h"
+#include "include/private/SkLeanWindows.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkBBoxHierarchy.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkOSFile.h"
+#include "src/core/SkTaskGroup.h"
+#include "src/core/SkTraceEvent.h"
+#include "src/utils/SkJSONWriter.h"
+#include "src/utils/SkOSPath.h"
+#include "tools/CrashHandler.h"
+#include "tools/ProcStats.h"
+#include "tools/Stats.h"
+#include "tools/flags/CommonFlags.h"
+#include "tools/flags/CommonFlagsConfig.h"
+#include "tools/ios_utils.h"
+#include "tools/trace/EventTracingPriv.h"
+#include "tools/trace/SkDebugfTracer.h"
 
 #ifdef SK_XML
-#include "SkSVGDOM.h"
+#include "experimental/svg/model/SkSVGDOM.h"
 #endif  // SK_XML
 
 #include <stdlib.h>
@@ -60,13 +60,13 @@
 
 #endif
 
-#include "GrCaps.h"
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "SkGr.h"
-#include "gl/GrGLDefines.h"
-#include "gl/GrGLGpu.h"
-#include "gl/GrGLUtil.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/gl/GrGLDefines.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLUtil.h"
+#include "tools/gpu/GrContextFactory.h"
 
 using sk_gpu_test::ContextInfo;
 using sk_gpu_test::GrContextFactory;
diff --git a/bench/nanobench.h b/bench/nanobench.h
index fe63e04..73bcd3c 100644
--- a/bench/nanobench.h
+++ b/bench/nanobench.h
@@ -8,11 +8,11 @@
 #ifndef nanobench_DEFINED
 #define nanobench_DEFINED
 
-#include "Benchmark.h"
-#include "GrContextFactory.h"
-#include "SkImageInfo.h"
-#include "SkSurface.h"
-#include "SkTypes.h"
+#include "bench/Benchmark.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTypes.h"
+#include "tools/gpu/GrContextFactory.h"
 
 class SkBitmap;
 class SkCanvas;
diff --git a/dm/DM.cpp b/dm/DM.cpp
index 3658912..d5a77b1 100644
--- a/dm/DM.cpp
+++ b/dm/DM.cpp
@@ -5,39 +5,39 @@
  * found in the LICENSE file.
  */
 
-#include "ChromeTracingTracer.h"
-#include "CommonFlags.h"
-#include "CommonFlagsConfig.h"
-#include "DMJsonWriter.h"
-#include "DMSrcSink.h"
-#include "EventTracingPriv.h"
-#include "HashAndEncode.h"
-#include "ProcStats.h"
-#include "Resources.h"
-#include "SkBBHFactory.h"
-#include "SkChecksum.h"
-#include "SkCodec.h"
-#include "SkColorPriv.h"
-#include "SkColorSpace.h"
-#include "SkColorSpacePriv.h"
-#include "SkData.h"
-#include "SkDebugfTracer.h"
-#include "SkDocument.h"
-#include "SkFontMgr.h"
-#include "SkGraphics.h"
-#include "SkHalf.h"
-#include "SkLeanWindows.h"
-#include "SkMD5.h"
-#include "SkMutex.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkSpinlock.h"
-#include "SkTHash.h"
-#include "SkTaskGroup.h"
-#include "SkTypeface_win.h"
-#include "Test.h"
-#include "ToolUtils.h"
-#include "ios_utils.h"
+#include "dm/DMJsonWriter.h"
+#include "dm/DMSrcSink.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkBBHFactory.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkData.h"
+#include "include/core/SkDocument.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkGraphics.h"
+#include "include/ports/SkTypeface_win.h"
+#include "include/private/SkChecksum.h"
+#include "include/private/SkHalf.h"
+#include "include/private/SkLeanWindows.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkSpinlock.h"
+#include "include/private/SkTHash.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkMD5.h"
+#include "src/core/SkOSFile.h"
+#include "src/core/SkTaskGroup.h"
+#include "src/utils/SkOSPath.h"
+#include "tests/Test.h"
+#include "tools/HashAndEncode.h"
+#include "tools/ProcStats.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
+#include "tools/flags/CommonFlags.h"
+#include "tools/flags/CommonFlagsConfig.h"
+#include "tools/ios_utils.h"
+#include "tools/trace/ChromeTracingTracer.h"
+#include "tools/trace/EventTracingPriv.h"
+#include "tools/trace/SkDebugfTracer.h"
 
 #include <vector>
 
diff --git a/dm/DMGpuTestProcs.cpp b/dm/DMGpuTestProcs.cpp
index 2be645a..dd3a8cd 100644
--- a/dm/DMGpuTestProcs.cpp
+++ b/dm/DMGpuTestProcs.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
 using sk_gpu_test::GrContextFactory;
 using sk_gpu_test::GLTestContext;
diff --git a/dm/DMJsonWriter.cpp b/dm/DMJsonWriter.cpp
index 1879666..e08ca0b 100644
--- a/dm/DMJsonWriter.cpp
+++ b/dm/DMJsonWriter.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "DMJsonWriter.h"
+#include "dm/DMJsonWriter.h"
 
-#include "ProcStats.h"
-#include "SkData.h"
-#include "SkJSON.h"
-#include "SkJSONWriter.h"
-#include "SkMutex.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkStream.h"
-#include "SkTArray.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkTArray.h"
+#include "src/core/SkOSFile.h"
+#include "src/utils/SkJSON.h"
+#include "src/utils/SkJSONWriter.h"
+#include "src/utils/SkOSPath.h"
+#include "tools/ProcStats.h"
 
 namespace DM {
 
diff --git a/dm/DMJsonWriter.h b/dm/DMJsonWriter.h
index c8cd3fc..acf8a3f 100644
--- a/dm/DMJsonWriter.h
+++ b/dm/DMJsonWriter.h
@@ -8,8 +8,8 @@
 #ifndef DMJsonWriter_DEFINED
 #define DMJsonWriter_DEFINED
 
-#include "CommandLineFlags.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "tools/flags/CommandLineFlags.h"
 
 namespace DM {
 
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp
index 1bc9c9d..ad685ad 100644
--- a/dm/DMSrcSink.cpp
+++ b/dm/DMSrcSink.cpp
@@ -5,71 +5,71 @@
  * found in the LICENSE file.
  */
 
-#include "DMSrcSink.h"
-#include "DDLPromiseImageHelper.h"
-#include "DDLTileHelper.h"
-#include "DebugCanvas.h"
-#include "GrBackendSurface.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "MemoryCache.h"
-#include "Resources.h"
-#include "SkAndroidCodec.h"
-#include "SkAutoMalloc.h"
-#include "SkAutoPixmapStorage.h"
-#include "SkCodec.h"
-#include "SkCodecImageGenerator.h"
-#include "SkColorSpace.h"
-#include "SkData.h"
-#include "SkDeferredDisplayListRecorder.h"
-#include "SkDocument.h"
-#include "SkExecutor.h"
-#include "SkImageGenerator.h"
-#include "SkImageGeneratorCG.h"
-#include "SkImageGeneratorWIC.h"
-#include "SkImageInfoPriv.h"
-#include "SkLiteDL.h"
-#include "SkLiteRecorder.h"
-#include "SkMakeUnique.h"
-#include "SkMallocPixelRef.h"
-#include "SkMultiPictureDocumentPriv.h"
-#include "SkMultiPictureDraw.h"
-#include "SkNullCanvas.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkOpts.h"
-#include "SkPDFDocument.h"
-#include "SkPictureCommon.h"
-#include "SkPictureData.h"
-#include "SkPictureRecorder.h"
-#include "SkRandom.h"
-#include "SkRecordDraw.h"
-#include "SkRecorder.h"
-#include "SkStream.h"
-#include "SkSurface.h"
-#include "SkSurfaceCharacterization.h"
-#include "SkSwizzler.h"
-#include "SkTLogic.h"
-#include "SkTaskGroup.h"
+#include "dm/DMSrcSink.h"
+#include "include/codec/SkAndroidCodec.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkData.h"
+#include "include/core/SkDeferredDisplayListRecorder.h"
+#include "include/core/SkDocument.h"
+#include "include/core/SkExecutor.h"
+#include "include/core/SkImageGenerator.h"
+#include "include/core/SkMallocPixelRef.h"
+#include "include/core/SkMultiPictureDraw.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkSurfaceCharacterization.h"
+#include "include/docs/SkPDFDocument.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/ports/SkImageGeneratorCG.h"
+#include "include/ports/SkImageGeneratorWIC.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "include/private/SkTLogic.h"
+#include "include/utils/SkNullCanvas.h"
+#include "include/utils/SkRandom.h"
+#include "src/codec/SkCodecImageGenerator.h"
+#include "src/codec/SkSwizzler.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkAutoPixmapStorage.h"
+#include "src/core/SkLiteDL.h"
+#include "src/core/SkLiteRecorder.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkOSFile.h"
+#include "src/core/SkOpts.h"
+#include "src/core/SkPictureCommon.h"
+#include "src/core/SkPictureData.h"
+#include "src/core/SkRecordDraw.h"
+#include "src/core/SkRecorder.h"
+#include "src/core/SkTaskGroup.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/utils/SkMultiPictureDocumentPriv.h"
+#include "src/utils/SkOSPath.h"
+#include "tools/DDLPromiseImageHelper.h"
+#include "tools/DDLTileHelper.h"
+#include "tools/Resources.h"
+#include "tools/debugger/DebugCanvas.h"
+#include "tools/gpu/MemoryCache.h"
 #if defined(SK_BUILD_FOR_WIN)
-    #include "SkAutoCoInitialize.h"
-    #include "SkHRESULT.h"
-    #include "SkTScopedComPtr.h"
-    #include "SkXPSDocument.h"
+    #include "include/docs/SkXPSDocument.h"
+    #include "src/utils/win/SkAutoCoInitialize.h"
+    #include "src/utils/win/SkHRESULT.h"
+    #include "src/utils/win/SkTScopedComPtr.h"
     #include <XpsObjectModel.h>
 #endif
 
 #if defined(SK_ENABLE_SKOTTIE)
-    #include "Skottie.h"
-    #include "SkottieUtils.h"
+    #include "modules/skottie/include/Skottie.h"
+    #include "modules/skottie/utils/SkottieUtils.h"
 #endif
 
 #if defined(SK_XML)
-    #include "SkSVGCanvas.h"
-    #include "SkSVGDOM.h"
-    #include "SkXMLWriter.h"
+    #include "experimental/svg/model/SkSVGDOM.h"
+    #include "include/svg/SkSVGCanvas.h"
+    #include "src/xml/SkXMLWriter.h"
 #endif
-#include "TestUtils.h"
+#include "tests/TestUtils.h"
 
 #include <cmath>
 #include <functional>
@@ -1976,9 +1976,9 @@
 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 
 #ifdef TEST_VIA_SVG
-#include "SkXMLWriter.h"
-#include "SkSVGCanvas.h"
-#include "SkSVGDOM.h"
+#include "experimental/svg/model/SkSVGDOM.h"
+#include "include/svg/SkSVGCanvas.h"
+#include "src/xml/SkXMLWriter.h"
 
 Error ViaSVG::draw(const Src& src, SkBitmap* bitmap, SkWStream* stream, SkString* log) const {
     auto size = src.size();
diff --git a/dm/DMSrcSink.h b/dm/DMSrcSink.h
index 54f7c4d..3b2d7cb 100644
--- a/dm/DMSrcSink.h
+++ b/dm/DMSrcSink.h
@@ -8,16 +8,16 @@
 #ifndef DMSrcSink_DEFINED
 #define DMSrcSink_DEFINED
 
-#include "CommonFlagsConfig.h"
-#include "SkBBHFactory.h"
-#include "SkBBoxHierarchy.h"
-#include "SkBitmap.h"
-#include "SkBitmapRegionDecoder.h"
-#include "SkCanvas.h"
-#include "SkData.h"
-#include "SkMultiPictureDocument.h"
-#include "SkPicture.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/android/SkBitmapRegionDecoder.h"
+#include "include/core/SkBBHFactory.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkPicture.h"
+#include "src/core/SkBBoxHierarchy.h"
+#include "src/utils/SkMultiPictureDocument.h"
+#include "tools/flags/CommonFlagsConfig.h"
 
 //#define TEST_VIA_SVG
 
diff --git a/docs/examples/Alpha_Constants_a.cpp b/docs/examples/Alpha_Constants_a.cpp
index 8988038..aa2c7a3 100644
--- a/docs/examples/Alpha_Constants_a.cpp
+++ b/docs/examples/Alpha_Constants_a.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bc9c7ea424d10bbcd1e5a88770d4794e
 REG_FIDDLE(Alpha_Constants_a, 256, 128, false, 1) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Alpha_Constants_b.cpp b/docs/examples/Alpha_Constants_b.cpp
index 8de18c3..34068d3 100644
--- a/docs/examples/Alpha_Constants_b.cpp
+++ b/docs/examples/Alpha_Constants_b.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0424f67ebc2858e8fd04ae3367b115ff
 REG_FIDDLE(Alpha_Constants_b, 256, 128, false, 1) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Alpha_Type_Opaque.cpp b/docs/examples/Alpha_Type_Opaque.cpp
index 92fb99f..bae82bd 100644
--- a/docs/examples/Alpha_Type_Opaque.cpp
+++ b/docs/examples/Alpha_Type_Opaque.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=79146a1a41d58d22582fdc567c6ffe4e
 REG_FIDDLE(Alpha_Type_Opaque, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Alpha_Type_Premul.cpp b/docs/examples/Alpha_Type_Premul.cpp
index ae3bb5f..f67f3bd 100644
--- a/docs/examples/Alpha_Type_Premul.cpp
+++ b/docs/examples/Alpha_Type_Premul.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ad696b39c915803d566e96896ec3a36c
 REG_FIDDLE(Alpha_Type_Premul, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Alpha_Type_Unpremul.cpp b/docs/examples/Alpha_Type_Unpremul.cpp
index 37a4f60..79016eb 100644
--- a/docs/examples/Alpha_Type_Unpremul.cpp
+++ b/docs/examples/Alpha_Type_Unpremul.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b8216a9e5ff5bc61a0e46eba7d36307b
 REG_FIDDLE(Alpha_Type_Unpremul, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Anti_Alias.cpp b/docs/examples/Anti_Alias.cpp
index 16387d9..120ac60 100644
--- a/docs/examples/Anti_Alias.cpp
+++ b/docs/examples/Anti_Alias.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a6575a49467ce8d28bb01cc7638fa04d
 REG_FIDDLE(Anti_Alias, 512, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Arc.cpp b/docs/examples/Arc.cpp
index 16c077d..7b6daaf 100644
--- a/docs/examples/Arc.cpp
+++ b/docs/examples/Arc.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5acc77eba0cb4d00bbf3a8f4db0c0aee
 REG_FIDDLE(Arc, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/AutoCanvasRestore_SkCanvas_star.cpp b/docs/examples/AutoCanvasRestore_SkCanvas_star.cpp
index a810cd7..1620529 100644
--- a/docs/examples/AutoCanvasRestore_SkCanvas_star.cpp
+++ b/docs/examples/AutoCanvasRestore_SkCanvas_star.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=466ef576b88e29d7252422db7adeed1c
 REG_FIDDLE(AutoCanvasRestore_SkCanvas_star, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/AutoCanvasRestore_restore.cpp b/docs/examples/AutoCanvasRestore_restore.cpp
index 216d8f4..88516e4 100644
--- a/docs/examples/AutoCanvasRestore_restore.cpp
+++ b/docs/examples/AutoCanvasRestore_restore.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9f459b218ec079c1ada23f4412968f9a
 REG_FIDDLE(AutoCanvasRestore_restore, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_012.cpp b/docs/examples/Bitmap_012.cpp
index d45b507..a0d76ca 100644
--- a/docs/examples/Bitmap_012.cpp
+++ b/docs/examples/Bitmap_012.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=070b1a60232be499eb10c6ea62371804
 REG_FIDDLE(Bitmap_012, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_ComputeIsOpaque.cpp b/docs/examples/Bitmap_ComputeIsOpaque.cpp
index d92fba1..32255ea 100644
--- a/docs/examples/Bitmap_ComputeIsOpaque.cpp
+++ b/docs/examples/Bitmap_ComputeIsOpaque.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9df1baa17658fbd0c419780f26fd854f
 REG_FIDDLE(Bitmap_ComputeIsOpaque, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_HeapAllocator_allocPixelRef.cpp b/docs/examples/Bitmap_HeapAllocator_allocPixelRef.cpp
index 4f3a110..e0eda4c 100644
--- a/docs/examples/Bitmap_HeapAllocator_allocPixelRef.cpp
+++ b/docs/examples/Bitmap_HeapAllocator_allocPixelRef.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=fe79a9c1ec350264eb9c7b2509dd3638
 REG_FIDDLE(Bitmap_HeapAllocator_allocPixelRef, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_allocN32Pixels.cpp b/docs/examples/Bitmap_allocN32Pixels.cpp
index f569401..bf89e68 100644
--- a/docs/examples/Bitmap_allocN32Pixels.cpp
+++ b/docs/examples/Bitmap_allocN32Pixels.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c717491f9251604724c9cbde7088ec20
 REG_FIDDLE(Bitmap_allocN32Pixels, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_allocPixels.cpp b/docs/examples/Bitmap_allocPixels.cpp
index 806edd7..d1c585c 100644
--- a/docs/examples/Bitmap_allocPixels.cpp
+++ b/docs/examples/Bitmap_allocPixels.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=555c0f62f96602a9dcd459badcd005e0
 REG_FIDDLE(Bitmap_allocPixels, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_allocPixelsFlags.cpp b/docs/examples/Bitmap_allocPixelsFlags.cpp
index 1cdc39b..78ffb99 100644
--- a/docs/examples/Bitmap_allocPixelsFlags.cpp
+++ b/docs/examples/Bitmap_allocPixelsFlags.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=737e721c7d9e0f367d25521a1b823b9d
 REG_FIDDLE(Bitmap_allocPixelsFlags, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_allocPixels_2.cpp b/docs/examples/Bitmap_allocPixels_2.cpp
index 947774a..5c425ef 100644
--- a/docs/examples/Bitmap_allocPixels_2.cpp
+++ b/docs/examples/Bitmap_allocPixels_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=91f474a11a2112cd5c88c40a9015048d
 REG_FIDDLE(Bitmap_allocPixels_2, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_allocPixels_3.cpp b/docs/examples/Bitmap_allocPixels_3.cpp
index eae1055..20607a4 100644
--- a/docs/examples/Bitmap_allocPixels_3.cpp
+++ b/docs/examples/Bitmap_allocPixels_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1219b38c788bf270fb20f8cd2d78cff8
 REG_FIDDLE(Bitmap_allocPixels_3, 256, 50, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_allocPixels_4.cpp b/docs/examples/Bitmap_allocPixels_4.cpp
index 8ac116c..e12e68e 100644
--- a/docs/examples/Bitmap_allocPixels_4.cpp
+++ b/docs/examples/Bitmap_allocPixels_4.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1b2800d23c9ea249b45c2c21a34b6d14
 REG_FIDDLE(Bitmap_allocPixels_4, 256, 32, false, 0) {
 class TinyAllocator : public SkBitmap::Allocator {
diff --git a/docs/examples/Bitmap_bounds.cpp b/docs/examples/Bitmap_bounds.cpp
index 9b66dde..221b733 100644
--- a/docs/examples/Bitmap_bounds.cpp
+++ b/docs/examples/Bitmap_bounds.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3e9126152ff1cc592aef6facbcb5fc96
 REG_FIDDLE(Bitmap_bounds, 256, 64, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_bytesPerPixel.cpp b/docs/examples/Bitmap_bytesPerPixel.cpp
index a3663b1..a0e92a1 100644
--- a/docs/examples/Bitmap_bytesPerPixel.cpp
+++ b/docs/examples/Bitmap_bytesPerPixel.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2a688e6f0a516c0d44a826381e9d637f
 REG_FIDDLE(Bitmap_bytesPerPixel, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_colorSpace.cpp b/docs/examples/Bitmap_colorSpace.cpp
index 632e50d..7ff927b 100644
--- a/docs/examples/Bitmap_colorSpace.cpp
+++ b/docs/examples/Bitmap_colorSpace.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=817f95879fadba44baf87ea60e9b595a
 REG_FIDDLE(Bitmap_colorSpace, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_colorType.cpp b/docs/examples/Bitmap_colorType.cpp
index cbc225f..5fad0ea 100644
--- a/docs/examples/Bitmap_colorType.cpp
+++ b/docs/examples/Bitmap_colorType.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ceb77fab7326b57822a147b04aa0960e
 REG_FIDDLE(Bitmap_colorType, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_computeByteSize.cpp b/docs/examples/Bitmap_computeByteSize.cpp
index 84850bc..a43ffdd 100644
--- a/docs/examples/Bitmap_computeByteSize.cpp
+++ b/docs/examples/Bitmap_computeByteSize.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=165c8f208829fc0908e8a50da60c0076
 REG_FIDDLE(Bitmap_computeByteSize, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_copy_const_SkBitmap.cpp b/docs/examples/Bitmap_copy_const_SkBitmap.cpp
index 77350dc..8c2aede 100644
--- a/docs/examples/Bitmap_copy_const_SkBitmap.cpp
+++ b/docs/examples/Bitmap_copy_const_SkBitmap.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bbbae7a181bfd128a4484e8e9f454db1
 REG_FIDDLE(Bitmap_copy_const_SkBitmap, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_copy_operator.cpp b/docs/examples/Bitmap_copy_operator.cpp
index c998dad..4a8725e 100644
--- a/docs/examples/Bitmap_copy_operator.cpp
+++ b/docs/examples/Bitmap_copy_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=45279c519ae808f78bd30e9d84bdfdde
 REG_FIDDLE(Bitmap_copy_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_dimensions.cpp b/docs/examples/Bitmap_dimensions.cpp
index 2027a8d..4a39f35 100644
--- a/docs/examples/Bitmap_dimensions.cpp
+++ b/docs/examples/Bitmap_dimensions.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=647056bcc12c27fb4413f212f33a2898
 REG_FIDDLE(Bitmap_dimensions, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_drawsNothing.cpp b/docs/examples/Bitmap_drawsNothing.cpp
index c113dcf..e283678 100644
--- a/docs/examples/Bitmap_drawsNothing.cpp
+++ b/docs/examples/Bitmap_drawsNothing.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=daacf43394ce4045a362a48b5774deed
 REG_FIDDLE(Bitmap_drawsNothing, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_empty.cpp b/docs/examples/Bitmap_empty.cpp
index 6964d1d..52ed59b 100644
--- a/docs/examples/Bitmap_empty.cpp
+++ b/docs/examples/Bitmap_empty.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a3762c2722b56ba55e42689c527f146c
 REG_FIDDLE(Bitmap_empty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_empty_constructor.cpp b/docs/examples/Bitmap_empty_constructor.cpp
index c7a5c8c..9d72ecd 100644
--- a/docs/examples/Bitmap_empty_constructor.cpp
+++ b/docs/examples/Bitmap_empty_constructor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6739d14ec0d6a373f2fcadc6b3077fd4
 REG_FIDDLE(Bitmap_empty_constructor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_erase.cpp b/docs/examples/Bitmap_erase.cpp
index 28a0abc2..6af379e 100644
--- a/docs/examples/Bitmap_erase.cpp
+++ b/docs/examples/Bitmap_erase.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2c5c4230ccd2861a5d15b7cd2764ab6e
 REG_FIDDLE(Bitmap_erase, 256, 70, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_eraseARGB.cpp b/docs/examples/Bitmap_eraseARGB.cpp
index ac46cd4..4351c4a 100644
--- a/docs/examples/Bitmap_eraseARGB.cpp
+++ b/docs/examples/Bitmap_eraseARGB.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=67277b0a1003f340473a35982533561c
 REG_FIDDLE(Bitmap_eraseARGB, 256, 80, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_eraseColor.cpp b/docs/examples/Bitmap_eraseColor.cpp
index 3d1462a..3f46b1b 100644
--- a/docs/examples/Bitmap_eraseColor.cpp
+++ b/docs/examples/Bitmap_eraseColor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=418928dbfffa9eb00c8225530f44baf5
 REG_FIDDLE(Bitmap_eraseColor, 256, 20, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_extractAlpha.cpp b/docs/examples/Bitmap_extractAlpha.cpp
index 805540a..c5e7ecd 100644
--- a/docs/examples/Bitmap_extractAlpha.cpp
+++ b/docs/examples/Bitmap_extractAlpha.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ab6577df079e6c70511cf2bfc6447b44
 REG_FIDDLE(Bitmap_extractAlpha, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_extractAlpha_2.cpp b/docs/examples/Bitmap_extractAlpha_2.cpp
index d4a0459..1f8a228 100644
--- a/docs/examples/Bitmap_extractAlpha_2.cpp
+++ b/docs/examples/Bitmap_extractAlpha_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=092739b4cd5d732a27c07ced8ef45f01
 REG_FIDDLE(Bitmap_extractAlpha_2, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_extractAlpha_3.cpp b/docs/examples/Bitmap_extractAlpha_3.cpp
index c6b1b61..676334d 100644
--- a/docs/examples/Bitmap_extractAlpha_3.cpp
+++ b/docs/examples/Bitmap_extractAlpha_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=cd7543fa8c9f3cede46dc2d72eb8c4bd
 REG_FIDDLE(Bitmap_extractAlpha_3, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_extractSubset.cpp b/docs/examples/Bitmap_extractSubset.cpp
index 70dd398..e658de5 100644
--- a/docs/examples/Bitmap_extractSubset.cpp
+++ b/docs/examples/Bitmap_extractSubset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=304148c50c91490bfd58e9222342419c
 REG_FIDDLE(Bitmap_extractSubset, 256, 256, true, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_getAddr.cpp b/docs/examples/Bitmap_getAddr.cpp
index 1443209..d5b5622 100644
--- a/docs/examples/Bitmap_getAddr.cpp
+++ b/docs/examples/Bitmap_getAddr.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ffcefb2344cd38c3b99f69cfe6d64a17
 REG_FIDDLE(Bitmap_getAddr, 256, 256, true, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_getAddr16.cpp b/docs/examples/Bitmap_getAddr16.cpp
index 207d0a1..5993c28 100644
--- a/docs/examples/Bitmap_getAddr16.cpp
+++ b/docs/examples/Bitmap_getAddr16.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=53e00899ef2e00e2096daf7a07d9b059
 REG_FIDDLE(Bitmap_getAddr16, 256, 256, true, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_getAddr32.cpp b/docs/examples/Bitmap_getAddr32.cpp
index 77d64dc..66bbac4 100644
--- a/docs/examples/Bitmap_getAddr32.cpp
+++ b/docs/examples/Bitmap_getAddr32.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=837a2bcc9fb9ce617a3420956cefc64a
 REG_FIDDLE(Bitmap_getAddr32, 256, 256, true, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_getAddr8.cpp b/docs/examples/Bitmap_getAddr8.cpp
index c1b188c..c94d905 100644
--- a/docs/examples/Bitmap_getAddr8.cpp
+++ b/docs/examples/Bitmap_getAddr8.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=cb9a08e8ff779b6a1cf8bb54f3883aaf
 REG_FIDDLE(Bitmap_getAddr8, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_getBounds.cpp b/docs/examples/Bitmap_getBounds.cpp
index 4f37db7..11a5b33 100644
--- a/docs/examples/Bitmap_getBounds.cpp
+++ b/docs/examples/Bitmap_getBounds.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2431ebc7e7d1e91e6d9daafd0f7a478f
 REG_FIDDLE(Bitmap_getBounds, 256, 160, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_getBounds_2.cpp b/docs/examples/Bitmap_getBounds_2.cpp
index e66603d..7b969ca 100644
--- a/docs/examples/Bitmap_getBounds_2.cpp
+++ b/docs/examples/Bitmap_getBounds_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0c45da35172bc0a529b2faecddae62a2
 REG_FIDDLE(Bitmap_getBounds_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_getColor.cpp b/docs/examples/Bitmap_getColor.cpp
index 2ae727b..85ab323 100644
--- a/docs/examples/Bitmap_getColor.cpp
+++ b/docs/examples/Bitmap_getColor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=193d1f6d8a43b7a8e9f27ba21de38617
 REG_FIDDLE(Bitmap_getColor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_getGenerationID.cpp b/docs/examples/Bitmap_getGenerationID.cpp
index 674a352..c199ae8 100644
--- a/docs/examples/Bitmap_getGenerationID.cpp
+++ b/docs/examples/Bitmap_getGenerationID.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=db9dd91e0207c3941c09538555817b4b
 REG_FIDDLE(Bitmap_getGenerationID, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_getPixels.cpp b/docs/examples/Bitmap_getPixels.cpp
index 25c041b..c95311b 100644
--- a/docs/examples/Bitmap_getPixels.cpp
+++ b/docs/examples/Bitmap_getPixels.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e006bb05cf74ec8d2b3d6adeb5dba11b
 REG_FIDDLE(Bitmap_getPixels, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_getSubset.cpp b/docs/examples/Bitmap_getSubset.cpp
index 18a69b1..fb9beaa 100644
--- a/docs/examples/Bitmap_getSubset.cpp
+++ b/docs/examples/Bitmap_getSubset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d6dd0b425aa550f21b938a18c2e1a981
 REG_FIDDLE(Bitmap_getSubset, 256, 256, true, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_height.cpp b/docs/examples/Bitmap_height.cpp
index 69aef2f..5429370 100644
--- a/docs/examples/Bitmap_height.cpp
+++ b/docs/examples/Bitmap_height.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c79a196278c58b34cd5f551b0124ecc9
 REG_FIDDLE(Bitmap_height, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_info.cpp b/docs/examples/Bitmap_info.cpp
index b792f16..2ce2652 100644
--- a/docs/examples/Bitmap_info.cpp
+++ b/docs/examples/Bitmap_info.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ec47c4dc23e2925ad565eaba55a91553
 REG_FIDDLE(Bitmap_info, 256, 256, true, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_installPixels.cpp b/docs/examples/Bitmap_installPixels.cpp
index 2cb5bca..2691fbe 100644
--- a/docs/examples/Bitmap_installPixels.cpp
+++ b/docs/examples/Bitmap_installPixels.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8c4f7bf73fffa1a812ee8e88e44e639c
 REG_FIDDLE(Bitmap_installPixels, 256, 256, true, 0) {
 static void releaseProc(void* addr, void* ) {
diff --git a/docs/examples/Bitmap_installPixels_2.cpp b/docs/examples/Bitmap_installPixels_2.cpp
index 21e3d53..1c113e0 100644
--- a/docs/examples/Bitmap_installPixels_2.cpp
+++ b/docs/examples/Bitmap_installPixels_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a7e04447b2081010c50d7920e80a6bb2
 REG_FIDDLE(Bitmap_installPixels_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_installPixels_3.cpp b/docs/examples/Bitmap_installPixels_3.cpp
index 6ae41d0..30e3003 100644
--- a/docs/examples/Bitmap_installPixels_3.cpp
+++ b/docs/examples/Bitmap_installPixels_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6e2a8c9358b34aebd2ec586815fe9d3a
 REG_FIDDLE(Bitmap_installPixels_3, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_isImmutable.cpp b/docs/examples/Bitmap_isImmutable.cpp
index 2b238c9..6c39a15 100644
--- a/docs/examples/Bitmap_isImmutable.cpp
+++ b/docs/examples/Bitmap_isImmutable.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=db61fdcd382342ee88ea1b4f27c27b95
 REG_FIDDLE(Bitmap_isImmutable, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_isNull.cpp b/docs/examples/Bitmap_isNull.cpp
index 9d6c3eb..6553a61 100644
--- a/docs/examples/Bitmap_isNull.cpp
+++ b/docs/examples/Bitmap_isNull.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=211ec89418011aa6e54aa2cc9567e003
 REG_FIDDLE(Bitmap_isNull, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_isOpaque.cpp b/docs/examples/Bitmap_isOpaque.cpp
index 796937f..c00a081 100644
--- a/docs/examples/Bitmap_isOpaque.cpp
+++ b/docs/examples/Bitmap_isOpaque.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5e76b68bb46d54315eb0c12d83bd6949
 REG_FIDDLE(Bitmap_isOpaque, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_isVolatile.cpp b/docs/examples/Bitmap_isVolatile.cpp
index 7f2a2ed..41ab4f6 100644
--- a/docs/examples/Bitmap_isVolatile.cpp
+++ b/docs/examples/Bitmap_isVolatile.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=23c4543ac6cdd0e8fe762816a0dc2e03
 REG_FIDDLE(Bitmap_isVolatile, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_move_SkBitmap.cpp b/docs/examples/Bitmap_move_SkBitmap.cpp
index 2362eef..48c57ca 100644
--- a/docs/examples/Bitmap_move_SkBitmap.cpp
+++ b/docs/examples/Bitmap_move_SkBitmap.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=40afd4f1fa69e02d69d92b38252088ef
 REG_FIDDLE(Bitmap_move_SkBitmap, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_move_operator.cpp b/docs/examples/Bitmap_move_operator.cpp
index 0a12712..abfb6bd 100644
--- a/docs/examples/Bitmap_move_operator.cpp
+++ b/docs/examples/Bitmap_move_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=35ea3fed27d8db22dc00f48670de64de
 REG_FIDDLE(Bitmap_move_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_notifyPixelsChanged.cpp b/docs/examples/Bitmap_notifyPixelsChanged.cpp
index c70a567..b3e6ea5 100644
--- a/docs/examples/Bitmap_notifyPixelsChanged.cpp
+++ b/docs/examples/Bitmap_notifyPixelsChanged.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8f463ed17b0ed4fb9c503a0ec71706f9
 REG_FIDDLE(Bitmap_notifyPixelsChanged, 256, 20, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_peekPixels.cpp b/docs/examples/Bitmap_peekPixels.cpp
index 957e9b9..2a7050c 100644
--- a/docs/examples/Bitmap_peekPixels.cpp
+++ b/docs/examples/Bitmap_peekPixels.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0cc2c6a0dffa61a88711534bd3d43b40
 REG_FIDDLE(Bitmap_peekPixels, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_pixelRef.cpp b/docs/examples/Bitmap_pixelRef.cpp
index cdf53a3..9415775 100644
--- a/docs/examples/Bitmap_pixelRef.cpp
+++ b/docs/examples/Bitmap_pixelRef.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5db2d30870a7cc45f28e22578d1880c3
 REG_FIDDLE(Bitmap_pixelRef, 256, 256, true, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_pixelRefOrigin.cpp b/docs/examples/Bitmap_pixelRefOrigin.cpp
index ff0d154..66c3fdb 100644
--- a/docs/examples/Bitmap_pixelRefOrigin.cpp
+++ b/docs/examples/Bitmap_pixelRefOrigin.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6d31686c6c0829c70f284ae716526d6a
 REG_FIDDLE(Bitmap_pixelRefOrigin, 256, 256, true, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_pixmap.cpp b/docs/examples/Bitmap_pixmap.cpp
index b9e113c..4265c6e 100644
--- a/docs/examples/Bitmap_pixmap.cpp
+++ b/docs/examples/Bitmap_pixmap.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7f972d742dd78d2500034d8867e9ef2f
 REG_FIDDLE(Bitmap_pixmap, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_readPixels.cpp b/docs/examples/Bitmap_readPixels.cpp
index 98dd888..e13df72 100644
--- a/docs/examples/Bitmap_readPixels.cpp
+++ b/docs/examples/Bitmap_readPixels.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b2cbbbbcffb618865d8aae3bc04b2a62
 REG_FIDDLE(Bitmap_readPixels, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_readPixels_2.cpp b/docs/examples/Bitmap_readPixels_2.cpp
index b40ce0d..72dc28b 100644
--- a/docs/examples/Bitmap_readPixels_2.cpp
+++ b/docs/examples/Bitmap_readPixels_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e9f70cbc9827097449a386ec7a8a8188
 REG_FIDDLE(Bitmap_readPixels_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_readPixels_3.cpp b/docs/examples/Bitmap_readPixels_3.cpp
index a284926..85d1ecb 100644
--- a/docs/examples/Bitmap_readPixels_3.cpp
+++ b/docs/examples/Bitmap_readPixels_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4590fbf052659d6e629fbfd827081ae5
 REG_FIDDLE(Bitmap_readPixels_3, 256, 128, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_readyToDraw.cpp b/docs/examples/Bitmap_readyToDraw.cpp
index 04277d0..e9337f0 100644
--- a/docs/examples/Bitmap_readyToDraw.cpp
+++ b/docs/examples/Bitmap_readyToDraw.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e89c78ca992e2e789ed50944fe68f920
 REG_FIDDLE(Bitmap_readyToDraw, 256, 160, false, 5) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_refColorSpace.cpp b/docs/examples/Bitmap_refColorSpace.cpp
index 930dd48..5c15476 100644
--- a/docs/examples/Bitmap_refColorSpace.cpp
+++ b/docs/examples/Bitmap_refColorSpace.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=cb028b7931da85b949ad0953b9711f9f
 REG_FIDDLE(Bitmap_refColorSpace, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_reset.cpp b/docs/examples/Bitmap_reset.cpp
index 623cd26..49c2991 100644
--- a/docs/examples/Bitmap_reset.cpp
+++ b/docs/examples/Bitmap_reset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=52ccaeda67924373c5b55a2b89fe314d
 REG_FIDDLE(Bitmap_reset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_rowBytes.cpp b/docs/examples/Bitmap_rowBytes.cpp
index 2ac1b5c..ee6468a 100644
--- a/docs/examples/Bitmap_rowBytes.cpp
+++ b/docs/examples/Bitmap_rowBytes.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a654fd0b73f424859ae6c95e03f55099
 REG_FIDDLE(Bitmap_rowBytes, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_rowBytesAsPixels.cpp b/docs/examples/Bitmap_rowBytesAsPixels.cpp
index 1c78217..d2d7e79 100644
--- a/docs/examples/Bitmap_rowBytesAsPixels.cpp
+++ b/docs/examples/Bitmap_rowBytesAsPixels.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=03a9e08082a23a98de17c3e24871d61a
 REG_FIDDLE(Bitmap_rowBytesAsPixels, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_setAlphaType.cpp b/docs/examples/Bitmap_setAlphaType.cpp
index ff2b142..74d1c02 100644
--- a/docs/examples/Bitmap_setAlphaType.cpp
+++ b/docs/examples/Bitmap_setAlphaType.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=af3adcbea7b58bf90298ca5e0ea93030
 REG_FIDDLE(Bitmap_setAlphaType, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_setImmutable.cpp b/docs/examples/Bitmap_setImmutable.cpp
index 4bf741f..7ce2376 100644
--- a/docs/examples/Bitmap_setImmutable.cpp
+++ b/docs/examples/Bitmap_setImmutable.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9210060d1f4ca46e1375496237902ef3
 REG_FIDDLE(Bitmap_setImmutable, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_setInfo.cpp b/docs/examples/Bitmap_setInfo.cpp
index 8ebae8f..1578cf1 100644
--- a/docs/examples/Bitmap_setInfo.cpp
+++ b/docs/examples/Bitmap_setInfo.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=599ab64d0aea005498176249bbfb64eb
 REG_FIDDLE(Bitmap_setInfo, 256, 96, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_setIsVolatile.cpp b/docs/examples/Bitmap_setIsVolatile.cpp
index 0a9b9f6..4cdd681 100644
--- a/docs/examples/Bitmap_setIsVolatile.cpp
+++ b/docs/examples/Bitmap_setIsVolatile.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e8627a4df659b896402f89a91326618f
 REG_FIDDLE(Bitmap_setIsVolatile, 256, 20, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_setPixelRef.cpp b/docs/examples/Bitmap_setPixelRef.cpp
index a8fb7c6..af88e4b 100644
--- a/docs/examples/Bitmap_setPixelRef.cpp
+++ b/docs/examples/Bitmap_setPixelRef.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f98cc0451c6e77a8833d261c9a484c5f
 REG_FIDDLE(Bitmap_setPixelRef, 256, 140, false, 5) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_setPixels.cpp b/docs/examples/Bitmap_setPixels.cpp
index 5f72c28..450b112 100644
--- a/docs/examples/Bitmap_setPixels.cpp
+++ b/docs/examples/Bitmap_setPixels.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f0db16e06c9a1436917c8179f8c1718f
 REG_FIDDLE(Bitmap_setPixels, 256, 50, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_shiftPerPixel.cpp b/docs/examples/Bitmap_shiftPerPixel.cpp
index 8c10e1b..7232211 100644
--- a/docs/examples/Bitmap_shiftPerPixel.cpp
+++ b/docs/examples/Bitmap_shiftPerPixel.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=56ede4b7d45c15d5936f81ac3d74f070
 REG_FIDDLE(Bitmap_shiftPerPixel, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_swap.cpp b/docs/examples/Bitmap_swap.cpp
index 5ae88f2..1460039 100644
--- a/docs/examples/Bitmap_swap.cpp
+++ b/docs/examples/Bitmap_swap.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=de9be45255e48fae445c916a41063abc
 REG_FIDDLE(Bitmap_swap, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_tryAllocN32Pixels.cpp b/docs/examples/Bitmap_tryAllocN32Pixels.cpp
index af93741..6885333 100644
--- a/docs/examples/Bitmap_tryAllocN32Pixels.cpp
+++ b/docs/examples/Bitmap_tryAllocN32Pixels.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a2b1e0910f37066f15ae56368775a6d8
 REG_FIDDLE(Bitmap_tryAllocN32Pixels, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_tryAllocPixels.cpp b/docs/examples/Bitmap_tryAllocPixels.cpp
index c831d89..81113a5 100644
--- a/docs/examples/Bitmap_tryAllocPixels.cpp
+++ b/docs/examples/Bitmap_tryAllocPixels.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=34479d5aa23ce9f5e334b0786c9edb22
 REG_FIDDLE(Bitmap_tryAllocPixels, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_tryAllocPixelsFlags.cpp b/docs/examples/Bitmap_tryAllocPixelsFlags.cpp
index 4cc5e9c..d557aaa 100644
--- a/docs/examples/Bitmap_tryAllocPixelsFlags.cpp
+++ b/docs/examples/Bitmap_tryAllocPixelsFlags.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f1d1880d38e0aea4cefd3e11745e8a09
 REG_FIDDLE(Bitmap_tryAllocPixelsFlags, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_tryAllocPixels_2.cpp b/docs/examples/Bitmap_tryAllocPixels_2.cpp
index 0732ba4..ad3d107 100644
--- a/docs/examples/Bitmap_tryAllocPixels_2.cpp
+++ b/docs/examples/Bitmap_tryAllocPixels_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7ef3d043c4c5885649e591dd7dca92ff
 REG_FIDDLE(Bitmap_tryAllocPixels_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_tryAllocPixels_3.cpp b/docs/examples/Bitmap_tryAllocPixels_3.cpp
index 85d22e2..d8fefe8 100644
--- a/docs/examples/Bitmap_tryAllocPixels_3.cpp
+++ b/docs/examples/Bitmap_tryAllocPixels_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=720e4c053fae9e929ab6518b47e49370
 REG_FIDDLE(Bitmap_tryAllocPixels_3, 256, 50, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_tryAllocPixels_4.cpp b/docs/examples/Bitmap_tryAllocPixels_4.cpp
index e8155ba..ec7f31e 100644
--- a/docs/examples/Bitmap_tryAllocPixels_4.cpp
+++ b/docs/examples/Bitmap_tryAllocPixels_4.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=eb6f861ca1839146d26e40d56c2a001c
 REG_FIDDLE(Bitmap_tryAllocPixels_4, 256, 100, false, 0) {
 class LargePixelRef : public SkPixelRef {
diff --git a/docs/examples/Bitmap_width.cpp b/docs/examples/Bitmap_width.cpp
index c8330be..60ab78c 100644
--- a/docs/examples/Bitmap_width.cpp
+++ b/docs/examples/Bitmap_width.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d06880c42f8bb3b4c3b67bd988046049
 REG_FIDDLE(Bitmap_width, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_writePixels.cpp b/docs/examples/Bitmap_writePixels.cpp
index 0caa52b..19c31c2 100644
--- a/docs/examples/Bitmap_writePixels.cpp
+++ b/docs/examples/Bitmap_writePixels.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9b3133a6673d2514d166398adbe1f9f4
 REG_FIDDLE(Bitmap_writePixels, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Bitmap_writePixels_2.cpp b/docs/examples/Bitmap_writePixels_2.cpp
index 29fcf94..fde7ef6 100644
--- a/docs/examples/Bitmap_writePixels_2.cpp
+++ b/docs/examples/Bitmap_writePixels_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=faa5dfa466f6e16c07c124d971f32679
 REG_FIDDLE(Bitmap_writePixels_2, 256, 80, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/BlendMode_Name.cpp b/docs/examples/BlendMode_Name.cpp
index a12dd83..94e05415 100644
--- a/docs/examples/BlendMode_Name.cpp
+++ b/docs/examples/BlendMode_Name.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3996f4994bf4e90b4cd86524c1f9f1a6
 REG_FIDDLE(BlendMode_Name, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Blend_Mode_Methods.cpp b/docs/examples/Blend_Mode_Methods.cpp
index a0ba2ce..00dbde8 100644
--- a/docs/examples/Blend_Mode_Methods.cpp
+++ b/docs/examples/Blend_Mode_Methods.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=73092d4d06faecea3c204d852a4dd8a8
 REG_FIDDLE(Blend_Mode_Methods, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_129.cpp b/docs/examples/Canvas_129.cpp
index ba9c70a..f5a64cd 100644
--- a/docs/examples/Canvas_129.cpp
+++ b/docs/examples/Canvas_129.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=00b430bd80d740e19c6d020a940f56d5
 REG_FIDDLE(Canvas_129, 256, 1, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_MakeRasterDirect.cpp b/docs/examples/Canvas_MakeRasterDirect.cpp
index 8b4dbd3..49f83f3 100644
--- a/docs/examples/Canvas_MakeRasterDirect.cpp
+++ b/docs/examples/Canvas_MakeRasterDirect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=525285073aae7e53eb8f454a398f880c
 REG_FIDDLE(Canvas_MakeRasterDirect, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
diff --git a/docs/examples/Canvas_MakeRasterDirectN32.cpp b/docs/examples/Canvas_MakeRasterDirectN32.cpp
index 27313fe..7023236 100644
--- a/docs/examples/Canvas_MakeRasterDirectN32.cpp
+++ b/docs/examples/Canvas_MakeRasterDirectN32.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=87f55e62ec4c3535e1a5d0f1415b20c6
 REG_FIDDLE(Canvas_MakeRasterDirectN32, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
diff --git a/docs/examples/Canvas_PointMode.cpp b/docs/examples/Canvas_PointMode.cpp
index 398fafa..bb43c7d 100644
--- a/docs/examples/Canvas_PointMode.cpp
+++ b/docs/examples/Canvas_PointMode.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=292b4b2008961b6f612434d3121fc4ce
 REG_FIDDLE(Canvas_PointMode, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_SaveLayerRec.cpp b/docs/examples/Canvas_SaveLayerRec.cpp
index b842348..de175c1 100644
--- a/docs/examples/Canvas_SaveLayerRec.cpp
+++ b/docs/examples/Canvas_SaveLayerRec.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ee8c0b120234e27364f8c9a786cf8f89
 REG_FIDDLE(Canvas_SaveLayerRec, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_SaveLayerRec_SaveLayerRec.cpp b/docs/examples/Canvas_SaveLayerRec_SaveLayerRec.cpp
index b80834c..862a48e 100644
--- a/docs/examples/Canvas_SaveLayerRec_SaveLayerRec.cpp
+++ b/docs/examples/Canvas_SaveLayerRec_SaveLayerRec.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b5cea1eed80a0eb04ddbab3f36dff73f
 REG_FIDDLE(Canvas_SaveLayerRec_SaveLayerRec, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star.cpp b/docs/examples/Canvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star.cpp
index 9da2199..9ec96d4 100644
--- a/docs/examples/Canvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star.cpp
+++ b/docs/examples/Canvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=027f920259888fc19591ea9a90d92873
 REG_FIDDLE(Canvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star.cpp b/docs/examples/Canvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star.cpp
index bb014d7..935593e 100644
--- a/docs/examples/Canvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star.cpp
+++ b/docs/examples/Canvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9b7fa2fe855642ffff6538829db15328
 REG_FIDDLE(Canvas_SaveLayerRec_const_SkRect_star_const_SkPaint_star_const_SkImageFilter_star, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_SrcRectConstraint.cpp b/docs/examples/Canvas_SrcRectConstraint.cpp
index 1218216..e42eabf 100644
--- a/docs/examples/Canvas_SrcRectConstraint.cpp
+++ b/docs/examples/Canvas_SrcRectConstraint.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5df49d1f4da37275a1f10ef7f1a749f0
 REG_FIDDLE(Canvas_SrcRectConstraint, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_accessTopLayerPixels_a.cpp b/docs/examples/Canvas_accessTopLayerPixels_a.cpp
index 3266ae1..635bb02 100644
--- a/docs/examples/Canvas_accessTopLayerPixels_a.cpp
+++ b/docs/examples/Canvas_accessTopLayerPixels_a.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=38d0d6ca9bea146d31bcbec197856359
 REG_FIDDLE(Canvas_accessTopLayerPixels_a, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_accessTopLayerPixels_b.cpp b/docs/examples/Canvas_accessTopLayerPixels_b.cpp
index e23f316..f630eec 100644
--- a/docs/examples/Canvas_accessTopLayerPixels_b.cpp
+++ b/docs/examples/Canvas_accessTopLayerPixels_b.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a7ac9c21bbabcdeeca00f72a61cd0f3e
 REG_FIDDLE(Canvas_accessTopLayerPixels_b, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_accessTopRasterHandle.cpp b/docs/examples/Canvas_accessTopRasterHandle.cpp
index 93ab5fc..f00f41c 100644
--- a/docs/examples/Canvas_accessTopRasterHandle.cpp
+++ b/docs/examples/Canvas_accessTopRasterHandle.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4486d0c0b22ad2931db130f42da4c80c
 REG_FIDDLE(Canvas_accessTopRasterHandle, 256, 256, true, 0) {
 static void DeleteCallback(void*, void* context) {
diff --git a/docs/examples/Canvas_clear.cpp b/docs/examples/Canvas_clear.cpp
index 733c24e..b611afb 100644
--- a/docs/examples/Canvas_clear.cpp
+++ b/docs/examples/Canvas_clear.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8c4499e322f10153dcd9b0b9806233b9
 REG_FIDDLE(Canvas_clear, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_clipPath.cpp b/docs/examples/Canvas_clipPath.cpp
index ab43bb0..3b6d43d8 100644
--- a/docs/examples/Canvas_clipPath.cpp
+++ b/docs/examples/Canvas_clipPath.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ee47ae6b813bfaa55e1a7b7c053ed60d
 REG_FIDDLE(Canvas_clipPath, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_clipPath_2.cpp b/docs/examples/Canvas_clipPath_2.cpp
index e74ca27..963c8d7 100644
--- a/docs/examples/Canvas_clipPath_2.cpp
+++ b/docs/examples/Canvas_clipPath_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7856755c1bf8431c286c734b353345ad
 REG_FIDDLE(Canvas_clipPath_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_clipPath_3.cpp b/docs/examples/Canvas_clipPath_3.cpp
index 8952c6a..9988a80 100644
--- a/docs/examples/Canvas_clipPath_3.cpp
+++ b/docs/examples/Canvas_clipPath_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=187a7ae77a8176e417181411988534b6
 REG_FIDDLE(Canvas_clipPath_3, 256, 212, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_clipRRect.cpp b/docs/examples/Canvas_clipRRect.cpp
index 2a09fe2..4cc1c90 100644
--- a/docs/examples/Canvas_clipRRect.cpp
+++ b/docs/examples/Canvas_clipRRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=182ef48ab5e04ba3578496fda8d9fa36
 REG_FIDDLE(Canvas_clipRRect, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_clipRRect_2.cpp b/docs/examples/Canvas_clipRRect_2.cpp
index 6af4930..66cd0ff 100644
--- a/docs/examples/Canvas_clipRRect_2.cpp
+++ b/docs/examples/Canvas_clipRRect_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ef6ae2eaae6761130ce38065d0364abd
 REG_FIDDLE(Canvas_clipRRect_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_clipRRect_3.cpp b/docs/examples/Canvas_clipRRect_3.cpp
index 8688c24..7223b32 100644
--- a/docs/examples/Canvas_clipRRect_3.cpp
+++ b/docs/examples/Canvas_clipRRect_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f583114580b2176fe3e75b0994476a84
 REG_FIDDLE(Canvas_clipRRect_3, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_clipRect.cpp b/docs/examples/Canvas_clipRect.cpp
index 0397fcb..7ab1f10 100644
--- a/docs/examples/Canvas_clipRect.cpp
+++ b/docs/examples/Canvas_clipRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6a614faa0fbcf19958b5559c19b02d0f
 REG_FIDDLE(Canvas_clipRect, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_clipRect_2.cpp b/docs/examples/Canvas_clipRect_2.cpp
index 490c640..0856e8d 100644
--- a/docs/examples/Canvas_clipRect_2.cpp
+++ b/docs/examples/Canvas_clipRect_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=13bbc5fa5597a6cd4d704b419dbc66d9
 REG_FIDDLE(Canvas_clipRect_2, 280, 192, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_clipRect_3.cpp b/docs/examples/Canvas_clipRect_3.cpp
index fe34c28..e792258 100644
--- a/docs/examples/Canvas_clipRect_3.cpp
+++ b/docs/examples/Canvas_clipRect_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1d4e0632c97e42692775d834fe10aa99
 REG_FIDDLE(Canvas_clipRect_3, 256, 133, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_clipRegion.cpp b/docs/examples/Canvas_clipRegion.cpp
index 8b90021..201906e 100644
--- a/docs/examples/Canvas_clipRegion.cpp
+++ b/docs/examples/Canvas_clipRegion.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7bb57c0e456c5fda2c2cca4abb68b19e
 REG_FIDDLE(Canvas_clipRegion, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_concat.cpp b/docs/examples/Canvas_concat.cpp
index d687832..c5020a8 100644
--- a/docs/examples/Canvas_concat.cpp
+++ b/docs/examples/Canvas_concat.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8f6818b25a92a88638ad99b2dd293f61
 REG_FIDDLE(Canvas_concat, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_const_SkBitmap_const_SkSurfaceProps.cpp b/docs/examples/Canvas_const_SkBitmap_const_SkSurfaceProps.cpp
index 7e4da71..1ad3d39 100644
--- a/docs/examples/Canvas_const_SkBitmap_const_SkSurfaceProps.cpp
+++ b/docs/examples/Canvas_const_SkBitmap_const_SkSurfaceProps.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c26cfae4c42cb445240335cc12a50235
 REG_FIDDLE(Canvas_const_SkBitmap_const_SkSurfaceProps, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
diff --git a/docs/examples/Canvas_copy_const_SkBitmap.cpp b/docs/examples/Canvas_copy_const_SkBitmap.cpp
index 7812e41..1f8bff3 100644
--- a/docs/examples/Canvas_copy_const_SkBitmap.cpp
+++ b/docs/examples/Canvas_copy_const_SkBitmap.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=dd92db963af190e849894038f39b598a
 REG_FIDDLE(Canvas_copy_const_SkBitmap, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
diff --git a/docs/examples/Canvas_destructor.cpp b/docs/examples/Canvas_destructor.cpp
index 4b6dc87..9a910f3 100644
--- a/docs/examples/Canvas_destructor.cpp
+++ b/docs/examples/Canvas_destructor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b7bc91ff16c9b9351b2a127f35394b82
 REG_FIDDLE(Canvas_destructor, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawAnnotation_2.cpp b/docs/examples/Canvas_drawAnnotation_2.cpp
index 6c58391..c7daeaf 100644
--- a/docs/examples/Canvas_drawAnnotation_2.cpp
+++ b/docs/examples/Canvas_drawAnnotation_2.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=00b430bd80d740e19c6d020a940f56d5
 REG_FIDDLE(Canvas_drawAnnotation_2, 256, 1, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawArc_a.cpp b/docs/examples/Canvas_drawArc_a.cpp
index a969e7b..9746e47 100644
--- a/docs/examples/Canvas_drawArc_a.cpp
+++ b/docs/examples/Canvas_drawArc_a.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=11f0fbe7b30d776913c2e7c92c02ff57
 REG_FIDDLE(Canvas_drawArc_a, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawArc_b.cpp b/docs/examples/Canvas_drawArc_b.cpp
index bcd3968..5ef004e 100644
--- a/docs/examples/Canvas_drawArc_b.cpp
+++ b/docs/examples/Canvas_drawArc_b.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e91dbe45974489b8962c815017b7914f
 REG_FIDDLE(Canvas_drawArc_b, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawAtlas.cpp b/docs/examples/Canvas_drawAtlas.cpp
index dcb64b1..0dcec94 100644
--- a/docs/examples/Canvas_drawAtlas.cpp
+++ b/docs/examples/Canvas_drawAtlas.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1df575f9b8132306ce0552a2554ed132
 REG_FIDDLE(Canvas_drawAtlas, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawAtlas_2.cpp b/docs/examples/Canvas_drawAtlas_2.cpp
index ccae9f3..184776a 100644
--- a/docs/examples/Canvas_drawAtlas_2.cpp
+++ b/docs/examples/Canvas_drawAtlas_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0e66a8f230a8d531bcef9f5ebdc5aac1
 REG_FIDDLE(Canvas_drawAtlas_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawAtlas_3.cpp b/docs/examples/Canvas_drawAtlas_3.cpp
index 0cd31af..2d8d7310 100644
--- a/docs/examples/Canvas_drawAtlas_3.cpp
+++ b/docs/examples/Canvas_drawAtlas_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8dc0d0fdeab20bbc21cac6874ddbefcd
 REG_FIDDLE(Canvas_drawAtlas_3, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawAtlas_4.cpp b/docs/examples/Canvas_drawAtlas_4.cpp
index 33ce86e..1e5de3e 100644
--- a/docs/examples/Canvas_drawAtlas_4.cpp
+++ b/docs/examples/Canvas_drawAtlas_4.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c093c2b14bd3e6171ede7cd4049d9b57
 REG_FIDDLE(Canvas_drawAtlas_4, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawBitmap.cpp b/docs/examples/Canvas_drawBitmap.cpp
index b21c09e..11e852f 100644
--- a/docs/examples/Canvas_drawBitmap.cpp
+++ b/docs/examples/Canvas_drawBitmap.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4a521be1f850058541e136a808c65e78
 REG_FIDDLE(Canvas_drawBitmap, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawBitmapLattice.cpp b/docs/examples/Canvas_drawBitmapLattice.cpp
index 6ab2254..d5b1a8a 100644
--- a/docs/examples/Canvas_drawBitmapLattice.cpp
+++ b/docs/examples/Canvas_drawBitmapLattice.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c5bfa944e17ba4a4400dc799f032069c
 REG_FIDDLE(Canvas_drawBitmapLattice, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawBitmapNine.cpp b/docs/examples/Canvas_drawBitmapNine.cpp
index e6d7bc3..e4e6589 100644
--- a/docs/examples/Canvas_drawBitmapNine.cpp
+++ b/docs/examples/Canvas_drawBitmapNine.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e99e7be0d8f67dfacbecf85df585433d
 REG_FIDDLE(Canvas_drawBitmapNine, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawBitmapRect.cpp b/docs/examples/Canvas_drawBitmapRect.cpp
index ae78fa9..83a3300 100644
--- a/docs/examples/Canvas_drawBitmapRect.cpp
+++ b/docs/examples/Canvas_drawBitmapRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7d04932f2a259cc70d6e45cd25a6feb6
 REG_FIDDLE(Canvas_drawBitmapRect, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawBitmapRect_2.cpp b/docs/examples/Canvas_drawBitmapRect_2.cpp
index 1eda940..b48774e 100644
--- a/docs/examples/Canvas_drawBitmapRect_2.cpp
+++ b/docs/examples/Canvas_drawBitmapRect_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0a3c6d2459566e58cee7d4910655ee21
 REG_FIDDLE(Canvas_drawBitmapRect_2, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawBitmapRect_3.cpp b/docs/examples/Canvas_drawBitmapRect_3.cpp
index 30d9bca..9ec6268 100644
--- a/docs/examples/Canvas_drawBitmapRect_3.cpp
+++ b/docs/examples/Canvas_drawBitmapRect_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bdbeac3c97f60a63987b1cc8e1f1e91e
 REG_FIDDLE(Canvas_drawBitmapRect_3, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawCircle.cpp b/docs/examples/Canvas_drawCircle.cpp
index da5c462..4ef3305 100644
--- a/docs/examples/Canvas_drawCircle.cpp
+++ b/docs/examples/Canvas_drawCircle.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=841229e25ca9dfb68bd0dc4dfff356eb
 REG_FIDDLE(Canvas_drawCircle, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawCircle_2.cpp b/docs/examples/Canvas_drawCircle_2.cpp
index 1e4b4ce..8d8a6f0 100644
--- a/docs/examples/Canvas_drawCircle_2.cpp
+++ b/docs/examples/Canvas_drawCircle_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9303ffae45ddd0b0a1f93d816a1762f4
 REG_FIDDLE(Canvas_drawCircle_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawColor.cpp b/docs/examples/Canvas_drawColor.cpp
index a6dfc48..d5737ea 100644
--- a/docs/examples/Canvas_drawColor.cpp
+++ b/docs/examples/Canvas_drawColor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9cf94fead1e6b17d836c704b4eac269a
 REG_FIDDLE(Canvas_drawColor, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawDRRect_a.cpp b/docs/examples/Canvas_drawDRRect_a.cpp
index 0079023..98d30df 100644
--- a/docs/examples/Canvas_drawDRRect_a.cpp
+++ b/docs/examples/Canvas_drawDRRect_a.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=02e33141f13da2f19aef7feb7117b541
 REG_FIDDLE(Canvas_drawDRRect_a, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawDRRect_b.cpp b/docs/examples/Canvas_drawDRRect_b.cpp
index 33306e5..1a41eed 100644
--- a/docs/examples/Canvas_drawDRRect_b.cpp
+++ b/docs/examples/Canvas_drawDRRect_b.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=30823cb4edf884d330285ea161664931
 REG_FIDDLE(Canvas_drawDRRect_b, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawDrawable.cpp b/docs/examples/Canvas_drawDrawable.cpp
index 4e05c27..235d22d 100644
--- a/docs/examples/Canvas_drawDrawable.cpp
+++ b/docs/examples/Canvas_drawDrawable.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3a4dfcd08838866b5cfc0d82489195ba
 REG_FIDDLE(Canvas_drawDrawable, 256, 100, false, 0) {
 struct MyDrawable : public SkDrawable {
diff --git a/docs/examples/Canvas_drawDrawable_2.cpp b/docs/examples/Canvas_drawDrawable_2.cpp
index b450b65..4942871 100644
--- a/docs/examples/Canvas_drawDrawable_2.cpp
+++ b/docs/examples/Canvas_drawDrawable_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1bdc07ad3b154c89b771722c2fcaee3f
 REG_FIDDLE(Canvas_drawDrawable_2, 256, 100, false, 0) {
 struct MyDrawable : public SkDrawable {
diff --git a/docs/examples/Canvas_drawIRect.cpp b/docs/examples/Canvas_drawIRect.cpp
index 2d7a57c..33df4d3 100644
--- a/docs/examples/Canvas_drawIRect.cpp
+++ b/docs/examples/Canvas_drawIRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d3d8ca584134560750b1efa4a4c6e138
 REG_FIDDLE(Canvas_drawIRect, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawImage.cpp b/docs/examples/Canvas_drawImage.cpp
index f11c80c..fbebf34 100644
--- a/docs/examples/Canvas_drawImage.cpp
+++ b/docs/examples/Canvas_drawImage.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=185746dc0faa6f1df30c4afe098646ff
 REG_FIDDLE(Canvas_drawImage, 256, 64, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawImageNine.cpp b/docs/examples/Canvas_drawImageNine.cpp
index e3a365e..0cad667 100644
--- a/docs/examples/Canvas_drawImageNine.cpp
+++ b/docs/examples/Canvas_drawImageNine.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4f153cf1d0dbe1a95acf5badeec14dae
 REG_FIDDLE(Canvas_drawImageNine, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawImageNine_2.cpp b/docs/examples/Canvas_drawImageNine_2.cpp
index eaa9f0d..826e18a 100644
--- a/docs/examples/Canvas_drawImageNine_2.cpp
+++ b/docs/examples/Canvas_drawImageNine_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d597d9af8d17fd93e634dd12017058e2
 REG_FIDDLE(Canvas_drawImageNine_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawImageRect.cpp b/docs/examples/Canvas_drawImageRect.cpp
index f2648bd..3548d4d 100644
--- a/docs/examples/Canvas_drawImageRect.cpp
+++ b/docs/examples/Canvas_drawImageRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bfd18e9cac896cdf94c9f154ccf94be8
 REG_FIDDLE(Canvas_drawImageRect, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawImageRect_2.cpp b/docs/examples/Canvas_drawImageRect_2.cpp
index f7daec0..743f8bd 100644
--- a/docs/examples/Canvas_drawImageRect_2.cpp
+++ b/docs/examples/Canvas_drawImageRect_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7f92cd5c9b9f4b1ac3cd933b08037bfe
 REG_FIDDLE(Canvas_drawImageRect_2, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawImageRect_3.cpp b/docs/examples/Canvas_drawImageRect_3.cpp
index 904b6c7..ad6f0d97 100644
--- a/docs/examples/Canvas_drawImageRect_3.cpp
+++ b/docs/examples/Canvas_drawImageRect_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3cf8fb639fef99993cafc064d550c739
 REG_FIDDLE(Canvas_drawImageRect_3, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawImageRect_4.cpp b/docs/examples/Canvas_drawImageRect_4.cpp
index 38c8cd4..2c49dc0 100644
--- a/docs/examples/Canvas_drawImageRect_4.cpp
+++ b/docs/examples/Canvas_drawImageRect_4.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d4b35a9d24c32c042bd1f529b8de3c0d
 REG_FIDDLE(Canvas_drawImageRect_4, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawImageRect_5.cpp b/docs/examples/Canvas_drawImageRect_5.cpp
index 223bdcb..b494683 100644
--- a/docs/examples/Canvas_drawImageRect_5.cpp
+++ b/docs/examples/Canvas_drawImageRect_5.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d307e7e1237f39fb54d80723e5449857
 REG_FIDDLE(Canvas_drawImageRect_5, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawImageRect_6.cpp b/docs/examples/Canvas_drawImageRect_6.cpp
index 1d3fcb9..7aeabe4 100644
--- a/docs/examples/Canvas_drawImageRect_6.cpp
+++ b/docs/examples/Canvas_drawImageRect_6.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3a47ef94cb70144455f80333d8653e6c
 REG_FIDDLE(Canvas_drawImageRect_6, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawImage_2.cpp b/docs/examples/Canvas_drawImage_2.cpp
index 63c7514..0b0a48f 100644
--- a/docs/examples/Canvas_drawImage_2.cpp
+++ b/docs/examples/Canvas_drawImage_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a4e877e891b1be5faa2b7fd07f673a10
 REG_FIDDLE(Canvas_drawImage_2, 256, 64, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawLine.cpp b/docs/examples/Canvas_drawLine.cpp
index 72d2ed7..d0b710c 100644
--- a/docs/examples/Canvas_drawLine.cpp
+++ b/docs/examples/Canvas_drawLine.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d10ee4a265f278d02afe11ad889b293b
 REG_FIDDLE(Canvas_drawLine, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawLine_2.cpp b/docs/examples/Canvas_drawLine_2.cpp
index 1c47f59..832ad7f 100644
--- a/docs/examples/Canvas_drawLine_2.cpp
+++ b/docs/examples/Canvas_drawLine_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f8525816cb596dde1a3855446792c8e0
 REG_FIDDLE(Canvas_drawLine_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawOval.cpp b/docs/examples/Canvas_drawOval.cpp
index 3e254ca..570114c 100644
--- a/docs/examples/Canvas_drawOval.cpp
+++ b/docs/examples/Canvas_drawOval.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8b6b86f8a022811cd29a9c6ab771df12
 REG_FIDDLE(Canvas_drawOval, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawPaint.cpp b/docs/examples/Canvas_drawPaint.cpp
index 2968ceb..879ab84 100644
--- a/docs/examples/Canvas_drawPaint.cpp
+++ b/docs/examples/Canvas_drawPaint.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1cd076b9b1a7c976cdca72b93c4f42dd
 REG_FIDDLE(Canvas_drawPaint, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawPatch.cpp b/docs/examples/Canvas_drawPatch.cpp
index 83c3a81..f5c0ef3 100644
--- a/docs/examples/Canvas_drawPatch.cpp
+++ b/docs/examples/Canvas_drawPatch.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=accb545d67984ced168f5be6ab824795
 REG_FIDDLE(Canvas_drawPatch, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawPatch_2_a.cpp b/docs/examples/Canvas_drawPatch_2_a.cpp
index f7a1cc1..c1d6786 100644
--- a/docs/examples/Canvas_drawPatch_2_a.cpp
+++ b/docs/examples/Canvas_drawPatch_2_a.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4e8b7409531c9211a2afcf632005a38c
 REG_FIDDLE(Canvas_drawPatch_2_a, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawPatch_2_b.cpp b/docs/examples/Canvas_drawPatch_2_b.cpp
index bb8175a..6909f17 100644
--- a/docs/examples/Canvas_drawPatch_2_b.cpp
+++ b/docs/examples/Canvas_drawPatch_2_b.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3412c2a16cb529af0e04878d264451f2
 REG_FIDDLE(Canvas_drawPatch_2_b, 256, 256, false, 6) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawPath.cpp b/docs/examples/Canvas_drawPath.cpp
index 6d07815..d62374d 100644
--- a/docs/examples/Canvas_drawPath.cpp
+++ b/docs/examples/Canvas_drawPath.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=fe2294131f422b8d6752f6a880f98ad9
 REG_FIDDLE(Canvas_drawPath, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawPicture_2.cpp b/docs/examples/Canvas_drawPicture_2.cpp
index 97e58c1..3cb6bc3 100644
--- a/docs/examples/Canvas_drawPicture_2.cpp
+++ b/docs/examples/Canvas_drawPicture_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=83918a23fcffd47f59a1ef662c85a24c
 REG_FIDDLE(Canvas_drawPicture_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawPicture_3.cpp b/docs/examples/Canvas_drawPicture_3.cpp
index df76070..7aea2cd 100644
--- a/docs/examples/Canvas_drawPicture_3.cpp
+++ b/docs/examples/Canvas_drawPicture_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=759e4e5bac680838added8f70884dcdc
 REG_FIDDLE(Canvas_drawPicture_3, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawPicture_4.cpp b/docs/examples/Canvas_drawPicture_4.cpp
index f1520d5..d1d5c4f 100644
--- a/docs/examples/Canvas_drawPicture_4.cpp
+++ b/docs/examples/Canvas_drawPicture_4.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c4ff59439dd2fc871925d4eeb0c84ca1
 REG_FIDDLE(Canvas_drawPicture_4, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawPoint.cpp b/docs/examples/Canvas_drawPoint.cpp
index 47c50b5..f488f8f 100644
--- a/docs/examples/Canvas_drawPoint.cpp
+++ b/docs/examples/Canvas_drawPoint.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3476b553e7b547b604a3f6969f02d933
 REG_FIDDLE(Canvas_drawPoint, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawPoint_2.cpp b/docs/examples/Canvas_drawPoint_2.cpp
index 8fa5e74..3b09783 100644
--- a/docs/examples/Canvas_drawPoint_2.cpp
+++ b/docs/examples/Canvas_drawPoint_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1a0a839061c69d870acca2bcfbdf1a41
 REG_FIDDLE(Canvas_drawPoint_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawPoints.cpp b/docs/examples/Canvas_drawPoints.cpp
index 5de4426..0206b5c 100644
--- a/docs/examples/Canvas_drawPoints.cpp
+++ b/docs/examples/Canvas_drawPoints.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=635d54b4716e226e93dfbc21ad40e77d
 REG_FIDDLE(Canvas_drawPoints, 256, 200, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawPosText.cpp b/docs/examples/Canvas_drawPosText.cpp
index 0ca581e..5bf5fb9 100644
--- a/docs/examples/Canvas_drawPosText.cpp
+++ b/docs/examples/Canvas_drawPosText.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bf0b2402533a23b6392e0676b7a8414c
 REG_FIDDLE(Canvas_drawPosText, 256, 120, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawPosTextH.cpp b/docs/examples/Canvas_drawPosTextH.cpp
index e72adce..e88669a 100644
--- a/docs/examples/Canvas_drawPosTextH.cpp
+++ b/docs/examples/Canvas_drawPosTextH.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=95c6a7ef82993a8d2add676080e9438a
 REG_FIDDLE(Canvas_drawPosTextH, 256, 40, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawRRect.cpp b/docs/examples/Canvas_drawRRect.cpp
index 99d6143..dff7ff2 100644
--- a/docs/examples/Canvas_drawRRect.cpp
+++ b/docs/examples/Canvas_drawRRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=90fed1bb11efb43aada94113338c63d8
 REG_FIDDLE(Canvas_drawRRect, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawRect.cpp b/docs/examples/Canvas_drawRect.cpp
index afb88f5..fc3fe27 100644
--- a/docs/examples/Canvas_drawRect.cpp
+++ b/docs/examples/Canvas_drawRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=871b0da9b4a23de11ae7a772ce14aed3
 REG_FIDDLE(Canvas_drawRect, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawRegion.cpp b/docs/examples/Canvas_drawRegion.cpp
index a312ff2..4fd3907 100644
--- a/docs/examples/Canvas_drawRegion.cpp
+++ b/docs/examples/Canvas_drawRegion.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=80309e0deca0f8add616cec7bec634ca
 REG_FIDDLE(Canvas_drawRegion, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawRoundRect.cpp b/docs/examples/Canvas_drawRoundRect.cpp
index edbd598..9bde76c 100644
--- a/docs/examples/Canvas_drawRoundRect.cpp
+++ b/docs/examples/Canvas_drawRoundRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=199fe818c09026c114e165bff166a39f
 REG_FIDDLE(Canvas_drawRoundRect, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawString.cpp b/docs/examples/Canvas_drawString.cpp
index 510f4aa..5453281 100644
--- a/docs/examples/Canvas_drawString.cpp
+++ b/docs/examples/Canvas_drawString.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=85442cf8d0bce6b5a777853bc36a4dc4
 REG_FIDDLE(Canvas_drawString, 256, 48, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawString_2.cpp b/docs/examples/Canvas_drawString_2.cpp
index f09a6c3..158bd38 100644
--- a/docs/examples/Canvas_drawString_2.cpp
+++ b/docs/examples/Canvas_drawString_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=435178c09feb3bfec5e35d983609a013
 REG_FIDDLE(Canvas_drawString_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawText.cpp b/docs/examples/Canvas_drawText.cpp
index 46d7665..d2c508f 100644
--- a/docs/examples/Canvas_drawText.cpp
+++ b/docs/examples/Canvas_drawText.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=55f5e59350622c5e2834d1c85789f732
 REG_FIDDLE(Canvas_drawText, 256, 200, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawTextBlob.cpp b/docs/examples/Canvas_drawTextBlob.cpp
index 50588ce..bd974b07 100644
--- a/docs/examples/Canvas_drawTextBlob.cpp
+++ b/docs/examples/Canvas_drawTextBlob.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=005502b502c1282cb8d306d6c8d998fb
 REG_FIDDLE(Canvas_drawTextBlob, 256, 120, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawTextBlob_2.cpp b/docs/examples/Canvas_drawTextBlob_2.cpp
index c8fe857..aa146ae 100644
--- a/docs/examples/Canvas_drawTextBlob_2.cpp
+++ b/docs/examples/Canvas_drawTextBlob_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1cae21e7b63b24de3eca0bbd9be1936b
 REG_FIDDLE(Canvas_drawTextBlob_2, 256, 120, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawTextRSXform.cpp b/docs/examples/Canvas_drawTextRSXform.cpp
index d1e1d06..e94f28c 100644
--- a/docs/examples/Canvas_drawTextRSXform.cpp
+++ b/docs/examples/Canvas_drawTextRSXform.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=935c8f8b9782d297a73d7186f6ef7945
 REG_FIDDLE(Canvas_drawTextRSXform, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawVertices.cpp b/docs/examples/Canvas_drawVertices.cpp
index d79d85c..a289d57 100644
--- a/docs/examples/Canvas_drawVertices.cpp
+++ b/docs/examples/Canvas_drawVertices.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f48b22eaad1bb7adcc3faaa321754af6
 REG_FIDDLE(Canvas_drawVertices, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_drawVertices_2.cpp b/docs/examples/Canvas_drawVertices_2.cpp
index 9a5a841..899cc6d 100644
--- a/docs/examples/Canvas_drawVertices_2.cpp
+++ b/docs/examples/Canvas_drawVertices_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e8bdae9bea3227758989028424fcac3d
 REG_FIDDLE(Canvas_drawVertices_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_empty_constructor.cpp b/docs/examples/Canvas_empty_constructor.cpp
index 9cf17fa..79ea09b 100644
--- a/docs/examples/Canvas_empty_constructor.cpp
+++ b/docs/examples/Canvas_empty_constructor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4a00e6589e862fde5be532f4b6e316ce
 REG_FIDDLE(Canvas_empty_constructor, 256, 256, true, 0) {
 static void check_for_rotated_ctm(const SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_getBaseLayerSize.cpp b/docs/examples/Canvas_getBaseLayerSize.cpp
index 400033d..0d13eb8 100644
--- a/docs/examples/Canvas_getBaseLayerSize.cpp
+++ b/docs/examples/Canvas_getBaseLayerSize.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=374e245d91cd729eca48fd20e631fdf3
 REG_FIDDLE(Canvas_getBaseLayerSize, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
diff --git a/docs/examples/Canvas_getDeviceClipBounds.cpp b/docs/examples/Canvas_getDeviceClipBounds.cpp
index 6783ef5..f5394ef 100644
--- a/docs/examples/Canvas_getDeviceClipBounds.cpp
+++ b/docs/examples/Canvas_getDeviceClipBounds.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=556832ac5711af662a98c21c547185e9
 REG_FIDDLE(Canvas_getDeviceClipBounds, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_getDeviceClipBounds_2.cpp b/docs/examples/Canvas_getDeviceClipBounds_2.cpp
index 5fd67c6..0f57afd 100644
--- a/docs/examples/Canvas_getDeviceClipBounds_2.cpp
+++ b/docs/examples/Canvas_getDeviceClipBounds_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6abb99f849a1f0e33e1dedc00d1c4f7a
 REG_FIDDLE(Canvas_getDeviceClipBounds_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_getGrContext.cpp b/docs/examples/Canvas_getGrContext.cpp
index c993b15..f5ce3ce 100644
--- a/docs/examples/Canvas_getGrContext.cpp
+++ b/docs/examples/Canvas_getGrContext.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c4ea949e5fa5a0630dcb6b0204bd498f
 REG_FIDDLE(Canvas_getGrContext, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_getLocalClipBounds.cpp b/docs/examples/Canvas_getLocalClipBounds.cpp
index 922aa0f..0469f5f 100644
--- a/docs/examples/Canvas_getLocalClipBounds.cpp
+++ b/docs/examples/Canvas_getLocalClipBounds.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7f60cb030d3f9b2473adbe3e34b19d91
 REG_FIDDLE(Canvas_getLocalClipBounds, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_getLocalClipBounds_2.cpp b/docs/examples/Canvas_getLocalClipBounds_2.cpp
index 1cd37c0..010f11c 100644
--- a/docs/examples/Canvas_getLocalClipBounds_2.cpp
+++ b/docs/examples/Canvas_getLocalClipBounds_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=85496614e90c66b020f8a70db8d06f4a
 REG_FIDDLE(Canvas_getLocalClipBounds_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_getProps.cpp b/docs/examples/Canvas_getProps.cpp
index 85b9256..01f1c14 100644
--- a/docs/examples/Canvas_getProps.cpp
+++ b/docs/examples/Canvas_getProps.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0fbf2dedc2619bbfbf173c9e3bc1a508
 REG_FIDDLE(Canvas_getProps, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
diff --git a/docs/examples/Canvas_getSaveCount.cpp b/docs/examples/Canvas_getSaveCount.cpp
index a8f6891..acdf95c 100644
--- a/docs/examples/Canvas_getSaveCount.cpp
+++ b/docs/examples/Canvas_getSaveCount.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=005f2b207e078baac596681924fe591e
 REG_FIDDLE(Canvas_getSaveCount, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_getTotalMatrix.cpp b/docs/examples/Canvas_getTotalMatrix.cpp
index 965c08e..24c2c5a 100644
--- a/docs/examples/Canvas_getTotalMatrix.cpp
+++ b/docs/examples/Canvas_getTotalMatrix.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c0d5fa544759704768f47cac91ae3832
 REG_FIDDLE(Canvas_getTotalMatrix, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_imageInfo.cpp b/docs/examples/Canvas_imageInfo.cpp
index 35070ae..5d03885 100644
--- a/docs/examples/Canvas_imageInfo.cpp
+++ b/docs/examples/Canvas_imageInfo.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d93389d971f8084c4ccc7a66e4e157ee
 REG_FIDDLE(Canvas_imageInfo, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_int_int_const_SkSurfaceProps_star.cpp b/docs/examples/Canvas_int_int_const_SkSurfaceProps_star.cpp
index ffc6756..9555bc4 100644
--- a/docs/examples/Canvas_int_int_const_SkSurfaceProps_star.cpp
+++ b/docs/examples/Canvas_int_int_const_SkSurfaceProps_star.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ce6a5ef2df447970b4453489d9d67930
 REG_FIDDLE(Canvas_int_int_const_SkSurfaceProps_star, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
diff --git a/docs/examples/Canvas_isClipEmpty.cpp b/docs/examples/Canvas_isClipEmpty.cpp
index af2b185..e8ef04b 100644
--- a/docs/examples/Canvas_isClipEmpty.cpp
+++ b/docs/examples/Canvas_isClipEmpty.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f106f146a58c8604308d4d8d7086d2f5
 REG_FIDDLE(Canvas_isClipEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_isClipRect.cpp b/docs/examples/Canvas_isClipRect.cpp
index 21fc246..48c5f56 100644
--- a/docs/examples/Canvas_isClipRect.cpp
+++ b/docs/examples/Canvas_isClipRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9894bfb476c78a8f6c8f49fbbca3d50d
 REG_FIDDLE(Canvas_isClipRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_kInitWithPrevious_SaveLayerFlag.cpp b/docs/examples/Canvas_kInitWithPrevious_SaveLayerFlag.cpp
index 9955295..35d3b05 100644
--- a/docs/examples/Canvas_kInitWithPrevious_SaveLayerFlag.cpp
+++ b/docs/examples/Canvas_kInitWithPrevious_SaveLayerFlag.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=05db6a937225e8e31ae3481173d25dae
 REG_FIDDLE(Canvas_kInitWithPrevious_SaveLayerFlag, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_makeSurface.cpp b/docs/examples/Canvas_makeSurface.cpp
index ddf56f5..9de07d0 100644
--- a/docs/examples/Canvas_makeSurface.cpp
+++ b/docs/examples/Canvas_makeSurface.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1ce28351444b41ab2b8e3128a4b9b9c2
 REG_FIDDLE(Canvas_makeSurface, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_peekPixels.cpp b/docs/examples/Canvas_peekPixels.cpp
index d57ff7f..638b5fb 100644
--- a/docs/examples/Canvas_peekPixels.cpp
+++ b/docs/examples/Canvas_peekPixels.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e9411d676d1fa13b46331abe9e14ad3e
 REG_FIDDLE(Canvas_peekPixels, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_quickReject.cpp b/docs/examples/Canvas_quickReject.cpp
index f863ba9..2c2042f 100644
--- a/docs/examples/Canvas_quickReject.cpp
+++ b/docs/examples/Canvas_quickReject.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=cfe4016241074477809dd45435be9cf4
 REG_FIDDLE(Canvas_quickReject, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_quickReject_2.cpp b/docs/examples/Canvas_quickReject_2.cpp
index 3f69c03..981dbab 100644
--- a/docs/examples/Canvas_quickReject_2.cpp
+++ b/docs/examples/Canvas_quickReject_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=56dcd14f943aea6f7d7aafe0de7e6c25
 REG_FIDDLE(Canvas_quickReject_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_readPixels_2.cpp b/docs/examples/Canvas_readPixels_2.cpp
index 877473f..061d6ec 100644
--- a/docs/examples/Canvas_readPixels_2.cpp
+++ b/docs/examples/Canvas_readPixels_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=85f199032943b6483722c34a91c4e20f
 REG_FIDDLE(Canvas_readPixels_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_readPixels_3.cpp b/docs/examples/Canvas_readPixels_3.cpp
index 0c96279..e0dcb80 100644
--- a/docs/examples/Canvas_readPixels_3.cpp
+++ b/docs/examples/Canvas_readPixels_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=af6dec8ef974aa67bf102f29915bcd6a
 REG_FIDDLE(Canvas_readPixels_3, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_readPixels_a.cpp b/docs/examples/Canvas_readPixels_a.cpp
index 74110d0..14bef1b 100644
--- a/docs/examples/Canvas_readPixels_a.cpp
+++ b/docs/examples/Canvas_readPixels_a.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=102d014d7f753db2a9b9ee08893aaf11
 REG_FIDDLE(Canvas_readPixels_a, 64, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_readPixels_b.cpp b/docs/examples/Canvas_readPixels_b.cpp
index a1ddd35..6aabf15 100644
--- a/docs/examples/Canvas_readPixels_b.cpp
+++ b/docs/examples/Canvas_readPixels_b.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=481e990e923a0ed34654f4361b94f096
 REG_FIDDLE(Canvas_readPixels_b, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_resetMatrix.cpp b/docs/examples/Canvas_resetMatrix.cpp
index a69ce0c..5a0f344 100644
--- a/docs/examples/Canvas_resetMatrix.cpp
+++ b/docs/examples/Canvas_resetMatrix.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=412afffdf4682baa503a4e2e99201967
 REG_FIDDLE(Canvas_resetMatrix, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_restore.cpp b/docs/examples/Canvas_restore.cpp
index 3ed4a4f..7fe0a7a 100644
--- a/docs/examples/Canvas_restore.cpp
+++ b/docs/examples/Canvas_restore.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e78471212a67f2f4fd39496e17a30d17
 REG_FIDDLE(Canvas_restore, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_restoreToCount.cpp b/docs/examples/Canvas_restoreToCount.cpp
index 7112c00..ac48d18 100644
--- a/docs/examples/Canvas_restoreToCount.cpp
+++ b/docs/examples/Canvas_restoreToCount.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9ed0d56436e114c7097fd49eed1aea47
 REG_FIDDLE(Canvas_restoreToCount, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_rotate.cpp b/docs/examples/Canvas_rotate.cpp
index 428a6b9..6dd6683 100644
--- a/docs/examples/Canvas_rotate.cpp
+++ b/docs/examples/Canvas_rotate.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=963789ac8498d4e505748ab3b15cdaa5
 REG_FIDDLE(Canvas_rotate, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_rotate_2.cpp b/docs/examples/Canvas_rotate_2.cpp
index 2c96215..cc0375c 100644
--- a/docs/examples/Canvas_rotate_2.cpp
+++ b/docs/examples/Canvas_rotate_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bcf5baea1c66a957d5ffd7b54bbbfeff
 REG_FIDDLE(Canvas_rotate_2, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_save.cpp b/docs/examples/Canvas_save.cpp
index 660117b..a2fa2fe 100644
--- a/docs/examples/Canvas_save.cpp
+++ b/docs/examples/Canvas_save.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e477dce358a9ba3b0aa1bf33b8a376de
 REG_FIDDLE(Canvas_save, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_saveLayer.cpp b/docs/examples/Canvas_saveLayer.cpp
index 3f4616d..afb6ed4 100644
--- a/docs/examples/Canvas_saveLayer.cpp
+++ b/docs/examples/Canvas_saveLayer.cpp
@@ -1,9 +1,9 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=42318b18d403e17e07a541652da91ee2
 REG_FIDDLE(Canvas_saveLayer, 256, 128, false, 0) {
-#include "SkBlurImageFilter.h"
+#include "include/effects/SkBlurImageFilter.h"
 
 void draw(SkCanvas* canvas) {
     SkPaint paint, blur;
diff --git a/docs/examples/Canvas_saveLayerAlpha.cpp b/docs/examples/Canvas_saveLayerAlpha.cpp
index ab563a4..823033c 100644
--- a/docs/examples/Canvas_saveLayerAlpha.cpp
+++ b/docs/examples/Canvas_saveLayerAlpha.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8ab88d86fb438856cc48d6e2f08a6e24
 REG_FIDDLE(Canvas_saveLayerAlpha, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_saveLayerPreserveLCDTextRequests.cpp b/docs/examples/Canvas_saveLayerPreserveLCDTextRequests.cpp
index 32d11e3..113142c 100644
--- a/docs/examples/Canvas_saveLayerPreserveLCDTextRequests.cpp
+++ b/docs/examples/Canvas_saveLayerPreserveLCDTextRequests.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8460bf8b013f46c67e0bd96e13451aff
 REG_FIDDLE(Canvas_saveLayerPreserveLCDTextRequests, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_saveLayer_2.cpp b/docs/examples/Canvas_saveLayer_2.cpp
index a6ae460..936fa36 100644
--- a/docs/examples/Canvas_saveLayer_2.cpp
+++ b/docs/examples/Canvas_saveLayer_2.cpp
@@ -1,9 +1,9 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a17aec3aa4909527be039e26a7eda694
 REG_FIDDLE(Canvas_saveLayer_2, 256, 128, false, 0) {
-#include "SkBlurImageFilter.h"
+#include "include/effects/SkBlurImageFilter.h"
 
 void draw(SkCanvas* canvas) {
     SkPaint paint, blur;
diff --git a/docs/examples/Canvas_saveLayer_3.cpp b/docs/examples/Canvas_saveLayer_3.cpp
index 16ae0de..3a6d427 100644
--- a/docs/examples/Canvas_saveLayer_3.cpp
+++ b/docs/examples/Canvas_saveLayer_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7d3751e82d1b6ec328ffa3d6f48ca831
 REG_FIDDLE(Canvas_saveLayer_3, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_scale.cpp b/docs/examples/Canvas_scale.cpp
index 8bf1a51..263a9f6 100644
--- a/docs/examples/Canvas_scale.cpp
+++ b/docs/examples/Canvas_scale.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7d0d801ef13c6c6da51e840c22ac15b0
 REG_FIDDLE(Canvas_scale, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_setMatrix.cpp b/docs/examples/Canvas_setMatrix.cpp
index 2e3cf69..4cdb90c 100644
--- a/docs/examples/Canvas_setMatrix.cpp
+++ b/docs/examples/Canvas_setMatrix.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=24b9cf7e6f9a08394e1e07413bd8733a
 REG_FIDDLE(Canvas_setMatrix, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_skew.cpp b/docs/examples/Canvas_skew.cpp
index 486dd5f..a811e85 100644
--- a/docs/examples/Canvas_skew.cpp
+++ b/docs/examples/Canvas_skew.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2e2acc21d7774df7e0940a30ad2ca99e
 REG_FIDDLE(Canvas_skew, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_translate.cpp b/docs/examples/Canvas_translate.cpp
index e6dfd47..713b80c 100644
--- a/docs/examples/Canvas_translate.cpp
+++ b/docs/examples/Canvas_translate.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=eb93d5fa66a5f7a10f4f9210494d7222
 REG_FIDDLE(Canvas_translate, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_writePixels.cpp b/docs/examples/Canvas_writePixels.cpp
index 75f22de..a320b55 100644
--- a/docs/examples/Canvas_writePixels.cpp
+++ b/docs/examples/Canvas_writePixels.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=29b98ebf58aa9fd1edfaabf9f4490b3a
 REG_FIDDLE(Canvas_writePixels, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Canvas_writePixels_2.cpp b/docs/examples/Canvas_writePixels_2.cpp
index 83d3f51..54d4f2f 100644
--- a/docs/examples/Canvas_writePixels_2.cpp
+++ b/docs/examples/Canvas_writePixels_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8b128e067881f9251357653692fa28da
 REG_FIDDLE(Canvas_writePixels_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Clear.cpp b/docs/examples/Clear.cpp
index 45df306..490968b 100644
--- a/docs/examples/Clear.cpp
+++ b/docs/examples/Clear.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a9b56a26ca469bab9ab10e16f62fb2e2
 REG_FIDDLE(Clear, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Clip.cpp b/docs/examples/Clip.cpp
index 1c1b9af..553a9fa 100644
--- a/docs/examples/Clip.cpp
+++ b/docs/examples/Clip.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=862cc026601a41a58df49c0b9f0d7777
 REG_FIDDLE(Clip, 256, 90, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Color.cpp b/docs/examples/Color.cpp
index 6584833..24bb4ce 100644
--- a/docs/examples/Color.cpp
+++ b/docs/examples/Color.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5d7c6e23a34ca9bf3ba8cda4cdc94cc4
 REG_FIDDLE(Color, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ColorGetA.cpp b/docs/examples/ColorGetA.cpp
index 230df7e..3296e3e 100644
--- a/docs/examples/ColorGetA.cpp
+++ b/docs/examples/ColorGetA.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=896ce0316b489608a95af5439ca2aab1
 REG_FIDDLE(ColorGetA, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ColorGetB.cpp b/docs/examples/ColorGetB.cpp
index ef7641d..0ba7ec0 100644
--- a/docs/examples/ColorGetB.cpp
+++ b/docs/examples/ColorGetB.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9ee27675284faea375611dc88123a2c5
 REG_FIDDLE(ColorGetB, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ColorGetG.cpp b/docs/examples/ColorGetG.cpp
index 45c26f4..4771012 100644
--- a/docs/examples/ColorGetG.cpp
+++ b/docs/examples/ColorGetG.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=535d38b2c019299d915170f7b03d5fea
 REG_FIDDLE(ColorGetG, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ColorGetR.cpp b/docs/examples/ColorGetR.cpp
index d2d3299..7a8c33a 100644
--- a/docs/examples/ColorGetR.cpp
+++ b/docs/examples/ColorGetR.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d6da38577f189eaa6d9df75f6c3ed252
 REG_FIDDLE(ColorGetR, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ColorSetA.cpp b/docs/examples/ColorSetA.cpp
index 496d5c7..9fc343e 100644
--- a/docs/examples/ColorSetA.cpp
+++ b/docs/examples/ColorSetA.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=18f6f376f771f5ffa56d5e5b2ebd20fb
 REG_FIDDLE(ColorSetA, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ColorSetARGB.cpp b/docs/examples/ColorSetARGB.cpp
index f0f60a0..f228b61 100644
--- a/docs/examples/ColorSetARGB.cpp
+++ b/docs/examples/ColorSetARGB.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=35888f0869e01a6e03b5b93bba563734
 REG_FIDDLE(ColorSetARGB, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ColorSetRGB.cpp b/docs/examples/ColorSetRGB.cpp
index c68ed6a..ee4da50 100644
--- a/docs/examples/ColorSetRGB.cpp
+++ b/docs/examples/ColorSetRGB.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=dad12dd912197cd5edd789ac0801bf8a
 REG_FIDDLE(ColorSetRGB, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ColorToHSV.cpp b/docs/examples/ColorToHSV.cpp
index 4475463..6c24079 100644
--- a/docs/examples/ColorToHSV.cpp
+++ b/docs/examples/ColorToHSV.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1e0370f12c8aab5b84f9e824074f1e5a
 REG_FIDDLE(ColorToHSV, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ColorTypeBytesPerPixel.cpp b/docs/examples/ColorTypeBytesPerPixel.cpp
index dc3c71b..161be10 100644
--- a/docs/examples/ColorTypeBytesPerPixel.cpp
+++ b/docs/examples/ColorTypeBytesPerPixel.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=09ef49d07cb7005ba3e34d5ea53896f5
 REG_FIDDLE(ColorTypeBytesPerPixel, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ColorTypeIsAlwaysOpaque.cpp b/docs/examples/ColorTypeIsAlwaysOpaque.cpp
index 322e118..1edf066 100644
--- a/docs/examples/ColorTypeIsAlwaysOpaque.cpp
+++ b/docs/examples/ColorTypeIsAlwaysOpaque.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9b3eb5aaa0dfea9feee54e7650fa5446
 REG_FIDDLE(ColorTypeIsAlwaysOpaque, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ColorTypeValidateAlphaType.cpp b/docs/examples/ColorTypeValidateAlphaType.cpp
index d85ef88..c754cf9 100644
--- a/docs/examples/ColorTypeValidateAlphaType.cpp
+++ b/docs/examples/ColorTypeValidateAlphaType.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=befac1c29ed21507d367e4d824383a04
 REG_FIDDLE(ColorTypeValidateAlphaType, 256, 640, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Color_Burn.cpp b/docs/examples/Color_Burn.cpp
index 74a37d6..277505c 100644
--- a/docs/examples/Color_Burn.cpp
+++ b/docs/examples/Color_Burn.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3eeef529375d8083ae0d615789d55e89
 REG_FIDDLE(Color_Burn, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Color_Constants_a.cpp b/docs/examples/Color_Constants_a.cpp
index e46a9f2..c7d965c 100644
--- a/docs/examples/Color_Constants_a.cpp
+++ b/docs/examples/Color_Constants_a.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1c2e38321464818847f953ddd45cb5a1
 REG_FIDDLE(Color_Constants_a, 256, 256, false, 0) {
 #define SKIA_COLOR_PAIR(name) "SK_Color" #name, SK_Color##name
diff --git a/docs/examples/Color_Constants_b.cpp b/docs/examples/Color_Constants_b.cpp
index 8b9ba8a..c43096e 100644
--- a/docs/examples/Color_Constants_b.cpp
+++ b/docs/examples/Color_Constants_b.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9ca1e2a5b9b4c92ecf4409d0813867d6
 REG_FIDDLE(Color_Constants_b, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Color_Constants_c.cpp b/docs/examples/Color_Constants_c.cpp
index c3c937f..15b00ec 100644
--- a/docs/examples/Color_Constants_c.cpp
+++ b/docs/examples/Color_Constants_c.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6971489f28291f08e429cc6ccc73b09b
 REG_FIDDLE(Color_Constants_c, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Color_Constants_d.cpp b/docs/examples/Color_Constants_d.cpp
index c3aa498..b3c8c5a 100644
--- a/docs/examples/Color_Constants_d.cpp
+++ b/docs/examples/Color_Constants_d.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=fce650f997e802d4e55edf62b8437a2d
 REG_FIDDLE(Color_Constants_d, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Color_Dodge.cpp b/docs/examples/Color_Dodge.cpp
index 0d12c1f..d0b34e4 100644
--- a/docs/examples/Color_Dodge.cpp
+++ b/docs/examples/Color_Dodge.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=280ad6267a7d2d77b6d2c4531c6fc0bf
 REG_FIDDLE(Color_Dodge, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Color_Filter_Methods.cpp b/docs/examples/Color_Filter_Methods.cpp
index 96bf2dc..79cef3b 100644
--- a/docs/examples/Color_Filter_Methods.cpp
+++ b/docs/examples/Color_Filter_Methods.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5abde56ca2f89a18b8e231abd1b57c56
 REG_FIDDLE(Color_Filter_Methods, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Color_Methods.cpp b/docs/examples/Color_Methods.cpp
index 5545839..0ecfcc9 100644
--- a/docs/examples/Color_Methods.cpp
+++ b/docs/examples/Color_Methods.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=214b559d75c65a7bef6ef4be1f860053
 REG_FIDDLE(Color_Methods, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Color_Type_ARGB_4444.cpp b/docs/examples/Color_Type_ARGB_4444.cpp
index 3c4f3f3..c79e16a 100644
--- a/docs/examples/Color_Type_ARGB_4444.cpp
+++ b/docs/examples/Color_Type_ARGB_4444.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=33a360c3404ac21db801943336843d8e
 REG_FIDDLE(Color_Type_ARGB_4444, 256, 96, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Color_Type_Alpha_8.cpp b/docs/examples/Color_Type_Alpha_8.cpp
index 49b5c22..4e15231 100644
--- a/docs/examples/Color_Type_Alpha_8.cpp
+++ b/docs/examples/Color_Type_Alpha_8.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=21ae21e4ce53d2018e042dd457997300
 REG_FIDDLE(Color_Type_Alpha_8, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Color_Type_BGRA_8888.cpp b/docs/examples/Color_Type_BGRA_8888.cpp
index 94ff42e..9e22c0e 100644
--- a/docs/examples/Color_Type_BGRA_8888.cpp
+++ b/docs/examples/Color_Type_BGRA_8888.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=945ce5344fce5470f8604b2e06e9f9ae
 REG_FIDDLE(Color_Type_BGRA_8888, 256, 96, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Color_Type_Gray_8.cpp b/docs/examples/Color_Type_Gray_8.cpp
index 3f493be..2f96295 100644
--- a/docs/examples/Color_Type_Gray_8.cpp
+++ b/docs/examples/Color_Type_Gray_8.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=93da0eb0b6722a4f33dc7dae094abf0b
 REG_FIDDLE(Color_Type_Gray_8, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Color_Type_RGBA_1010102.cpp b/docs/examples/Color_Type_RGBA_1010102.cpp
index 4244d6f..9ba3dc0 100644
--- a/docs/examples/Color_Type_RGBA_1010102.cpp
+++ b/docs/examples/Color_Type_RGBA_1010102.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1282dc1127ce1b0061544619ae4de0f0
 REG_FIDDLE(Color_Type_RGBA_1010102, 256, 96, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Color_Type_RGBA_8888.cpp b/docs/examples/Color_Type_RGBA_8888.cpp
index d598cd8..0978cb1 100644
--- a/docs/examples/Color_Type_RGBA_8888.cpp
+++ b/docs/examples/Color_Type_RGBA_8888.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=947922a19d59893fe7f9d9ee1954379b
 REG_FIDDLE(Color_Type_RGBA_8888, 256, 96, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Color_Type_RGBA_F16.cpp b/docs/examples/Color_Type_RGBA_F16.cpp
index e89aa62..cdb2f87 100644
--- a/docs/examples/Color_Type_RGBA_F16.cpp
+++ b/docs/examples/Color_Type_RGBA_F16.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=dd81527bbdf5eaae7dd21ac04ab84f9e
 REG_FIDDLE(Color_Type_RGBA_F16, 256, 96, false, 0) {
 union FloatUIntUnion {
diff --git a/docs/examples/Color_Type_RGB_101010.cpp b/docs/examples/Color_Type_RGB_101010.cpp
index deea7bb..9a266f6 100644
--- a/docs/examples/Color_Type_RGB_101010.cpp
+++ b/docs/examples/Color_Type_RGB_101010.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=92f81aa0459230459600a01e79ccff29
 REG_FIDDLE(Color_Type_RGB_101010, 256, 96, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Color_Type_RGB_565.cpp b/docs/examples/Color_Type_RGB_565.cpp
index 8cbcfdf..0521cd9 100644
--- a/docs/examples/Color_Type_RGB_565.cpp
+++ b/docs/examples/Color_Type_RGB_565.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7e7c46bb4572e21e13529ff364eb0a9c
 REG_FIDDLE(Color_Type_RGB_565, 256, 96, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Color_Type_RGB_888.cpp b/docs/examples/Color_Type_RGB_888.cpp
index 04adc46..c589262 100644
--- a/docs/examples/Color_Type_RGB_888.cpp
+++ b/docs/examples/Color_Type_RGB_888.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4260d6cc15db2c60c07f6fdc8d9ae425
 REG_FIDDLE(Color_Type_RGB_888, 256, 96, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Conic_Weight_a.cpp b/docs/examples/Conic_Weight_a.cpp
index 142d2f3..a44b60e 100644
--- a/docs/examples/Conic_Weight_a.cpp
+++ b/docs/examples/Conic_Weight_a.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2aadded3d20dfef34d1c8abe28c7bc8d
 REG_FIDDLE(Conic_Weight_a, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Conic_Weight_b.cpp b/docs/examples/Conic_Weight_b.cpp
index 9785ae2..c902c06 100644
--- a/docs/examples/Conic_Weight_b.cpp
+++ b/docs/examples/Conic_Weight_b.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e88f554efacfa9f75f270fb1c0add5b4
 REG_FIDDLE(Conic_Weight_b, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Conic_Weight_c.cpp b/docs/examples/Conic_Weight_c.cpp
index fa5959e..dce8e5d 100644
--- a/docs/examples/Conic_Weight_c.cpp
+++ b/docs/examples/Conic_Weight_c.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6fb11419e99297fe2fe666c296117fb9
 REG_FIDDLE(Conic_Weight_c, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Cubic.cpp b/docs/examples/Cubic.cpp
index 5e69b01..c2fff6b 100644
--- a/docs/examples/Cubic.cpp
+++ b/docs/examples/Cubic.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=466445ed991d86de08587066392d654a
 REG_FIDDLE(Cubic, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Darken.cpp b/docs/examples/Darken.cpp
index be738c9..7dbb26f 100644
--- a/docs/examples/Darken.cpp
+++ b/docs/examples/Darken.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=23c974d2759f523ca2f4a78ae86855c3
 REG_FIDDLE(Darken, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Device_Text.cpp b/docs/examples/Device_Text.cpp
index 5a3c0f0..6030ce0 100644
--- a/docs/examples/Device_Text.cpp
+++ b/docs/examples/Device_Text.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4606ae1be792d6bc46d496432f050ee9
 REG_FIDDLE(Device_Text, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Difference.cpp b/docs/examples/Difference.cpp
index 8ad5dcc..1fc0c49 100644
--- a/docs/examples/Difference.cpp
+++ b/docs/examples/Difference.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=52d2c8d1b9b428de4477b4caa1543a3d
 REG_FIDDLE(Difference, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Dither_a.cpp b/docs/examples/Dither_a.cpp
index 2587848..80754d1 100644
--- a/docs/examples/Dither_a.cpp
+++ b/docs/examples/Dither_a.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8b26507690b71462f44642b911890bbf
 REG_FIDDLE(Dither_a, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Dither_b.cpp b/docs/examples/Dither_b.cpp
index 0300b3d..01cb7e6 100644
--- a/docs/examples/Dither_b.cpp
+++ b/docs/examples/Dither_b.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=76d4d4a7931a48495e4d5f54e073be53
 REG_FIDDLE(Dither_b, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Draw_Looper_Methods.cpp b/docs/examples/Draw_Looper_Methods.cpp
index aca8e4b..d9c9487 100644
--- a/docs/examples/Draw_Looper_Methods.cpp
+++ b/docs/examples/Draw_Looper_Methods.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=84ec12a36e50df5ac565cc7a75ffbe9f
 REG_FIDDLE(Draw_Looper_Methods, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Dst.cpp b/docs/examples/Dst.cpp
index 2b5899a..8714d08 100644
--- a/docs/examples/Dst.cpp
+++ b/docs/examples/Dst.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=35915a2273be1076f00f2e47998ce808
 REG_FIDDLE(Dst, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Dst_Atop.cpp b/docs/examples/Dst_Atop.cpp
index e6d82b1..4db8147 100644
--- a/docs/examples/Dst_Atop.cpp
+++ b/docs/examples/Dst_Atop.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1955856d45773a4fd914fcc1f813222f
 REG_FIDDLE(Dst_Atop, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Dst_In.cpp b/docs/examples/Dst_In.cpp
index c4f0abd..ba3a1f7 100644
--- a/docs/examples/Dst_In.cpp
+++ b/docs/examples/Dst_In.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a5eeba05ccf6097a5d110a9d64f97c25
 REG_FIDDLE(Dst_In, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Dst_Out.cpp b/docs/examples/Dst_Out.cpp
index 7378f73..b6281c7 100644
--- a/docs/examples/Dst_Out.cpp
+++ b/docs/examples/Dst_Out.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b9a894c9accfc5d94081bbd77d5d790a
 REG_FIDDLE(Dst_Out, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Dst_Over.cpp b/docs/examples/Dst_Over.cpp
index d8e7d86..af96e0f 100644
--- a/docs/examples/Dst_Over.cpp
+++ b/docs/examples/Dst_Over.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=10dbb4d97902956ef5f5f8562f65119e
 REG_FIDDLE(Dst_Over, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Exclusion.cpp b/docs/examples/Exclusion.cpp
index 30a7e4f..7338c52 100644
--- a/docs/examples/Exclusion.cpp
+++ b/docs/examples/Exclusion.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a544ee1c67c7c557a9e54d5e99f94bb6
 REG_FIDDLE(Exclusion, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Fake_Bold.cpp b/docs/examples/Fake_Bold.cpp
index 37b0e51..b4ea4f2 100644
--- a/docs/examples/Fake_Bold.cpp
+++ b/docs/examples/Fake_Bold.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e811f4829a2daaaeaad3795504a7e02a
 REG_FIDDLE(Fake_Bold, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Filter_Quality_Methods.cpp b/docs/examples/Filter_Quality_Methods.cpp
index c6c80df..7c772b2 100644
--- a/docs/examples/Filter_Quality_Methods.cpp
+++ b/docs/examples/Filter_Quality_Methods.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=69369cff2f5b145a6f616092513266a0
 REG_FIDDLE(Filter_Quality_Methods, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Font_breakText.cpp b/docs/examples/Font_breakText.cpp
index d2223e6..d5ad4f4 100644
--- a/docs/examples/Font_breakText.cpp
+++ b/docs/examples/Font_breakText.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3cad18678254526be66ef162eecd1d23
 REG_FIDDLE(Font_breakText, 280, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/HSVToColor.cpp b/docs/examples/HSVToColor.cpp
index cf53bc2..a8c5e33 100644
--- a/docs/examples/HSVToColor.cpp
+++ b/docs/examples/HSVToColor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=311a59931ac340b90f202cd6ac399a0a
 REG_FIDDLE(HSVToColor, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/HSVToColor_2.cpp b/docs/examples/HSVToColor_2.cpp
index 3ecd8c2..8b67137 100644
--- a/docs/examples/HSVToColor_2.cpp
+++ b/docs/examples/HSVToColor_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d355a17547908cdbc2c38720974b5d11
 REG_FIDDLE(HSVToColor_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Hard_Light.cpp b/docs/examples/Hard_Light.cpp
index eb6f307..3b87d51 100644
--- a/docs/examples/Hard_Light.cpp
+++ b/docs/examples/Hard_Light.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ac2fe555e2196e15863ea4ce74db3d54
 REG_FIDDLE(Hard_Light, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Hue.cpp b/docs/examples/Hue.cpp
index 39556ca..bff58d6 100644
--- a/docs/examples/Hue.cpp
+++ b/docs/examples/Hue.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=41e45570d682397d3b8ff2f51bd9c574
 REG_FIDDLE(Hue, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IPoint_Make.cpp b/docs/examples/IPoint_Make.cpp
index a1c3cc0..5057730 100644
--- a/docs/examples/IPoint_Make.cpp
+++ b/docs/examples/IPoint_Make.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e5cf5159525bd3140f288a95fe641fae
 REG_FIDDLE(IPoint_Make, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IPoint_add_operator.cpp b/docs/examples/IPoint_add_operator.cpp
index 2cd012d..7831285 100644
--- a/docs/examples/IPoint_add_operator.cpp
+++ b/docs/examples/IPoint_add_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=63f4cba971c6d8434595906f865b5a29
 REG_FIDDLE(IPoint_add_operator, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IPoint_addto_operator.cpp b/docs/examples/IPoint_addto_operator.cpp
index 5e77b08..7987433 100644
--- a/docs/examples/IPoint_addto_operator.cpp
+++ b/docs/examples/IPoint_addto_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4eb2d95c9e9a66f05296e345bb68bd51
 REG_FIDDLE(IPoint_addto_operator, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IPoint_equal_operator.cpp b/docs/examples/IPoint_equal_operator.cpp
index 92f6218..f7db36c 100644
--- a/docs/examples/IPoint_equal_operator.cpp
+++ b/docs/examples/IPoint_equal_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=37ffe2817d720f99e6c252332ce70460
 REG_FIDDLE(IPoint_equal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IPoint_equals.cpp b/docs/examples/IPoint_equals.cpp
index 082994d..7ec82d9 100644
--- a/docs/examples/IPoint_equals.cpp
+++ b/docs/examples/IPoint_equals.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=64f575d36439d5b69aaed14ffeff1cc4
 REG_FIDDLE(IPoint_equals, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IPoint_isZero.cpp b/docs/examples/IPoint_isZero.cpp
index d0ccb30..677b7dd 100644
--- a/docs/examples/IPoint_isZero.cpp
+++ b/docs/examples/IPoint_isZero.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=658c1df611b4577cc7e0bb384e95737e
 REG_FIDDLE(IPoint_isZero, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IPoint_minus_operator.cpp b/docs/examples/IPoint_minus_operator.cpp
index 6de0b24..a4d4d24 100644
--- a/docs/examples/IPoint_minus_operator.cpp
+++ b/docs/examples/IPoint_minus_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b30d4780475d113a7fed3637af7f0db1
 REG_FIDDLE(IPoint_minus_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IPoint_notequal_operator.cpp b/docs/examples/IPoint_notequal_operator.cpp
index 22994811..80f5562 100644
--- a/docs/examples/IPoint_notequal_operator.cpp
+++ b/docs/examples/IPoint_notequal_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=dd89dc48dff69b53d99530b120f204bc
 REG_FIDDLE(IPoint_notequal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IPoint_set.cpp b/docs/examples/IPoint_set.cpp
index caf853a..70d503b 100644
--- a/docs/examples/IPoint_set.cpp
+++ b/docs/examples/IPoint_set.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=165418b5718d79d8f1682a8a0ee32ba0
 REG_FIDDLE(IPoint_set, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IPoint_subtract_operator.cpp b/docs/examples/IPoint_subtract_operator.cpp
index 92282e6..3b02608 100644
--- a/docs/examples/IPoint_subtract_operator.cpp
+++ b/docs/examples/IPoint_subtract_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e626e26bf557857b824aa7d03f723e0f
 REG_FIDDLE(IPoint_subtract_operator, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IPoint_subtractfrom_operator.cpp b/docs/examples/IPoint_subtractfrom_operator.cpp
index 11d9280..9fbfc6c 100644
--- a/docs/examples/IPoint_subtractfrom_operator.cpp
+++ b/docs/examples/IPoint_subtractfrom_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a01e533dc7ab34ed728dc4e7a5f1f0ee
 REG_FIDDLE(IPoint_subtractfrom_operator, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IPoint_x.cpp b/docs/examples/IPoint_x.cpp
index c6529f4..a89d2b5 100644
--- a/docs/examples/IPoint_x.cpp
+++ b/docs/examples/IPoint_x.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=eed4185294f8a8216fc354e6ee6b2e3a
 REG_FIDDLE(IPoint_x, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IPoint_y.cpp b/docs/examples/IPoint_y.cpp
index 28a8dbb..cfe0e29 100644
--- a/docs/examples/IPoint_y.cpp
+++ b/docs/examples/IPoint_y.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=35c41b8ba7cebf8c9a7a8494e610e14d
 REG_FIDDLE(IPoint_y, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_EmptyIRect.cpp b/docs/examples/IRect_EmptyIRect.cpp
index b59a35a..d74db31 100644
--- a/docs/examples/IRect_EmptyIRect.cpp
+++ b/docs/examples/IRect_EmptyIRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=65e0b9b52e907902630577941fb3ed6d
 REG_FIDDLE(IRect_EmptyIRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_Intersects.cpp b/docs/examples/IRect_Intersects.cpp
index 51ccbbf..3b18353 100644
--- a/docs/examples/IRect_Intersects.cpp
+++ b/docs/examples/IRect_Intersects.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0c67cf8981389efc7108369fb9b7976b
 REG_FIDDLE(IRect_Intersects, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_IntersectsNoEmptyCheck.cpp b/docs/examples/IRect_IntersectsNoEmptyCheck.cpp
index 8e69061..dad09a5 100644
--- a/docs/examples/IRect_IntersectsNoEmptyCheck.cpp
+++ b/docs/examples/IRect_IntersectsNoEmptyCheck.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=dba234d15162fb5b26e1a96529ca6a2a
 REG_FIDDLE(IRect_IntersectsNoEmptyCheck, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_MakeEmpty.cpp b/docs/examples/IRect_MakeEmpty.cpp
index 877063e..95ecc58 100644
--- a/docs/examples/IRect_MakeEmpty.cpp
+++ b/docs/examples/IRect_MakeEmpty.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0ade3971c1d2616564992e286966ec8a
 REG_FIDDLE(IRect_MakeEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_MakeLTRB.cpp b/docs/examples/IRect_MakeLTRB.cpp
index 417081f..e45476d 100644
--- a/docs/examples/IRect_MakeLTRB.cpp
+++ b/docs/examples/IRect_MakeLTRB.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ec1473b700c594f2df9749a12a06b89b
 REG_FIDDLE(IRect_MakeLTRB, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_MakeSize.cpp b/docs/examples/IRect_MakeSize.cpp
index 12b4efd..d1139bb 100644
--- a/docs/examples/IRect_MakeSize.cpp
+++ b/docs/examples/IRect_MakeSize.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c6586ff8d24869c780169b0d19c75df6
 REG_FIDDLE(IRect_MakeSize, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_MakeWH.cpp b/docs/examples/IRect_MakeWH.cpp
index 9e44136..b355474 100644
--- a/docs/examples/IRect_MakeWH.cpp
+++ b/docs/examples/IRect_MakeWH.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e36827a1a6ae2b1c26e7a8a08f325a07
 REG_FIDDLE(IRect_MakeWH, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_MakeXYWH.cpp b/docs/examples/IRect_MakeXYWH.cpp
index 45cf195..58ea288 100644
--- a/docs/examples/IRect_MakeXYWH.cpp
+++ b/docs/examples/IRect_MakeXYWH.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=598ee14350bd1d961cae6b36fa3df17e
 REG_FIDDLE(IRect_MakeXYWH, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_adjust.cpp b/docs/examples/IRect_adjust.cpp
index e624c52..adb013f 100644
--- a/docs/examples/IRect_adjust.cpp
+++ b/docs/examples/IRect_adjust.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8dc91284493dd012cca3d0ce4c66bda4
 REG_FIDDLE(IRect_adjust, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_bottom.cpp b/docs/examples/IRect_bottom.cpp
index ef7ed72..80a72ef 100644
--- a/docs/examples/IRect_bottom.cpp
+++ b/docs/examples/IRect_bottom.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c32afebc296054a181621648a184b8e3
 REG_FIDDLE(IRect_bottom, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_contains.cpp b/docs/examples/IRect_contains.cpp
index 885c8e6..e2a9b00 100644
--- a/docs/examples/IRect_contains.cpp
+++ b/docs/examples/IRect_contains.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a7958a4e0668f5cf805a8e78eb57f51d
 REG_FIDDLE(IRect_contains, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_containsNoEmptyCheck.cpp b/docs/examples/IRect_containsNoEmptyCheck.cpp
index 223ad75..6c51f91 100644
--- a/docs/examples/IRect_containsNoEmptyCheck.cpp
+++ b/docs/examples/IRect_containsNoEmptyCheck.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=fef2a36bee224e92500199fa9d3cbb8b
 REG_FIDDLE(IRect_containsNoEmptyCheck, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_containsNoEmptyCheck_2.cpp b/docs/examples/IRect_containsNoEmptyCheck_2.cpp
index 0da1a3a..135b21b 100644
--- a/docs/examples/IRect_containsNoEmptyCheck_2.cpp
+++ b/docs/examples/IRect_containsNoEmptyCheck_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8f91f58001d9c10420eb146fbc169af4
 REG_FIDDLE(IRect_containsNoEmptyCheck_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_contains_2.cpp b/docs/examples/IRect_contains_2.cpp
index 359b994..b2926cf 100644
--- a/docs/examples/IRect_contains_2.cpp
+++ b/docs/examples/IRect_contains_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=eae55f284818d9965ec5834747d14a48
 REG_FIDDLE(IRect_contains_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_contains_3.cpp b/docs/examples/IRect_contains_3.cpp
index 800c435..aa23d3f 100644
--- a/docs/examples/IRect_contains_3.cpp
+++ b/docs/examples/IRect_contains_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ee0185db622602b4eb19583c2f42c734
 REG_FIDDLE(IRect_contains_3, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_contains_4.cpp b/docs/examples/IRect_contains_4.cpp
index 0a6d3f9..bfa48e5 100644
--- a/docs/examples/IRect_contains_4.cpp
+++ b/docs/examples/IRect_contains_4.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=acbd79ffb304f332e4b38ef18e19663e
 REG_FIDDLE(IRect_contains_4, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_equal_operator.cpp b/docs/examples/IRect_equal_operator.cpp
index 2e2168e..46a0d49 100644
--- a/docs/examples/IRect_equal_operator.cpp
+++ b/docs/examples/IRect_equal_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bd8f028d9051062816c9116fea4237b2
 REG_FIDDLE(IRect_equal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_height.cpp b/docs/examples/IRect_height.cpp
index bedecb2..396fece 100644
--- a/docs/examples/IRect_height.cpp
+++ b/docs/examples/IRect_height.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0175bae87fafcd9433ae661574695586
 REG_FIDDLE(IRect_height, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_height64.cpp b/docs/examples/IRect_height64.cpp
index eab2d3c..3fafc07 100644
--- a/docs/examples/IRect_height64.cpp
+++ b/docs/examples/IRect_height64.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=02dd98716e54bbd8c2f0ff23b7ef98cf
 REG_FIDDLE(IRect_height64, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_inset.cpp b/docs/examples/IRect_inset.cpp
index 45f2f92..7d0a999 100644
--- a/docs/examples/IRect_inset.cpp
+++ b/docs/examples/IRect_inset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9debaded1aa8bdf5077a4de0b3015b8f
 REG_FIDDLE(IRect_inset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_intersect.cpp b/docs/examples/IRect_intersect.cpp
index ae09f44..cb1b9ff 100644
--- a/docs/examples/IRect_intersect.cpp
+++ b/docs/examples/IRect_intersect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ea233f5d5d1ae0e76fc6f2eb371c927a
 REG_FIDDLE(IRect_intersect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_intersectNoEmptyCheck.cpp b/docs/examples/IRect_intersectNoEmptyCheck.cpp
index 896c817..c3f1f51 100644
--- a/docs/examples/IRect_intersectNoEmptyCheck.cpp
+++ b/docs/examples/IRect_intersectNoEmptyCheck.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d35fbc9fdea71df8b8a12fd3da50d11c
 REG_FIDDLE(IRect_intersectNoEmptyCheck, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_intersect_2.cpp b/docs/examples/IRect_intersect_2.cpp
index 41506eb..800caa4 100644
--- a/docs/examples/IRect_intersect_2.cpp
+++ b/docs/examples/IRect_intersect_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b2db0573aacf99ca52776c5522459d02
 REG_FIDDLE(IRect_intersect_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_intersect_3.cpp b/docs/examples/IRect_intersect_3.cpp
index 78ac267..4719bad 100644
--- a/docs/examples/IRect_intersect_3.cpp
+++ b/docs/examples/IRect_intersect_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=200422990eded2f754ab9893118f2645
 REG_FIDDLE(IRect_intersect_3, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_isEmpty.cpp b/docs/examples/IRect_isEmpty.cpp
index 27dd212..cf46ec2 100644
--- a/docs/examples/IRect_isEmpty.cpp
+++ b/docs/examples/IRect_isEmpty.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=edaad064b6de249b7a7c768dfa000adc
 REG_FIDDLE(IRect_isEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_isEmpty64.cpp b/docs/examples/IRect_isEmpty64.cpp
index 02e7972..9b09cd1 100644
--- a/docs/examples/IRect_isEmpty64.cpp
+++ b/docs/examples/IRect_isEmpty64.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=eb905faa1084ccab3ad0605df4c27ea4
 REG_FIDDLE(IRect_isEmpty64, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_join.cpp b/docs/examples/IRect_join.cpp
index 60e8a3f..80bbc95 100644
--- a/docs/examples/IRect_join.cpp
+++ b/docs/examples/IRect_join.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c00ef06289d21db70340e465690e0e08
 REG_FIDDLE(IRect_join, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_join_2.cpp b/docs/examples/IRect_join_2.cpp
index 052b541..455c6bec 100644
--- a/docs/examples/IRect_join_2.cpp
+++ b/docs/examples/IRect_join_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=75fd81c1d3512e63890d085593018876
 REG_FIDDLE(IRect_join_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_left.cpp b/docs/examples/IRect_left.cpp
index 325ba21..6272682 100644
--- a/docs/examples/IRect_left.cpp
+++ b/docs/examples/IRect_left.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=caf38ea4431bc246ba198f6a8c2b0f01
 REG_FIDDLE(IRect_left, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_makeInset.cpp b/docs/examples/IRect_makeInset.cpp
index f15b0db..3830c3d 100644
--- a/docs/examples/IRect_makeInset.cpp
+++ b/docs/examples/IRect_makeInset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1db94b2c76e0a7a71856532335fa56b6
 REG_FIDDLE(IRect_makeInset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_makeOffset.cpp b/docs/examples/IRect_makeOffset.cpp
index 5d1bd3e..ae478a9 100644
--- a/docs/examples/IRect_makeOffset.cpp
+++ b/docs/examples/IRect_makeOffset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=737c747df07ddf392c05970440de0927
 REG_FIDDLE(IRect_makeOffset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_makeOutset.cpp b/docs/examples/IRect_makeOutset.cpp
index c585202..c1a43af 100644
--- a/docs/examples/IRect_makeOutset.cpp
+++ b/docs/examples/IRect_makeOutset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=240e2953e3455c08f6d89255feff8416
 REG_FIDDLE(IRect_makeOutset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_makeSorted.cpp b/docs/examples/IRect_makeSorted.cpp
index c8cc096..f399a53 100644
--- a/docs/examples/IRect_makeSorted.cpp
+++ b/docs/examples/IRect_makeSorted.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=de89926c374aa16427916900b89a3441
 REG_FIDDLE(IRect_makeSorted, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_notequal_operator.cpp b/docs/examples/IRect_notequal_operator.cpp
index 25b6bea..76f8d8d 100644
--- a/docs/examples/IRect_notequal_operator.cpp
+++ b/docs/examples/IRect_notequal_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6c4acd8aa203f632b7d85cae672abf4d
 REG_FIDDLE(IRect_notequal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_offset.cpp b/docs/examples/IRect_offset.cpp
index d261351..ca2c475 100644
--- a/docs/examples/IRect_offset.cpp
+++ b/docs/examples/IRect_offset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=77e633b2174ffae923c038b303418b50
 REG_FIDDLE(IRect_offset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_offsetTo.cpp b/docs/examples/IRect_offsetTo.cpp
index 22ec0bf..c473517 100644
--- a/docs/examples/IRect_offsetTo.cpp
+++ b/docs/examples/IRect_offsetTo.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a2734ff23b35653956a3002e5c29ff91
 REG_FIDDLE(IRect_offsetTo, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_offset_2.cpp b/docs/examples/IRect_offset_2.cpp
index 0742206..4702f23 100644
--- a/docs/examples/IRect_offset_2.cpp
+++ b/docs/examples/IRect_offset_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=31a4c575499e76def651eb65994876f0
 REG_FIDDLE(IRect_offset_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_outset.cpp b/docs/examples/IRect_outset.cpp
index de08251..4a05cea 100644
--- a/docs/examples/IRect_outset.cpp
+++ b/docs/examples/IRect_outset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3fc62ca29428195f33a3a02b3eb74e4f
 REG_FIDDLE(IRect_outset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_right.cpp b/docs/examples/IRect_right.cpp
index 36fa738..74fc5a3 100644
--- a/docs/examples/IRect_right.cpp
+++ b/docs/examples/IRect_right.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=97e210976f1ee0387b30c70635cf114f
 REG_FIDDLE(IRect_right, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_set.cpp b/docs/examples/IRect_set.cpp
index ba9b815..aaad9cf 100644
--- a/docs/examples/IRect_set.cpp
+++ b/docs/examples/IRect_set.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1912c37076b7f3bf6aebfa167e971bec
 REG_FIDDLE(IRect_set, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_setEmpty.cpp b/docs/examples/IRect_setEmpty.cpp
index ddbafdd..1b33235 100644
--- a/docs/examples/IRect_setEmpty.cpp
+++ b/docs/examples/IRect_setEmpty.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=94039c3cc9e911c8ab2993d56fd06210
 REG_FIDDLE(IRect_setEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_setLTRB.cpp b/docs/examples/IRect_setLTRB.cpp
index c55bec5..6b61665 100644
--- a/docs/examples/IRect_setLTRB.cpp
+++ b/docs/examples/IRect_setLTRB.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ead6bdcf2ae77ec19a1c5a96f5b31af8
 REG_FIDDLE(IRect_setLTRB, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_setXYWH.cpp b/docs/examples/IRect_setXYWH.cpp
index ccd6ceb..a74acd4 100644
--- a/docs/examples/IRect_setXYWH.cpp
+++ b/docs/examples/IRect_setXYWH.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0e1db8c86678c004e504f47641b44b17
 REG_FIDDLE(IRect_setXYWH, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_size.cpp b/docs/examples/IRect_size.cpp
index 3954609..d561c80 100644
--- a/docs/examples/IRect_size.cpp
+++ b/docs/examples/IRect_size.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8b3224641cb3053a7b8a5798b6cd1cf6
 REG_FIDDLE(IRect_size, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_sort.cpp b/docs/examples/IRect_sort.cpp
index 6c5c515..f4ce4ad 100644
--- a/docs/examples/IRect_sort.cpp
+++ b/docs/examples/IRect_sort.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=fa12547fcfd4c1aef3db1a1f6aae0fe4
 REG_FIDDLE(IRect_sort, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_top.cpp b/docs/examples/IRect_top.cpp
index fe75a08..b885565 100644
--- a/docs/examples/IRect_top.cpp
+++ b/docs/examples/IRect_top.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=cbec1ae6530e95943775450b1d11f19e
 REG_FIDDLE(IRect_top, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_width.cpp b/docs/examples/IRect_width.cpp
index 820e5cb..0975928 100644
--- a/docs/examples/IRect_width.cpp
+++ b/docs/examples/IRect_width.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4acfbe051805940210c8916a94794142
 REG_FIDDLE(IRect_width, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_width64.cpp b/docs/examples/IRect_width64.cpp
index c027438a..9aa25d8 100644
--- a/docs/examples/IRect_width64.cpp
+++ b/docs/examples/IRect_width64.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=63977f97999bbd6eecfdcc7575d75492
 REG_FIDDLE(IRect_width64, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_x.cpp b/docs/examples/IRect_x.cpp
index 106842c..3489d97 100644
--- a/docs/examples/IRect_x.cpp
+++ b/docs/examples/IRect_x.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2a59cbfd1330a0db520d6ebb2b7c68c7
 REG_FIDDLE(IRect_x, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/IRect_y.cpp b/docs/examples/IRect_y.cpp
index 710623a2..6144461 100644
--- a/docs/examples/IRect_y.cpp
+++ b/docs/examples/IRect_y.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6ea461e71f7fc80605818fbf493caa63
 REG_FIDDLE(IRect_y, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_ByteSizeOverflowed.cpp b/docs/examples/ImageInfo_ByteSizeOverflowed.cpp
index d993c71..e1ce1f3 100644
--- a/docs/examples/ImageInfo_ByteSizeOverflowed.cpp
+++ b/docs/examples/ImageInfo_ByteSizeOverflowed.cpp
@@ -1,7 +1,7 @@
 #if 0  // disabled
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6a63dfdd62ab77ff57783af8c33d7b78
 REG_FIDDLE(ImageInfo_ByteSizeOverflowed, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_Make.cpp b/docs/examples/ImageInfo_Make.cpp
index 4fe45a6..b8548de 100644
--- a/docs/examples/ImageInfo_Make.cpp
+++ b/docs/examples/ImageInfo_Make.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9f47f9c2a99473f5b1113db48096d586
 REG_FIDDLE(ImageInfo_Make, 256, 48, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_MakeA8.cpp b/docs/examples/ImageInfo_MakeA8.cpp
index 2dd462b..a899311 100644
--- a/docs/examples/ImageInfo_MakeA8.cpp
+++ b/docs/examples/ImageInfo_MakeA8.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=547388991687b8e10d482d8b1c82777d
 REG_FIDDLE(ImageInfo_MakeA8, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_MakeN32.cpp b/docs/examples/ImageInfo_MakeN32.cpp
index c7c7647..26bf964 100644
--- a/docs/examples/ImageInfo_MakeN32.cpp
+++ b/docs/examples/ImageInfo_MakeN32.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=78cea0c4cac205b61ad6f6c982cbd888
 REG_FIDDLE(ImageInfo_MakeN32, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_MakeN32Premul.cpp b/docs/examples/ImageInfo_MakeN32Premul.cpp
index 12bae3e..a6f8346 100644
--- a/docs/examples/ImageInfo_MakeN32Premul.cpp
+++ b/docs/examples/ImageInfo_MakeN32Premul.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=525650a67e19fdd8ca9f72b7eda65174
 REG_FIDDLE(ImageInfo_MakeN32Premul, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_MakeN32Premul_2.cpp b/docs/examples/ImageInfo_MakeN32Premul_2.cpp
index 369aee2..bb30625 100644
--- a/docs/examples/ImageInfo_MakeN32Premul_2.cpp
+++ b/docs/examples/ImageInfo_MakeN32Premul_2.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b9026d7f39029756bd7cab9542c64f4e
 REG_FIDDLE(ImageInfo_MakeN32Premul_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_MakeS32.cpp b/docs/examples/ImageInfo_MakeS32.cpp
index 1033014..391450c 100644
--- a/docs/examples/ImageInfo_MakeS32.cpp
+++ b/docs/examples/ImageInfo_MakeS32.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=de418ccb42471d1589508ef3955f8c53
 REG_FIDDLE(ImageInfo_MakeS32, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_MakeUnknown.cpp b/docs/examples/ImageInfo_MakeUnknown.cpp
index 6db4bff..5b59da7 100644
--- a/docs/examples/ImageInfo_MakeUnknown.cpp
+++ b/docs/examples/ImageInfo_MakeUnknown.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=75f13a78b28b08c72baf32b7d868de1c
 REG_FIDDLE(ImageInfo_MakeUnknown, 384, 32, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_MakeUnknown_2.cpp b/docs/examples/ImageInfo_MakeUnknown_2.cpp
index df6c4ff..fa61f62 100644
--- a/docs/examples/ImageInfo_MakeUnknown_2.cpp
+++ b/docs/examples/ImageInfo_MakeUnknown_2.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a1af7696ae0cdd6f379546dd1f211b7a
 REG_FIDDLE(ImageInfo_MakeUnknown_2, 384, 32, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_alphaType.cpp b/docs/examples/ImageInfo_alphaType.cpp
index f7c140f..a125294 100644
--- a/docs/examples/ImageInfo_alphaType.cpp
+++ b/docs/examples/ImageInfo_alphaType.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5c1d2499a4056b6cff38c1cf924158a1
 REG_FIDDLE(ImageInfo_alphaType, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_bounds.cpp b/docs/examples/ImageInfo_bounds.cpp
index 2e6a382..8355b15 100644
--- a/docs/examples/ImageInfo_bounds.cpp
+++ b/docs/examples/ImageInfo_bounds.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a818be8945cd0c18f99ffe53e90afa48
 REG_FIDDLE(ImageInfo_bounds, 256, 64, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_bytesPerPixel.cpp b/docs/examples/ImageInfo_bytesPerPixel.cpp
index f22eef5..29f2046 100644
--- a/docs/examples/ImageInfo_bytesPerPixel.cpp
+++ b/docs/examples/ImageInfo_bytesPerPixel.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9b6de4a07b2316228e9340e5a3b82134
 REG_FIDDLE(ImageInfo_bytesPerPixel, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_colorSpace.cpp b/docs/examples/ImageInfo_colorSpace.cpp
index bcb1e8b..a52e9d1 100644
--- a/docs/examples/ImageInfo_colorSpace.cpp
+++ b/docs/examples/ImageInfo_colorSpace.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5602b816d7cf75e3851274ef36a4c10f
 REG_FIDDLE(ImageInfo_colorSpace, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_colorType.cpp b/docs/examples/ImageInfo_colorType.cpp
index 753e089..5ea75d8 100644
--- a/docs/examples/ImageInfo_colorType.cpp
+++ b/docs/examples/ImageInfo_colorType.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=06ecc3ce7f35cc7f930cbc2a662e3105
 REG_FIDDLE(ImageInfo_colorType, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_computeByteSize.cpp b/docs/examples/ImageInfo_computeByteSize.cpp
index 3f9a9d4..13986e1 100644
--- a/docs/examples/ImageInfo_computeByteSize.cpp
+++ b/docs/examples/ImageInfo_computeByteSize.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9def507d2295f7051effd0c83bb04436
 REG_FIDDLE(ImageInfo_computeByteSize, 256, 130, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_computeMinByteSize.cpp b/docs/examples/ImageInfo_computeMinByteSize.cpp
index b5a0931..deb326f 100644
--- a/docs/examples/ImageInfo_computeMinByteSize.cpp
+++ b/docs/examples/ImageInfo_computeMinByteSize.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=fc18640fdde437cb35338aed7c68d399
 REG_FIDDLE(ImageInfo_computeMinByteSize, 256, 130, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_computeOffset.cpp b/docs/examples/ImageInfo_computeOffset.cpp
index 918c350..ad7e1d6 100644
--- a/docs/examples/ImageInfo_computeOffset.cpp
+++ b/docs/examples/ImageInfo_computeOffset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=818e4e1191e39d2a642902cbf253b399
 REG_FIDDLE(ImageInfo_computeOffset, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_dimensions.cpp b/docs/examples/ImageInfo_dimensions.cpp
index d9cf3eb..cadeec3 100644
--- a/docs/examples/ImageInfo_dimensions.cpp
+++ b/docs/examples/ImageInfo_dimensions.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d5547cd2b302822aa85b7b0ae3f48458
 REG_FIDDLE(ImageInfo_dimensions, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_empty_constructor.cpp b/docs/examples/ImageInfo_empty_constructor.cpp
index afdcb4f..4b884c1 100644
--- a/docs/examples/ImageInfo_empty_constructor.cpp
+++ b/docs/examples/ImageInfo_empty_constructor.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f206f698e7a8db3d84334c26b1a702dc
 REG_FIDDLE(ImageInfo_empty_constructor, 256, 32, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_equal1_operator.cpp b/docs/examples/ImageInfo_equal1_operator.cpp
index f796732..9716dbc 100644
--- a/docs/examples/ImageInfo_equal1_operator.cpp
+++ b/docs/examples/ImageInfo_equal1_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=53c212c4f2449df0b0eedbc6227b6ab7
 REG_FIDDLE(ImageInfo_equal1_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_gammaCloseToSRGB.cpp b/docs/examples/ImageInfo_gammaCloseToSRGB.cpp
index 831f254..7b7ec2e 100644
--- a/docs/examples/ImageInfo_gammaCloseToSRGB.cpp
+++ b/docs/examples/ImageInfo_gammaCloseToSRGB.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=22df72732e898a11773fbfe07388a546
 REG_FIDDLE(ImageInfo_gammaCloseToSRGB, 256, 144, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_height.cpp b/docs/examples/ImageInfo_height.cpp
index 1b28ef7..e3ee799 100644
--- a/docs/examples/ImageInfo_height.cpp
+++ b/docs/examples/ImageInfo_height.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=72c35baaeddca1d912edf93d19429c8e
 REG_FIDDLE(ImageInfo_height, 256, 96, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_isEmpty.cpp b/docs/examples/ImageInfo_isEmpty.cpp
index f4180ab..de52f0c 100644
--- a/docs/examples/ImageInfo_isEmpty.cpp
+++ b/docs/examples/ImageInfo_isEmpty.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b8757200da5be0b43763cf79feb681a7
 REG_FIDDLE(ImageInfo_isEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_isOpaque.cpp b/docs/examples/ImageInfo_isOpaque.cpp
index fb66406..f7f4f7e 100644
--- a/docs/examples/ImageInfo_isOpaque.cpp
+++ b/docs/examples/ImageInfo_isOpaque.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e9bd4f02b6cfb3ac864cb7fee7d7299c
 REG_FIDDLE(ImageInfo_isOpaque, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_makeAlphaType.cpp b/docs/examples/ImageInfo_makeAlphaType.cpp
index 7dc4f87..f6b408f 100644
--- a/docs/examples/ImageInfo_makeAlphaType.cpp
+++ b/docs/examples/ImageInfo_makeAlphaType.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e72db006f1bea26feceaef8727ff9818
 REG_FIDDLE(ImageInfo_makeAlphaType, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_makeColorSpace.cpp b/docs/examples/ImageInfo_makeColorSpace.cpp
index ad4b1e0..896a735 100644
--- a/docs/examples/ImageInfo_makeColorSpace.cpp
+++ b/docs/examples/ImageInfo_makeColorSpace.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=fe3c5a755d3dde29bba058a583f18901
 REG_FIDDLE(ImageInfo_makeColorSpace, 256, 224, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_makeColorType.cpp b/docs/examples/ImageInfo_makeColorType.cpp
index a93dd18..019c483 100644
--- a/docs/examples/ImageInfo_makeColorType.cpp
+++ b/docs/examples/ImageInfo_makeColorType.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3ac267b08b12dc83c95f91d8dd5d70ee
 REG_FIDDLE(ImageInfo_makeColorType, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_makeWH.cpp b/docs/examples/ImageInfo_makeWH.cpp
index 68ab049..dd58053 100644
--- a/docs/examples/ImageInfo_makeWH.cpp
+++ b/docs/examples/ImageInfo_makeWH.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=cd203a3f9c5fb68272f21f302dd54fbc
 REG_FIDDLE(ImageInfo_makeWH, 256, 144, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_minRowBytes.cpp b/docs/examples/ImageInfo_minRowBytes.cpp
index 6f6839c..4d0b507 100644
--- a/docs/examples/ImageInfo_minRowBytes.cpp
+++ b/docs/examples/ImageInfo_minRowBytes.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=897230ecfb36095486beca324fd369f9
 REG_FIDDLE(ImageInfo_minRowBytes, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_minRowBytes64.cpp b/docs/examples/ImageInfo_minRowBytes64.cpp
index 81769ab..ef5a6c5 100644
--- a/docs/examples/ImageInfo_minRowBytes64.cpp
+++ b/docs/examples/ImageInfo_minRowBytes64.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4b5d3904476726a39f1c3e276d6b6ba7
 REG_FIDDLE(ImageInfo_minRowBytes64, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_notequal1_operator.cpp b/docs/examples/ImageInfo_notequal1_operator.cpp
index 2a09e30..8998132 100644
--- a/docs/examples/ImageInfo_notequal1_operator.cpp
+++ b/docs/examples/ImageInfo_notequal1_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8c039fde0a476ac1aa62bf9de5d61c77
 REG_FIDDLE(ImageInfo_notequal1_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_refColorSpace.cpp b/docs/examples/ImageInfo_refColorSpace.cpp
index c575e11..a4e3fb7 100644
--- a/docs/examples/ImageInfo_refColorSpace.cpp
+++ b/docs/examples/ImageInfo_refColorSpace.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=33f65524736736fd91802b4198ba6fa8
 REG_FIDDLE(ImageInfo_refColorSpace, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_reset.cpp b/docs/examples/ImageInfo_reset.cpp
index d0bbc66..e905180 100644
--- a/docs/examples/ImageInfo_reset.cpp
+++ b/docs/examples/ImageInfo_reset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ab7e73786805c936de386b6c1ebe1f13
 REG_FIDDLE(ImageInfo_reset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_shiftPerPixel.cpp b/docs/examples/ImageInfo_shiftPerPixel.cpp
index 74cf3e3..f83e5f7 100644
--- a/docs/examples/ImageInfo_shiftPerPixel.cpp
+++ b/docs/examples/ImageInfo_shiftPerPixel.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e47b911f94fc629f756a829e523a2a89
 REG_FIDDLE(ImageInfo_shiftPerPixel, 256, 256, true, 0) {
 const char* color_type(SkColorType ct) {
diff --git a/docs/examples/ImageInfo_validRowBytes.cpp b/docs/examples/ImageInfo_validRowBytes.cpp
index e145e56..d0f7cb8 100644
--- a/docs/examples/ImageInfo_validRowBytes.cpp
+++ b/docs/examples/ImageInfo_validRowBytes.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c6b0f6a3f493cb08d9abcdefe12de245
 REG_FIDDLE(ImageInfo_validRowBytes, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/ImageInfo_width.cpp b/docs/examples/ImageInfo_width.cpp
index 4f8fe39..23d3c95 100644
--- a/docs/examples/ImageInfo_width.cpp
+++ b/docs/examples/ImageInfo_width.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e2491817695290d0218be77f091b8460
 REG_FIDDLE(ImageInfo_width, 256, 96, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_Filter_Methods.cpp b/docs/examples/Image_Filter_Methods.cpp
index ec17e4b..d9ea973 100644
--- a/docs/examples/Image_Filter_Methods.cpp
+++ b/docs/examples/Image_Filter_Methods.cpp
@@ -1,9 +1,9 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ece04ee3d3761e3425f37c8f06f054c1
 REG_FIDDLE(Image_Filter_Methods, 256, 256, false, 0) {
-#include "SkBlurImageFilter.h"
+#include "include/effects/SkBlurImageFilter.h"
 
 void draw(SkCanvas* canvas) {
     SkPaint paint;
diff --git a/docs/examples/Image_MakeBackendTextureFromSkImage.cpp b/docs/examples/Image_MakeBackendTextureFromSkImage.cpp
index b40ae5e..aabdaaf 100644
--- a/docs/examples/Image_MakeBackendTextureFromSkImage.cpp
+++ b/docs/examples/Image_MakeBackendTextureFromSkImage.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=06aeb3cf63ffccf7b49fe556e5def351
 REG_FIDDLE(Image_MakeBackendTextureFromSkImage, 256, 64, false, 0) {
 static sk_sp<SkImage> create_gpu_image(GrContext* grContext) {
diff --git a/docs/examples/Image_MakeCrossContextFromEncoded.cpp b/docs/examples/Image_MakeCrossContextFromEncoded.cpp
index bed9eaf..871950b 100644
--- a/docs/examples/Image_MakeCrossContextFromEncoded.cpp
+++ b/docs/examples/Image_MakeCrossContextFromEncoded.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=069c7b116479e3ca46f953f07dcbdd36
 REG_FIDDLE(Image_MakeCrossContextFromEncoded, 256, 64, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_MakeCrossContextFromPixmap.cpp b/docs/examples/Image_MakeCrossContextFromPixmap.cpp
index edbecdd..09c3389 100644
--- a/docs/examples/Image_MakeCrossContextFromPixmap.cpp
+++ b/docs/examples/Image_MakeCrossContextFromPixmap.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=45bca8747b8f49b5be34b520897ef048
 REG_FIDDLE(Image_MakeCrossContextFromPixmap, 256, 64, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_MakeFromAdoptedTexture.cpp b/docs/examples/Image_MakeFromAdoptedTexture.cpp
index 6c6a5c0..16ae645 100644
--- a/docs/examples/Image_MakeFromAdoptedTexture.cpp
+++ b/docs/examples/Image_MakeFromAdoptedTexture.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b034517e39394b7543f06ec885e36d7d
 REG_FIDDLE(Image_MakeFromAdoptedTexture, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_MakeFromBitmap.cpp b/docs/examples/Image_MakeFromBitmap.cpp
index 83d9d61..d8d6046 100644
--- a/docs/examples/Image_MakeFromBitmap.cpp
+++ b/docs/examples/Image_MakeFromBitmap.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=cf2cf53321e4e6a77c2841bfbc0ef707
 REG_FIDDLE(Image_MakeFromBitmap, 256, 50, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_MakeFromEncoded.cpp b/docs/examples/Image_MakeFromEncoded.cpp
index 7c8f0ca..78720aa 100644
--- a/docs/examples/Image_MakeFromEncoded.cpp
+++ b/docs/examples/Image_MakeFromEncoded.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=894f732ed6409b1f392bc5481421d0e9
 REG_FIDDLE(Image_MakeFromEncoded, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_MakeFromGenerator.cpp b/docs/examples/Image_MakeFromGenerator.cpp
index f8908ea..1302f72 100644
--- a/docs/examples/Image_MakeFromGenerator.cpp
+++ b/docs/examples/Image_MakeFromGenerator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c2fec0746f88ca34d7dce59dd9bdef9e
 REG_FIDDLE(Image_MakeFromGenerator, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_MakeFromPicture.cpp b/docs/examples/Image_MakeFromPicture.cpp
index c39cfc5..42881ff 100644
--- a/docs/examples/Image_MakeFromPicture.cpp
+++ b/docs/examples/Image_MakeFromPicture.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4aa2879b9e44dfd6648995326d2c4dcf
 REG_FIDDLE(Image_MakeFromPicture, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_MakeFromRaster.cpp b/docs/examples/Image_MakeFromRaster.cpp
index 23e905f..6e28184 100644
--- a/docs/examples/Image_MakeFromRaster.cpp
+++ b/docs/examples/Image_MakeFromRaster.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=275356b65d18c8868f4434137350cddc
 REG_FIDDLE(Image_MakeFromRaster, 256, 256, true, 0) {
 static void releaseProc(const void* pixels, SkImage::ReleaseContext context) {
diff --git a/docs/examples/Image_MakeFromTexture.cpp b/docs/examples/Image_MakeFromTexture.cpp
index 064736e..ea7c1c1 100644
--- a/docs/examples/Image_MakeFromTexture.cpp
+++ b/docs/examples/Image_MakeFromTexture.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=94e9296c53bad074bf2a48ff885dac13
 REG_FIDDLE(Image_MakeFromTexture, 256, 128, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_MakeFromTexture_2.cpp b/docs/examples/Image_MakeFromTexture_2.cpp
index 8cf3324..46f684b 100644
--- a/docs/examples/Image_MakeFromTexture_2.cpp
+++ b/docs/examples/Image_MakeFromTexture_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2b1e46354d823dbb53fa6af570135329
 REG_FIDDLE(Image_MakeFromTexture_2, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_MakeRasterCopy.cpp b/docs/examples/Image_MakeRasterCopy.cpp
index 2a1c005..4be49e8 100644
--- a/docs/examples/Image_MakeRasterCopy.cpp
+++ b/docs/examples/Image_MakeRasterCopy.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=513afec5795a9504ebf6af5373d16b6b
 REG_FIDDLE(Image_MakeRasterCopy, 256, 50, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_MakeRasterData.cpp b/docs/examples/Image_MakeRasterData.cpp
index 286df83..02959d7 100644
--- a/docs/examples/Image_MakeRasterData.cpp
+++ b/docs/examples/Image_MakeRasterData.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=22e7ce79ab2fe94252d23319f2258127
 REG_FIDDLE(Image_MakeRasterData, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_alphaType.cpp b/docs/examples/Image_alphaType.cpp
index f662615..75be94b 100644
--- a/docs/examples/Image_alphaType.cpp
+++ b/docs/examples/Image_alphaType.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1b9f1f05026ceb14ccb6926a13cdaa83
 REG_FIDDLE(Image_alphaType, 256, 96, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_bounds.cpp b/docs/examples/Image_bounds.cpp
index ddd72c2..eff0ee8 100644
--- a/docs/examples/Image_bounds.cpp
+++ b/docs/examples/Image_bounds.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c204b38b3fc08914b0a634aa4eaec894
 REG_FIDDLE(Image_bounds, 256, 128, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_colorSpace.cpp b/docs/examples/Image_colorSpace.cpp
index 4d40af0..c250c18 100644
--- a/docs/examples/Image_colorSpace.cpp
+++ b/docs/examples/Image_colorSpace.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4468d573f42af6f5e234be10a5453bb2
 REG_FIDDLE(Image_colorSpace, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_colorType.cpp b/docs/examples/Image_colorType.cpp
index 395d749..887c66b 100644
--- a/docs/examples/Image_colorType.cpp
+++ b/docs/examples/Image_colorType.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=50396fad4a128f58e400ca00fe09711f
 REG_FIDDLE(Image_colorType, 256, 96, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_dimensions.cpp b/docs/examples/Image_dimensions.cpp
index 06d29ed..78b14c5 100644
--- a/docs/examples/Image_dimensions.cpp
+++ b/docs/examples/Image_dimensions.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=96b4bc43b3667df9ba9e2dafb770d33c
 REG_FIDDLE(Image_dimensions, 256, 256, true, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_encodeToData.cpp b/docs/examples/Image_encodeToData.cpp
index e4992f1..ba115d8 100644
--- a/docs/examples/Image_encodeToData.cpp
+++ b/docs/examples/Image_encodeToData.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7a3bf8851bb7160e4e49c48f8c09639d
 REG_FIDDLE(Image_encodeToData, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_encodeToData_2.cpp b/docs/examples/Image_encodeToData_2.cpp
index e97babc..a87e28d 100644
--- a/docs/examples/Image_encodeToData_2.cpp
+++ b/docs/examples/Image_encodeToData_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=30cee813f6aa476b0a9c8a24283e53a3
 REG_FIDDLE(Image_encodeToData_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_getBackendTexture.cpp b/docs/examples/Image_getBackendTexture.cpp
index 35cf7c2..0f4705b 100644
--- a/docs/examples/Image_getBackendTexture.cpp
+++ b/docs/examples/Image_getBackendTexture.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d093aad721261f421c4bef4a296aab48
 REG_FIDDLE(Image_getBackendTexture, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_height.cpp b/docs/examples/Image_height.cpp
index 5564045..5a1e8f2 100644
--- a/docs/examples/Image_height.cpp
+++ b/docs/examples/Image_height.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a4f53a0b6ac85e7bc3887245b728530d
 REG_FIDDLE(Image_height, 256, 96, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_isAlphaOnly.cpp b/docs/examples/Image_isAlphaOnly.cpp
index 3f69c62..d880cd6 100644
--- a/docs/examples/Image_isAlphaOnly.cpp
+++ b/docs/examples/Image_isAlphaOnly.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=50762c73b8ea91959c5a7b68fbf1062d
 REG_FIDDLE(Image_isAlphaOnly, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_isLazyGenerated_a.cpp b/docs/examples/Image_isLazyGenerated_a.cpp
index bb70305..e3cf9cd 100644
--- a/docs/examples/Image_isLazyGenerated_a.cpp
+++ b/docs/examples/Image_isLazyGenerated_a.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a8b8bd4bfe968e2c63085f867665227f
 REG_FIDDLE(Image_isLazyGenerated_a, 256, 80, false, 0) {
 class TestImageGenerator : public SkImageGenerator {
diff --git a/docs/examples/Image_isLazyGenerated_b.cpp b/docs/examples/Image_isLazyGenerated_b.cpp
index faf5119..20b0cfc 100644
--- a/docs/examples/Image_isLazyGenerated_b.cpp
+++ b/docs/examples/Image_isLazyGenerated_b.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f031c2a53f6a57833dc0127e674553da
 REG_FIDDLE(Image_isLazyGenerated_b, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_isOpaque.cpp b/docs/examples/Image_isOpaque.cpp
index 1261582c..bd2fd4e 100644
--- a/docs/examples/Image_isOpaque.cpp
+++ b/docs/examples/Image_isOpaque.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e3340460003b74ee286d625e68589d65
 REG_FIDDLE(Image_isOpaque, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_isTextureBacked.cpp b/docs/examples/Image_isTextureBacked.cpp
index 9726f57..f10f070 100644
--- a/docs/examples/Image_isTextureBacked.cpp
+++ b/docs/examples/Image_isTextureBacked.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9cf5c62a3d2243e6577ae563f360ea9d
 REG_FIDDLE(Image_isTextureBacked, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_isValid.cpp b/docs/examples/Image_isValid.cpp
index a4b2f1f..4d58a4f 100644
--- a/docs/examples/Image_isValid.cpp
+++ b/docs/examples/Image_isValid.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=afc62f38aebc56af8e425297ec67dd37
 REG_FIDDLE(Image_isValid, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_makeColorSpace.cpp b/docs/examples/Image_makeColorSpace.cpp
index 1ff619f..c297cba 100644
--- a/docs/examples/Image_makeColorSpace.cpp
+++ b/docs/examples/Image_makeColorSpace.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=dbf5f75c1275a3013672f896767140fb
 REG_FIDDLE(Image_makeColorSpace, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_makeNonTextureImage.cpp b/docs/examples/Image_makeNonTextureImage.cpp
index 0f91222..b486c9b 100644
--- a/docs/examples/Image_makeNonTextureImage.cpp
+++ b/docs/examples/Image_makeNonTextureImage.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ecdbaff44a02c310ef672b7d393c6dea
 REG_FIDDLE(Image_makeNonTextureImage, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_makeRasterImage.cpp b/docs/examples/Image_makeRasterImage.cpp
index fa522a1..ecb4191 100644
--- a/docs/examples/Image_makeRasterImage.cpp
+++ b/docs/examples/Image_makeRasterImage.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=aed5f399915d40bb5d133ab586e5bac3
 REG_FIDDLE(Image_makeRasterImage, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_makeShader.cpp b/docs/examples/Image_makeShader.cpp
index 0f4611d..22fe877 100644
--- a/docs/examples/Image_makeShader.cpp
+++ b/docs/examples/Image_makeShader.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1c6de6fe72b00b5be970f5f718363449
 REG_FIDDLE(Image_makeShader, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_makeShader_2.cpp b/docs/examples/Image_makeShader_2.cpp
index 6559726..e386faa 100644
--- a/docs/examples/Image_makeShader_2.cpp
+++ b/docs/examples/Image_makeShader_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=10172fca71b9dbdcade772513ffeb27e
 REG_FIDDLE(Image_makeShader_2, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_makeSubset.cpp b/docs/examples/Image_makeSubset.cpp
index 6faa552..fc5358a 100644
--- a/docs/examples/Image_makeSubset.cpp
+++ b/docs/examples/Image_makeSubset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=889e495ce3e3b3bacc96e8230932331c
 REG_FIDDLE(Image_makeSubset, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_makeTextureImage.cpp b/docs/examples/Image_makeTextureImage.cpp
index c5bcb5e..060f74c 100644
--- a/docs/examples/Image_makeTextureImage.cpp
+++ b/docs/examples/Image_makeTextureImage.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=eeec9e07e604b44d0208899a2fe5bef5
 REG_FIDDLE(Image_makeTextureImage, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_makeWithFilter.cpp b/docs/examples/Image_makeWithFilter.cpp
index f9e7299..2cc1d79 100644
--- a/docs/examples/Image_makeWithFilter.cpp
+++ b/docs/examples/Image_makeWithFilter.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=85a76163138a2720ac003691d6363938
 REG_FIDDLE(Image_makeWithFilter, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_peekPixels.cpp b/docs/examples/Image_peekPixels.cpp
index 44bf916..da69861 100644
--- a/docs/examples/Image_peekPixels.cpp
+++ b/docs/examples/Image_peekPixels.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=900c0eab8dfdecd8301ed5be95887f8e
 REG_FIDDLE(Image_peekPixels, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_readPixels.cpp b/docs/examples/Image_readPixels.cpp
index c41c861..ebd9349 100644
--- a/docs/examples/Image_readPixels.cpp
+++ b/docs/examples/Image_readPixels.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8aa8ca63dff4641dfc6ea8a3c555d59c
 REG_FIDDLE(Image_readPixels, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_readPixels_2.cpp b/docs/examples/Image_readPixels_2.cpp
index cfc38a1..3a96042 100644
--- a/docs/examples/Image_readPixels_2.cpp
+++ b/docs/examples/Image_readPixels_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b77a73c4baa63a4a8e2a4fdd96144d0b
 REG_FIDDLE(Image_readPixels_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_refColorSpace.cpp b/docs/examples/Image_refColorSpace.cpp
index b8a9061..3160a42 100644
--- a/docs/examples/Image_refColorSpace.cpp
+++ b/docs/examples/Image_refColorSpace.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=59b2078ebfbda8736a57c0486ae33332
 REG_FIDDLE(Image_refColorSpace, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_refEncodedData.cpp b/docs/examples/Image_refEncodedData.cpp
index df3d537..c461c09 100644
--- a/docs/examples/Image_refEncodedData.cpp
+++ b/docs/examples/Image_refEncodedData.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=80856fe921ce36f8d5a32d8672bccbfc
 REG_FIDDLE(Image_refEncodedData, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_scalePixels.cpp b/docs/examples/Image_scalePixels.cpp
index ab4b0fb..9a595ac 100644
--- a/docs/examples/Image_scalePixels.cpp
+++ b/docs/examples/Image_scalePixels.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5949c9a63610cae30019e5b1899ee38f
 REG_FIDDLE(Image_scalePixels, 256, 128, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_uniqueID.cpp b/docs/examples/Image_uniqueID.cpp
index f63aba5..c42ae49 100644
--- a/docs/examples/Image_uniqueID.cpp
+++ b/docs/examples/Image_uniqueID.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d70194c9c51e700335f95de91846d023
 REG_FIDDLE(Image_uniqueID, 256, 156, false, 5) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Image_width.cpp b/docs/examples/Image_width.cpp
index 22fb5bb..4388fbc 100644
--- a/docs/examples/Image_width.cpp
+++ b/docs/examples/Image_width.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9aec65fc252ffc9982fa8867433eca18
 REG_FIDDLE(Image_width, 256, 96, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Lighten.cpp b/docs/examples/Lighten.cpp
index f02a2ea..0e8a898 100644
--- a/docs/examples/Lighten.cpp
+++ b/docs/examples/Lighten.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=95cb08b8c8db3af3b2c9ad56ae7d6bc1
 REG_FIDDLE(Lighten, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Luminosity.cpp b/docs/examples/Luminosity.cpp
index e3fad9c..c28f75c 100644
--- a/docs/examples/Luminosity.cpp
+++ b/docs/examples/Luminosity.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7d42fe34ae20dd9e12c39dc3950e9989
 REG_FIDDLE(Luminosity, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Mask_Filter_Methods.cpp b/docs/examples/Mask_Filter_Methods.cpp
index 8702c6a..85c70f4 100644
--- a/docs/examples/Mask_Filter_Methods.cpp
+++ b/docs/examples/Mask_Filter_Methods.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=55d7b9d482ac8e17a6153f555a8adb8d
 REG_FIDDLE(Mask_Filter_Methods, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_063.cpp b/docs/examples/Matrix_063.cpp
index ef25b47..3782ef2 100644
--- a/docs/examples/Matrix_063.cpp
+++ b/docs/examples/Matrix_063.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e6ad0bd2999613d9e4758b661d45070c
 REG_FIDDLE(Matrix_063, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_Concat.cpp b/docs/examples/Matrix_Concat.cpp
index ca11a31..5b49b6e 100644
--- a/docs/examples/Matrix_Concat.cpp
+++ b/docs/examples/Matrix_Concat.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6b4562c7052da94f3d5b2412dca41946
 REG_FIDDLE(Matrix_Concat, 256, 64, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_I.cpp b/docs/examples/Matrix_I.cpp
index d379219..9c3833a 100644
--- a/docs/examples/Matrix_I.cpp
+++ b/docs/examples/Matrix_I.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d961d91020f19037204a8c3fd8cb1060
 REG_FIDDLE(Matrix_I, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_InvalidMatrix.cpp b/docs/examples/Matrix_InvalidMatrix.cpp
index 29cbfd1..148cab1 100644
--- a/docs/examples/Matrix_InvalidMatrix.cpp
+++ b/docs/examples/Matrix_InvalidMatrix.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=af0b72360c1c7a25b4754bfa47011dd5
 REG_FIDDLE(Matrix_InvalidMatrix, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_MakeAll.cpp b/docs/examples/Matrix_MakeAll.cpp
index bf68a0a..f1b58e4 100644
--- a/docs/examples/Matrix_MakeAll.cpp
+++ b/docs/examples/Matrix_MakeAll.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6bad83b64de9266e323c29d550e04188
 REG_FIDDLE(Matrix_MakeAll, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_MakeRectToRect.cpp b/docs/examples/Matrix_MakeRectToRect.cpp
index 4adb674..01158ac 100644
--- a/docs/examples/Matrix_MakeRectToRect.cpp
+++ b/docs/examples/Matrix_MakeRectToRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a1d6a6721b39350f81021f71a1b93208
 REG_FIDDLE(Matrix_MakeRectToRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_MakeScale.cpp b/docs/examples/Matrix_MakeScale.cpp
index cd6f014..0699ce3 100644
--- a/docs/examples/Matrix_MakeScale.cpp
+++ b/docs/examples/Matrix_MakeScale.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7ff17718111df6d6f95381d8a8f1b389
 REG_FIDDLE(Matrix_MakeScale, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_MakeScale_2.cpp b/docs/examples/Matrix_MakeScale_2.cpp
index b2cb0b6..5c03f0c 100644
--- a/docs/examples/Matrix_MakeScale_2.cpp
+++ b/docs/examples/Matrix_MakeScale_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2956aeb50fa862cdb13995e1e56a4bc8
 REG_FIDDLE(Matrix_MakeScale_2, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_MakeTrans.cpp b/docs/examples/Matrix_MakeTrans.cpp
index 4a7bc72..90f845f 100644
--- a/docs/examples/Matrix_MakeTrans.cpp
+++ b/docs/examples/Matrix_MakeTrans.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b2479df0d9cf296ff64ac31e36684557
 REG_FIDDLE(Matrix_MakeTrans, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_ScaleToFit.cpp b/docs/examples/Matrix_ScaleToFit.cpp
index ad8dced..5e1e7d5 100644
--- a/docs/examples/Matrix_ScaleToFit.cpp
+++ b/docs/examples/Matrix_ScaleToFit.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=17c3070b31b700ea8f52e48af9a66b6e
 REG_FIDDLE(Matrix_ScaleToFit, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_SetAffineIdentity.cpp b/docs/examples/Matrix_SetAffineIdentity.cpp
index 81a7378..8b36b10 100644
--- a/docs/examples/Matrix_SetAffineIdentity.cpp
+++ b/docs/examples/Matrix_SetAffineIdentity.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e10adbd0bcc940c5d4d872db0e78e892
 REG_FIDDLE(Matrix_SetAffineIdentity, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_TypeMask.cpp b/docs/examples/Matrix_TypeMask.cpp
index 35ea2e2..8b640fc 100644
--- a/docs/examples/Matrix_TypeMask.cpp
+++ b/docs/examples/Matrix_TypeMask.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ba19b36df8cd78586f3dff54e2d4c093
 REG_FIDDLE(Matrix_TypeMask, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_array_operator.cpp b/docs/examples/Matrix_array_operator.cpp
index 449cb64..9482b5b 100644
--- a/docs/examples/Matrix_array_operator.cpp
+++ b/docs/examples/Matrix_array_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e8740493abdf0c6341762db9cee56b89
 REG_FIDDLE(Matrix_array_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_asAffine.cpp b/docs/examples/Matrix_asAffine.cpp
index ae57aee..22b30a3 100644
--- a/docs/examples/Matrix_asAffine.cpp
+++ b/docs/examples/Matrix_asAffine.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3325bdf82bd86d9fbc4199f248afa82c
 REG_FIDDLE(Matrix_asAffine, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_cheapEqualTo.cpp b/docs/examples/Matrix_cheapEqualTo.cpp
index 80ceaeb..3610c66 100644
--- a/docs/examples/Matrix_cheapEqualTo.cpp
+++ b/docs/examples/Matrix_cheapEqualTo.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=39016b3cfc6bbabb09348a53822ce508
 REG_FIDDLE(Matrix_cheapEqualTo, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_decomposeScale.cpp b/docs/examples/Matrix_decomposeScale.cpp
index 7f7ca5b..4309850 100644
--- a/docs/examples/Matrix_decomposeScale.cpp
+++ b/docs/examples/Matrix_decomposeScale.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=139b874da0a3ede1f3df88119085c0aa
 REG_FIDDLE(Matrix_decomposeScale, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_dirtyMatrixTypeCache.cpp b/docs/examples/Matrix_dirtyMatrixTypeCache.cpp
index f536170..14b877d 100644
--- a/docs/examples/Matrix_dirtyMatrixTypeCache.cpp
+++ b/docs/examples/Matrix_dirtyMatrixTypeCache.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f4365ef332f51f7fd25040e0771ba9a2
 REG_FIDDLE(Matrix_dirtyMatrixTypeCache, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_dump.cpp b/docs/examples/Matrix_dump.cpp
index 77a1ef8..713d83d 100644
--- a/docs/examples/Matrix_dump.cpp
+++ b/docs/examples/Matrix_dump.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8d72a4818e5a9188348f6c08ab5d8a40
 REG_FIDDLE(Matrix_dump, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_equal_operator.cpp b/docs/examples/Matrix_equal_operator.cpp
index 6890ee3..3f6bdf8 100644
--- a/docs/examples/Matrix_equal_operator.cpp
+++ b/docs/examples/Matrix_equal_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3902859150b0f0c4aeb1f25d00434baa
 REG_FIDDLE(Matrix_equal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_fixedStepInX.cpp b/docs/examples/Matrix_fixedStepInX.cpp
index be68cb5..ccce72b 100644
--- a/docs/examples/Matrix_fixedStepInX.cpp
+++ b/docs/examples/Matrix_fixedStepInX.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=fad6b92b21b1e1deeae61978cec2d232
 REG_FIDDLE(Matrix_fixedStepInX, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_get.cpp b/docs/examples/Matrix_get.cpp
index d6fd779..f9383f9 100644
--- a/docs/examples/Matrix_get.cpp
+++ b/docs/examples/Matrix_get.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f5ed382bd04fa7d50b2398cce2fca23a
 REG_FIDDLE(Matrix_get, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_get9.cpp b/docs/examples/Matrix_get9.cpp
index 95df291..ab1a0cd 100644
--- a/docs/examples/Matrix_get9.cpp
+++ b/docs/examples/Matrix_get9.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=379fc375e011050b54ed9df83c0996a7
 REG_FIDDLE(Matrix_get9, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_getMaxScale.cpp b/docs/examples/Matrix_getMaxScale.cpp
index fc4cc5f..7a4df79 100644
--- a/docs/examples/Matrix_getMaxScale.cpp
+++ b/docs/examples/Matrix_getMaxScale.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3fee4364929899649cf9efc37897e964
 REG_FIDDLE(Matrix_getMaxScale, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_getMinMaxScales.cpp b/docs/examples/Matrix_getMinMaxScales.cpp
index 5f2e5fd..314634c 100644
--- a/docs/examples/Matrix_getMinMaxScales.cpp
+++ b/docs/examples/Matrix_getMinMaxScales.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=13adba0ecf5f82247cf051b4fa4d8a9c
 REG_FIDDLE(Matrix_getMinMaxScales, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_getMinScale.cpp b/docs/examples/Matrix_getMinScale.cpp
index 35397d3..a8710e6 100644
--- a/docs/examples/Matrix_getMinScale.cpp
+++ b/docs/examples/Matrix_getMinScale.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1d6f67904c88a806c3731879e9af4ae5
 REG_FIDDLE(Matrix_getMinScale, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_getPerspX.cpp b/docs/examples/Matrix_getPerspX.cpp
index fcd7d8a..56758b1 100644
--- a/docs/examples/Matrix_getPerspX.cpp
+++ b/docs/examples/Matrix_getPerspX.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a0f5bf4b55e8c33bfda29bf67e34306f
 REG_FIDDLE(Matrix_getPerspX, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_getPerspY.cpp b/docs/examples/Matrix_getPerspY.cpp
index 135ce15..ee74404 100644
--- a/docs/examples/Matrix_getPerspY.cpp
+++ b/docs/examples/Matrix_getPerspY.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=424a00a73675dbd99ad20feb0267442b
 REG_FIDDLE(Matrix_getPerspY, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_getScaleX.cpp b/docs/examples/Matrix_getScaleX.cpp
index 6bb19e3..9c21b08 100644
--- a/docs/examples/Matrix_getScaleX.cpp
+++ b/docs/examples/Matrix_getScaleX.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ab746d9be63975041ae8e50cba84dc3d
 REG_FIDDLE(Matrix_getScaleX, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_getScaleY.cpp b/docs/examples/Matrix_getScaleY.cpp
index 64941bf..041b294 100644
--- a/docs/examples/Matrix_getScaleY.cpp
+++ b/docs/examples/Matrix_getScaleY.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=708b1a548a2f8661b2ab570782fbc751
 REG_FIDDLE(Matrix_getScaleY, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_getSkewX.cpp b/docs/examples/Matrix_getSkewX.cpp
index f96209f..b5fe98e 100644
--- a/docs/examples/Matrix_getSkewX.cpp
+++ b/docs/examples/Matrix_getSkewX.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=df3a5d3c688e7597eae1e4e07bf91ae6
 REG_FIDDLE(Matrix_getSkewX, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_getSkewY.cpp b/docs/examples/Matrix_getSkewY.cpp
index e3dc404..de1eb4d 100644
--- a/docs/examples/Matrix_getSkewY.cpp
+++ b/docs/examples/Matrix_getSkewY.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6be5704506d029ffc91ba03b1d3e674b
 REG_FIDDLE(Matrix_getSkewY, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_getTranslateX.cpp b/docs/examples/Matrix_getTranslateX.cpp
index a239fec..53ba563 100644
--- a/docs/examples/Matrix_getTranslateX.cpp
+++ b/docs/examples/Matrix_getTranslateX.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6236f7f2b91aff977a66ba2ee2558ca4
 REG_FIDDLE(Matrix_getTranslateX, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_getTranslateY.cpp b/docs/examples/Matrix_getTranslateY.cpp
index 105f21f..f5ff6f0 100644
--- a/docs/examples/Matrix_getTranslateY.cpp
+++ b/docs/examples/Matrix_getTranslateY.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=08464e32d22421d2b254c71a84545ef5
 REG_FIDDLE(Matrix_getTranslateY, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_getType.cpp b/docs/examples/Matrix_getType.cpp
index 77c427e..baa863e 100644
--- a/docs/examples/Matrix_getType.cpp
+++ b/docs/examples/Matrix_getType.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8e45fe2dd52731bb2d4318686257e1d7
 REG_FIDDLE(Matrix_getType, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_hasPerspective.cpp b/docs/examples/Matrix_hasPerspective.cpp
index 6a167be..7d827aa 100644
--- a/docs/examples/Matrix_hasPerspective.cpp
+++ b/docs/examples/Matrix_hasPerspective.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=688123908c733169bbbfaf11f41ecff6
 REG_FIDDLE(Matrix_hasPerspective, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_invert.cpp b/docs/examples/Matrix_invert.cpp
index b682e66..cd19175 100644
--- a/docs/examples/Matrix_invert.cpp
+++ b/docs/examples/Matrix_invert.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0e03cd9f154603ed4b21ca56d69dae44
 REG_FIDDLE(Matrix_invert, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_isFinite.cpp b/docs/examples/Matrix_isFinite.cpp
index 6cc8dd1..5759ac2 100644
--- a/docs/examples/Matrix_isFinite.cpp
+++ b/docs/examples/Matrix_isFinite.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bc6c6f6a5df770287120d87f81b922eb
 REG_FIDDLE(Matrix_isFinite, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_isFixedStepInX.cpp b/docs/examples/Matrix_isFixedStepInX.cpp
index 7d746a5..e8b6931 100644
--- a/docs/examples/Matrix_isFixedStepInX.cpp
+++ b/docs/examples/Matrix_isFixedStepInX.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ab57b232acef69f26de9cb23d23c8a1a
 REG_FIDDLE(Matrix_isFixedStepInX, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_isIdentity.cpp b/docs/examples/Matrix_isIdentity.cpp
index a838050..5a682ef 100644
--- a/docs/examples/Matrix_isIdentity.cpp
+++ b/docs/examples/Matrix_isIdentity.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=780ab376325b3cfa889ea26c0769ec11
 REG_FIDDLE(Matrix_isIdentity, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_isScaleTranslate.cpp b/docs/examples/Matrix_isScaleTranslate.cpp
index 3f5168f..7cf31d6 100644
--- a/docs/examples/Matrix_isScaleTranslate.cpp
+++ b/docs/examples/Matrix_isScaleTranslate.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6287e29674a487eb94174992d45b9a34
 REG_FIDDLE(Matrix_isScaleTranslate, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_isSimilarity.cpp b/docs/examples/Matrix_isSimilarity.cpp
index cc96df0..271f1b4 100644
--- a/docs/examples/Matrix_isSimilarity.cpp
+++ b/docs/examples/Matrix_isSimilarity.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8b37f4ae7fec1756433c0f984175fb14
 REG_FIDDLE(Matrix_isSimilarity, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_isTranslate.cpp b/docs/examples/Matrix_isTranslate.cpp
index bca84ce..1fbf77e 100644
--- a/docs/examples/Matrix_isTranslate.cpp
+++ b/docs/examples/Matrix_isTranslate.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=73ac71a8a30841873577c11c6c9b38ee
 REG_FIDDLE(Matrix_isTranslate, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_mapHomogeneousPoints.cpp b/docs/examples/Matrix_mapHomogeneousPoints.cpp
index bd10507..2b34458 100644
--- a/docs/examples/Matrix_mapHomogeneousPoints.cpp
+++ b/docs/examples/Matrix_mapHomogeneousPoints.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d56f93e4bc763c7ba4914321ed07a8b5
 REG_FIDDLE(Matrix_mapHomogeneousPoints, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_mapPoints.cpp b/docs/examples/Matrix_mapPoints.cpp
index c38d271..43cee1adb 100644
--- a/docs/examples/Matrix_mapPoints.cpp
+++ b/docs/examples/Matrix_mapPoints.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f99dcb00296d0c56b6c0e178e94b3534
 REG_FIDDLE(Matrix_mapPoints, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_mapPoints_2.cpp b/docs/examples/Matrix_mapPoints_2.cpp
index a295976..355c99b 100644
--- a/docs/examples/Matrix_mapPoints_2.cpp
+++ b/docs/examples/Matrix_mapPoints_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=428ca171ae3bd0d3f992458ac598b97b
 REG_FIDDLE(Matrix_mapPoints_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_mapRadius.cpp b/docs/examples/Matrix_mapRadius.cpp
index 06904493..378f4b4 100644
--- a/docs/examples/Matrix_mapRadius.cpp
+++ b/docs/examples/Matrix_mapRadius.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6d6f2082fcf59d9f02bfb1758b87db69
 REG_FIDDLE(Matrix_mapRadius, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_mapRect.cpp b/docs/examples/Matrix_mapRect.cpp
index 3f27d98..8d3fe10 100644
--- a/docs/examples/Matrix_mapRect.cpp
+++ b/docs/examples/Matrix_mapRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=dbcf928b035a31ca69c99392e2e2cca9
 REG_FIDDLE(Matrix_mapRect, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_mapRectScaleTranslate.cpp b/docs/examples/Matrix_mapRectScaleTranslate.cpp
index 685af6c..b780141 100644
--- a/docs/examples/Matrix_mapRectScaleTranslate.cpp
+++ b/docs/examples/Matrix_mapRectScaleTranslate.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=62bc26989c2b4c2a54d516596a71dd97
 REG_FIDDLE(Matrix_mapRectScaleTranslate, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_mapRectToQuad.cpp b/docs/examples/Matrix_mapRectToQuad.cpp
index b388cfb..c1e552c 100644
--- a/docs/examples/Matrix_mapRectToQuad.cpp
+++ b/docs/examples/Matrix_mapRectToQuad.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c69cd2a590b5733c3cbc92cb9ceed3f5
 REG_FIDDLE(Matrix_mapRectToQuad, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_mapRect_2.cpp b/docs/examples/Matrix_mapRect_2.cpp
index c713935..68822f5 100644
--- a/docs/examples/Matrix_mapRect_2.cpp
+++ b/docs/examples/Matrix_mapRect_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5fafd0bd23d1ed37425b970b4a3c6cc9
 REG_FIDDLE(Matrix_mapRect_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_mapRect_3.cpp b/docs/examples/Matrix_mapRect_3.cpp
index 57d5f25..6bbb0f6 100644
--- a/docs/examples/Matrix_mapRect_3.cpp
+++ b/docs/examples/Matrix_mapRect_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3b7b1f884437ab450f986234e4aec27f
 REG_FIDDLE(Matrix_mapRect_3, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_mapVector.cpp b/docs/examples/Matrix_mapVector.cpp
index 2425d64..87c8368 100644
--- a/docs/examples/Matrix_mapVector.cpp
+++ b/docs/examples/Matrix_mapVector.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=aed143fc6cd0bce4ed029b98d1e61f2d
 REG_FIDDLE(Matrix_mapVector, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_mapVector_2.cpp b/docs/examples/Matrix_mapVector_2.cpp
index 1ca8e7b..e961a44 100644
--- a/docs/examples/Matrix_mapVector_2.cpp
+++ b/docs/examples/Matrix_mapVector_2.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8bf1518db3f369696cd3065b541a8bd7
 REG_FIDDLE(Matrix_mapVector_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_mapVectors.cpp b/docs/examples/Matrix_mapVectors.cpp
index 78ba1ce..fcacfce 100644
--- a/docs/examples/Matrix_mapVectors.cpp
+++ b/docs/examples/Matrix_mapVectors.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=918a9778c3d7d5cb306692784399f6dc
 REG_FIDDLE(Matrix_mapVectors, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_mapVectors_2.cpp b/docs/examples/Matrix_mapVectors_2.cpp
index 503cd46..fde774c 100644
--- a/docs/examples/Matrix_mapVectors_2.cpp
+++ b/docs/examples/Matrix_mapVectors_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5754501a00a1323e76353fb53153e939
 REG_FIDDLE(Matrix_mapVectors_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_mapXY.cpp b/docs/examples/Matrix_mapXY.cpp
index 76097f4..5993ecc 100644
--- a/docs/examples/Matrix_mapXY.cpp
+++ b/docs/examples/Matrix_mapXY.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9e50185d502dc6903783679a84106089
 REG_FIDDLE(Matrix_mapXY, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_mapXY_2.cpp b/docs/examples/Matrix_mapXY_2.cpp
index 2173bd4..62d0385 100644
--- a/docs/examples/Matrix_mapXY_2.cpp
+++ b/docs/examples/Matrix_mapXY_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b1ead09c67a177ab8eace12b061610a7
 REG_FIDDLE(Matrix_mapXY_2, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_notequal_operator.cpp b/docs/examples/Matrix_notequal_operator.cpp
index f242bd1..b074613 100644
--- a/docs/examples/Matrix_notequal_operator.cpp
+++ b/docs/examples/Matrix_notequal_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=088ab41f877599f980a99523749b0afd
 REG_FIDDLE(Matrix_notequal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_postConcat.cpp b/docs/examples/Matrix_postConcat.cpp
index efb8f9a..790149e 100644
--- a/docs/examples/Matrix_postConcat.cpp
+++ b/docs/examples/Matrix_postConcat.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e4226c55d9bdbc119264bd372b2b9835
 REG_FIDDLE(Matrix_postConcat, 256, 64, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_postRotate.cpp b/docs/examples/Matrix_postRotate.cpp
index e3a75c8..734e144 100644
--- a/docs/examples/Matrix_postRotate.cpp
+++ b/docs/examples/Matrix_postRotate.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e09194ee48a81e7b375ade473d340f0d
 REG_FIDDLE(Matrix_postRotate, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_postRotate_2.cpp b/docs/examples/Matrix_postRotate_2.cpp
index 0c30702..2da4c92 100644
--- a/docs/examples/Matrix_postRotate_2.cpp
+++ b/docs/examples/Matrix_postRotate_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=52e4c53e26971af5576b30de60fa70c2
 REG_FIDDLE(Matrix_postRotate_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_postScale.cpp b/docs/examples/Matrix_postScale.cpp
index 9ade784..f77efaa 100644
--- a/docs/examples/Matrix_postScale.cpp
+++ b/docs/examples/Matrix_postScale.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ed3aa18ba0ea95c85cc49aa3829fe384
 REG_FIDDLE(Matrix_postScale, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_postScale_2.cpp b/docs/examples/Matrix_postScale_2.cpp
index 70b6054..7d3024e 100644
--- a/docs/examples/Matrix_postScale_2.cpp
+++ b/docs/examples/Matrix_postScale_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1931017698766a67d3a26423453b8095
 REG_FIDDLE(Matrix_postScale_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_postSkew.cpp b/docs/examples/Matrix_postSkew.cpp
index 077f650..a1b5756 100644
--- a/docs/examples/Matrix_postSkew.cpp
+++ b/docs/examples/Matrix_postSkew.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8c34ae3a2b7e2742bb969819737365ec
 REG_FIDDLE(Matrix_postSkew, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_postSkew_2.cpp b/docs/examples/Matrix_postSkew_2.cpp
index 149d505..233405c 100644
--- a/docs/examples/Matrix_postSkew_2.cpp
+++ b/docs/examples/Matrix_postSkew_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3aa2603225dff72ac53dd359f897f494
 REG_FIDDLE(Matrix_postSkew_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_postTranslate.cpp b/docs/examples/Matrix_postTranslate.cpp
index a26177b..b9e3835 100644
--- a/docs/examples/Matrix_postTranslate.cpp
+++ b/docs/examples/Matrix_postTranslate.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f5144ef4bd7cea294fad2f756ed335af
 REG_FIDDLE(Matrix_postTranslate, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_preConcat.cpp b/docs/examples/Matrix_preConcat.cpp
index dada66d..09e8e24 100644
--- a/docs/examples/Matrix_preConcat.cpp
+++ b/docs/examples/Matrix_preConcat.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b07e62298e7b0ab5683db199faffceb2
 REG_FIDDLE(Matrix_preConcat, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_preRotate.cpp b/docs/examples/Matrix_preRotate.cpp
index f456313..e5d4b48 100644
--- a/docs/examples/Matrix_preRotate.cpp
+++ b/docs/examples/Matrix_preRotate.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a70bb18d67c06a20ab514e7a47924e5a
 REG_FIDDLE(Matrix_preRotate, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_preRotate_2.cpp b/docs/examples/Matrix_preRotate_2.cpp
index c134411..8105415 100644
--- a/docs/examples/Matrix_preRotate_2.cpp
+++ b/docs/examples/Matrix_preRotate_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5acd49bd931c79a808dd6c7cc0e92f72
 REG_FIDDLE(Matrix_preRotate_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_preScale.cpp b/docs/examples/Matrix_preScale.cpp
index ace6b20..0c67cb4 100644
--- a/docs/examples/Matrix_preScale.cpp
+++ b/docs/examples/Matrix_preScale.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2531f8d1e05d7b6dc22f3efcd2fb84e4
 REG_FIDDLE(Matrix_preScale, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_preScale_2.cpp b/docs/examples/Matrix_preScale_2.cpp
index ec86d64..a69885e 100644
--- a/docs/examples/Matrix_preScale_2.cpp
+++ b/docs/examples/Matrix_preScale_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3edbdea8e43d06086abf33ec4a9b415b
 REG_FIDDLE(Matrix_preScale_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_preSkew.cpp b/docs/examples/Matrix_preSkew.cpp
index 1dd38f9..6548412 100644
--- a/docs/examples/Matrix_preSkew.cpp
+++ b/docs/examples/Matrix_preSkew.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=199a18ad61d702664ce6df1d7037aa48
 REG_FIDDLE(Matrix_preSkew, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_preSkew_2.cpp b/docs/examples/Matrix_preSkew_2.cpp
index 1987ea2..1819caf 100644
--- a/docs/examples/Matrix_preSkew_2.cpp
+++ b/docs/examples/Matrix_preSkew_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e100c543869fe8fd516ba69de79444ba
 REG_FIDDLE(Matrix_preSkew_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_preTranslate.cpp b/docs/examples/Matrix_preTranslate.cpp
index 2d6902e..ee1d0b1 100644
--- a/docs/examples/Matrix_preTranslate.cpp
+++ b/docs/examples/Matrix_preTranslate.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f75a9b629aa6c51ed888f8799b5ba5f7
 REG_FIDDLE(Matrix_preTranslate, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_preservesAxisAlignment.cpp b/docs/examples/Matrix_preservesAxisAlignment.cpp
index a31fd79..c680bf1 100644
--- a/docs/examples/Matrix_preservesAxisAlignment.cpp
+++ b/docs/examples/Matrix_preservesAxisAlignment.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7a234c96608fb7cb8135b9940b0b15f7
 REG_FIDDLE(Matrix_preservesAxisAlignment, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_preservesRightAngles.cpp b/docs/examples/Matrix_preservesRightAngles.cpp
index 0c71d38..d9c81e7 100644
--- a/docs/examples/Matrix_preservesRightAngles.cpp
+++ b/docs/examples/Matrix_preservesRightAngles.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b9becf0dc24a9f00726e24a81fb72f16
 REG_FIDDLE(Matrix_preservesRightAngles, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_rectStaysRect.cpp b/docs/examples/Matrix_rectStaysRect.cpp
index b558738..9a88b308 100644
--- a/docs/examples/Matrix_rectStaysRect.cpp
+++ b/docs/examples/Matrix_rectStaysRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ce5319c036c9b5086da8a0009fe409f8
 REG_FIDDLE(Matrix_rectStaysRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_reset.cpp b/docs/examples/Matrix_reset.cpp
index 2ef3676..b9de085 100644
--- a/docs/examples/Matrix_reset.cpp
+++ b/docs/examples/Matrix_reset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ca94f7922bc37ef03bbc51ad70536fcf
 REG_FIDDLE(Matrix_reset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_set.cpp b/docs/examples/Matrix_set.cpp
index aa4bb2a..97e29c2 100644
--- a/docs/examples/Matrix_set.cpp
+++ b/docs/examples/Matrix_set.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1d400a92ca826cc89bcb88ea051f28c8
 REG_FIDDLE(Matrix_set, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_set9.cpp b/docs/examples/Matrix_set9.cpp
index b020a7c..8d117d0 100644
--- a/docs/examples/Matrix_set9.cpp
+++ b/docs/examples/Matrix_set9.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ec5de0d23e5fe28ba7628625d1402e85
 REG_FIDDLE(Matrix_set9, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setAffine.cpp b/docs/examples/Matrix_setAffine.cpp
index aaa50e1..5a47210 100644
--- a/docs/examples/Matrix_setAffine.cpp
+++ b/docs/examples/Matrix_setAffine.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f5b6d371c4d65e5b5ac6eebdd4b237d8
 REG_FIDDLE(Matrix_setAffine, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setAll.cpp b/docs/examples/Matrix_setAll.cpp
index 46559b3..c254980 100644
--- a/docs/examples/Matrix_setAll.cpp
+++ b/docs/examples/Matrix_setAll.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=95ccfc2a89ce593e6b7a9f992a844bc0
 REG_FIDDLE(Matrix_setAll, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setConcat.cpp b/docs/examples/Matrix_setConcat.cpp
index 779b60d..c877d3d 100644
--- a/docs/examples/Matrix_setConcat.cpp
+++ b/docs/examples/Matrix_setConcat.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0381a10ac69bdefdf9d15b47cbb9fefe
 REG_FIDDLE(Matrix_setConcat, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setIdentity.cpp b/docs/examples/Matrix_setIdentity.cpp
index 0c69d88..b887c58 100644
--- a/docs/examples/Matrix_setIdentity.cpp
+++ b/docs/examples/Matrix_setIdentity.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3979c865bb482e6ef1fafc71e56bbb91
 REG_FIDDLE(Matrix_setIdentity, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setPerspX.cpp b/docs/examples/Matrix_setPerspX.cpp
index f1b352f..d9b6b9a 100644
--- a/docs/examples/Matrix_setPerspX.cpp
+++ b/docs/examples/Matrix_setPerspX.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=830a9e4e4bb93d25afd83b2fea63929e
 REG_FIDDLE(Matrix_setPerspX, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setPerspY.cpp b/docs/examples/Matrix_setPerspY.cpp
index b0d74c6..0542e4a 100644
--- a/docs/examples/Matrix_setPerspY.cpp
+++ b/docs/examples/Matrix_setPerspY.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=aeb258b7922c1a11b698b00f562182ec
 REG_FIDDLE(Matrix_setPerspY, 256, 256, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setPolyToPoly.cpp b/docs/examples/Matrix_setPolyToPoly.cpp
index 66f28db..f85c5a5 100644
--- a/docs/examples/Matrix_setPolyToPoly.cpp
+++ b/docs/examples/Matrix_setPolyToPoly.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c851d1313e8909aaea4f0591699fdb7b
 REG_FIDDLE(Matrix_setPolyToPoly, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setRSXform.cpp b/docs/examples/Matrix_setRSXform.cpp
index 2168953..65e2875 100644
--- a/docs/examples/Matrix_setRSXform.cpp
+++ b/docs/examples/Matrix_setRSXform.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c3f5faddca466f78278b32b88fd5f5eb
 REG_FIDDLE(Matrix_setRSXform, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setRectToRect.cpp b/docs/examples/Matrix_setRectToRect.cpp
index 0fcb13a..c2d83d5 100644
--- a/docs/examples/Matrix_setRectToRect.cpp
+++ b/docs/examples/Matrix_setRectToRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=69cdea599dcaaec35efcb24403f4287b
 REG_FIDDLE(Matrix_setRectToRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setRotate.cpp b/docs/examples/Matrix_setRotate.cpp
index c5456f0..9dff60e 100644
--- a/docs/examples/Matrix_setRotate.cpp
+++ b/docs/examples/Matrix_setRotate.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8c28db3add9cd0177225088f6df6bbb5
 REG_FIDDLE(Matrix_setRotate, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setRotate_2.cpp b/docs/examples/Matrix_setRotate_2.cpp
index 7c18b64..1f945d0 100644
--- a/docs/examples/Matrix_setRotate_2.cpp
+++ b/docs/examples/Matrix_setRotate_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=93efb9d191bf1b9710c173513e014d6c
 REG_FIDDLE(Matrix_setRotate_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setScale.cpp b/docs/examples/Matrix_setScale.cpp
index d01f269..f0db467 100644
--- a/docs/examples/Matrix_setScale.cpp
+++ b/docs/examples/Matrix_setScale.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4565a0792058178c88e0a129a87272d6
 REG_FIDDLE(Matrix_setScale, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setScaleTranslate.cpp b/docs/examples/Matrix_setScaleTranslate.cpp
index ddb9f0c..27ad9cf 100644
--- a/docs/examples/Matrix_setScaleTranslate.cpp
+++ b/docs/examples/Matrix_setScaleTranslate.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=fed43797f13796529cb6731385d6f8f3
 REG_FIDDLE(Matrix_setScaleTranslate, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setScaleX.cpp b/docs/examples/Matrix_setScaleX.cpp
index 00075fe..3fb3872 100644
--- a/docs/examples/Matrix_setScaleX.cpp
+++ b/docs/examples/Matrix_setScaleX.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a39dfed98c3c3c3a56be9ad59fe4e21e
 REG_FIDDLE(Matrix_setScaleX, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setScaleY.cpp b/docs/examples/Matrix_setScaleY.cpp
index ca03684..86fd0ab 100644
--- a/docs/examples/Matrix_setScaleY.cpp
+++ b/docs/examples/Matrix_setScaleY.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f040c6dd85a02e94eaca00d5c2832604
 REG_FIDDLE(Matrix_setScaleY, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setScale_2.cpp b/docs/examples/Matrix_setScale_2.cpp
index cd49107..5ec91d0 100644
--- a/docs/examples/Matrix_setScale_2.cpp
+++ b/docs/examples/Matrix_setScale_2.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1579d0cc109c26e69f66f73abd35fb0e
 REG_FIDDLE(Matrix_setScale_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setSinCos.cpp b/docs/examples/Matrix_setSinCos.cpp
index 67de59d..e16b4e9 100644
--- a/docs/examples/Matrix_setSinCos.cpp
+++ b/docs/examples/Matrix_setSinCos.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=187e1d9228e2e4341ef820bd77b6fda9
 REG_FIDDLE(Matrix_setSinCos, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setSinCos_2.cpp b/docs/examples/Matrix_setSinCos_2.cpp
index e5eea65..7a8b548 100644
--- a/docs/examples/Matrix_setSinCos_2.cpp
+++ b/docs/examples/Matrix_setSinCos_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e37a94a53c959951b059fcd624639ef6
 REG_FIDDLE(Matrix_setSinCos_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setSkew.cpp b/docs/examples/Matrix_setSkew.cpp
index 2942ab8..eb1274f 100644
--- a/docs/examples/Matrix_setSkew.cpp
+++ b/docs/examples/Matrix_setSkew.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=55e0431adc6c5b1987ebb8123cc10342
 REG_FIDDLE(Matrix_setSkew, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setSkewX.cpp b/docs/examples/Matrix_setSkewX.cpp
index ad540e8..2889340 100644
--- a/docs/examples/Matrix_setSkewX.cpp
+++ b/docs/examples/Matrix_setSkewX.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c7177a6fbc1545be95a5ebca87e0cd0d
 REG_FIDDLE(Matrix_setSkewX, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setSkewY.cpp b/docs/examples/Matrix_setSkewY.cpp
index 44d3822..b5f5b1d 100644
--- a/docs/examples/Matrix_setSkewY.cpp
+++ b/docs/examples/Matrix_setSkewY.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b418d15df9829aefcc6aca93a37428bb
 REG_FIDDLE(Matrix_setSkewY, 256, 96, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setSkew_2.cpp b/docs/examples/Matrix_setSkew_2.cpp
index 146fd32..fd44cd7 100644
--- a/docs/examples/Matrix_setSkew_2.cpp
+++ b/docs/examples/Matrix_setSkew_2.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=05be7844e9afdd7b9bfc31c5423a70a2
 REG_FIDDLE(Matrix_setSkew_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setTranslate.cpp b/docs/examples/Matrix_setTranslate.cpp
index 5a63ae0..0c86a79 100644
--- a/docs/examples/Matrix_setTranslate.cpp
+++ b/docs/examples/Matrix_setTranslate.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=63ca62985741b1bccb5e8b9cf734874e
 REG_FIDDLE(Matrix_setTranslate, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setTranslateX.cpp b/docs/examples/Matrix_setTranslateX.cpp
index 4b88683..f4346e9 100644
--- a/docs/examples/Matrix_setTranslateX.cpp
+++ b/docs/examples/Matrix_setTranslateX.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a18bc2e3607ac3a8e438bcb61fb13130
 REG_FIDDLE(Matrix_setTranslateX, 256, 48, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setTranslateY.cpp b/docs/examples/Matrix_setTranslateY.cpp
index f00035c..e0a67a3 100644
--- a/docs/examples/Matrix_setTranslateY.cpp
+++ b/docs/examples/Matrix_setTranslateY.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=34e3c70a72b836abf7f4858d35eecc98
 REG_FIDDLE(Matrix_setTranslateY, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Matrix_setTranslate_2.cpp b/docs/examples/Matrix_setTranslate_2.cpp
index 3be2426..1e07659 100644
--- a/docs/examples/Matrix_setTranslate_2.cpp
+++ b/docs/examples/Matrix_setTranslate_2.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ccfc734aff2ddea0b097c83f5621de5e
 REG_FIDDLE(Matrix_setTranslate_2, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/MemberIndex.cpp b/docs/examples/MemberIndex.cpp
index c75f2f4..4a3e657 100644
--- a/docs/examples/MemberIndex.cpp
+++ b/docs/examples/MemberIndex.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3bbf75f4748420810aa2586e3c8548d9
 REG_FIDDLE(MemberIndex, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Miter_Limit.cpp b/docs/examples/Miter_Limit.cpp
index 88c1229..b71f974 100644
--- a/docs/examples/Miter_Limit.cpp
+++ b/docs/examples/Miter_Limit.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5de2de0f00354e59074a9bb1a42d5a63
 REG_FIDDLE(Miter_Limit, 384, 170, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Modulate.cpp b/docs/examples/Modulate.cpp
index 7290577..8325d4a 100644
--- a/docs/examples/Modulate.cpp
+++ b/docs/examples/Modulate.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3fdac2b2f48bd227d2e74234c260bc8e
 REG_FIDDLE(Modulate, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Multiply.cpp b/docs/examples/Multiply.cpp
index 5a9a1b6..338b9da 100644
--- a/docs/examples/Multiply.cpp
+++ b/docs/examples/Multiply.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=eb29c896f008dfbef09e16b85114fc3a
 REG_FIDDLE(Multiply, 256, 256, false, 5) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Overlay.cpp b/docs/examples/Overlay.cpp
index 95c77ac..39aefd1 100644
--- a/docs/examples/Overlay.cpp
+++ b/docs/examples/Overlay.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=03bf042201de02d6d131938ccd3172eb
 REG_FIDDLE(Overlay, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_053.cpp b/docs/examples/Paint_053.cpp
index 132e754..b6fc8d6 100644
--- a/docs/examples/Paint_053.cpp
+++ b/docs/examples/Paint_053.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2bffb6384cc20077e632e7d01da045ca
 REG_FIDDLE(Paint_053, 256, 200, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_057.cpp b/docs/examples/Paint_057.cpp
index d7ede5e..c92982b 100644
--- a/docs/examples/Paint_057.cpp
+++ b/docs/examples/Paint_057.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3b1aebacc21c1836a52876b9b0b3905e
 REG_FIDDLE(Paint_057, 462, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_containsText.cpp b/docs/examples/Paint_containsText.cpp
index c81b316..b7d8bf0 100644
--- a/docs/examples/Paint_containsText.cpp
+++ b/docs/examples/Paint_containsText.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6a68cb3c8b81a5976c81ee004f559247
 REG_FIDDLE(Paint_containsText, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_copy_const_SkPaint.cpp b/docs/examples/Paint_copy_const_SkPaint.cpp
index 2319e87..488804a 100644
--- a/docs/examples/Paint_copy_const_SkPaint.cpp
+++ b/docs/examples/Paint_copy_const_SkPaint.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b99971ad0ef243d617925289d963b62d
 REG_FIDDLE(Paint_copy_const_SkPaint, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_copy_operator.cpp b/docs/examples/Paint_copy_operator.cpp
index fe1b399..222a3e9 100644
--- a/docs/examples/Paint_copy_operator.cpp
+++ b/docs/examples/Paint_copy_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b476a9088f80dece176ed577807d3992
 REG_FIDDLE(Paint_copy_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_countText.cpp b/docs/examples/Paint_countText.cpp
index b648b21..7da2407 100644
--- a/docs/examples/Paint_countText.cpp
+++ b/docs/examples/Paint_countText.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=85436c71aab5410767fc688ab0573e09
 REG_FIDDLE(Paint_countText, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_empty_constructor.cpp b/docs/examples/Paint_empty_constructor.cpp
index c4fc87d..1bce4b1 100644
--- a/docs/examples/Paint_empty_constructor.cpp
+++ b/docs/examples/Paint_empty_constructor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c4b2186d85c142a481298f7144295ffd
 REG_FIDDLE(Paint_empty_constructor, 256, 1, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_equal_operator.cpp b/docs/examples/Paint_equal_operator.cpp
index 23df823..e10e3dd 100644
--- a/docs/examples/Paint_equal_operator.cpp
+++ b/docs/examples/Paint_equal_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7481a948e34672720337a631830586dd
 REG_FIDDLE(Paint_equal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getAlpha.cpp b/docs/examples/Paint_getAlpha.cpp
index 14f07b5..d690ae0 100644
--- a/docs/examples/Paint_getAlpha.cpp
+++ b/docs/examples/Paint_getAlpha.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9a85bb62fe3d877b18fb7f952c4fa7f7
 REG_FIDDLE(Paint_getAlpha, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getBlendMode.cpp b/docs/examples/Paint_getBlendMode.cpp
index f87a4bc..9c7185e 100644
--- a/docs/examples/Paint_getBlendMode.cpp
+++ b/docs/examples/Paint_getBlendMode.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a1e059c8f6740fa2044cc64152b39dda
 REG_FIDDLE(Paint_getBlendMode, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getColor.cpp b/docs/examples/Paint_getColor.cpp
index 831b4a1..05411a0 100644
--- a/docs/examples/Paint_getColor.cpp
+++ b/docs/examples/Paint_getColor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=72d41f890203109a41f589a7403acae9
 REG_FIDDLE(Paint_getColor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getColor4f.cpp b/docs/examples/Paint_getColor4f.cpp
index c7e4fa9..dda7664 100644
--- a/docs/examples/Paint_getColor4f.cpp
+++ b/docs/examples/Paint_getColor4f.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8512ea2176f36e8f1aeef311ff228790
 REG_FIDDLE(Paint_getColor4f, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getColorFilter.cpp b/docs/examples/Paint_getColorFilter.cpp
index 13d0532..d9ac5ec 100644
--- a/docs/examples/Paint_getColorFilter.cpp
+++ b/docs/examples/Paint_getColorFilter.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=093bdc627d6b59002670fd290931f6c9
 REG_FIDDLE(Paint_getColorFilter, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getDrawLooper.cpp b/docs/examples/Paint_getDrawLooper.cpp
index fb578c4..ecec75a 100644
--- a/docs/examples/Paint_getDrawLooper.cpp
+++ b/docs/examples/Paint_getDrawLooper.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=af4c5acc7a91e7f23c2af48018903ad4
 REG_FIDDLE(Paint_getDrawLooper, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getFillPath.cpp b/docs/examples/Paint_getFillPath.cpp
index b6f6f30..a52e3f2 100644
--- a/docs/examples/Paint_getFillPath.cpp
+++ b/docs/examples/Paint_getFillPath.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=cedd6233848198e1fca4d1e14816baaf
 REG_FIDDLE(Paint_getFillPath, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getFillPath_2.cpp b/docs/examples/Paint_getFillPath_2.cpp
index 093d0cf..f8434fe 100644
--- a/docs/examples/Paint_getFillPath_2.cpp
+++ b/docs/examples/Paint_getFillPath_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e6d8ca0cc17e0b475bd54dd995825468
 REG_FIDDLE(Paint_getFillPath_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getFilterQuality.cpp b/docs/examples/Paint_getFilterQuality.cpp
index 990ac83..dba72a0 100644
--- a/docs/examples/Paint_getFilterQuality.cpp
+++ b/docs/examples/Paint_getFilterQuality.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d4ca1f23809b6835c4ba46ea98a86900
 REG_FIDDLE(Paint_getFilterQuality, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getFlags.cpp b/docs/examples/Paint_getFlags.cpp
index 9929196..2f7cf06 100644
--- a/docs/examples/Paint_getFlags.cpp
+++ b/docs/examples/Paint_getFlags.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8a3f8c309533388b01aa66e1267f322d
 REG_FIDDLE(Paint_getFlags, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getFontMetrics.cpp b/docs/examples/Paint_getFontMetrics.cpp
index 5cf535c..b3b2cee 100644
--- a/docs/examples/Paint_getFontMetrics.cpp
+++ b/docs/examples/Paint_getFontMetrics.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=59d9b8249afa1c2af6186711250ce240
 REG_FIDDLE(Paint_getFontMetrics, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getFontSpacing.cpp b/docs/examples/Paint_getFontSpacing.cpp
index d46225e..e1e306b 100644
--- a/docs/examples/Paint_getFontSpacing.cpp
+++ b/docs/examples/Paint_getFontSpacing.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=424741e26e1b174e43087d67422ce14f
 REG_FIDDLE(Paint_getFontSpacing, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getHash.cpp b/docs/examples/Paint_getHash.cpp
index ccc5d6d..a23a1af 100644
--- a/docs/examples/Paint_getHash.cpp
+++ b/docs/examples/Paint_getHash.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7f7e1b701361912b344f90ae6b530393
 REG_FIDDLE(Paint_getHash, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getHinting.cpp b/docs/examples/Paint_getHinting.cpp
index d67a632..b61e2b4 100644
--- a/docs/examples/Paint_getHinting.cpp
+++ b/docs/examples/Paint_getHinting.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b56b70c7ea2453c41bfa58b626953bed
 REG_FIDDLE(Paint_getHinting, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getImageFilter.cpp b/docs/examples/Paint_getImageFilter.cpp
index 1112d28..1489262 100644
--- a/docs/examples/Paint_getImageFilter.cpp
+++ b/docs/examples/Paint_getImageFilter.cpp
@@ -1,9 +1,9 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c11f8eaa1dd149bc18db21e23ce26904
 REG_FIDDLE(Paint_getImageFilter, 256, 256, true, 0) {
-#include "SkBlurImageFilter.h"
+#include "include/effects/SkBlurImageFilter.h"
 
 void draw(SkCanvas* canvas) {
    SkPaint paint;
diff --git a/docs/examples/Paint_getMaskFilter.cpp b/docs/examples/Paint_getMaskFilter.cpp
index 97f3fef..8ec8ea5 100644
--- a/docs/examples/Paint_getMaskFilter.cpp
+++ b/docs/examples/Paint_getMaskFilter.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5ac4b31371726da87bb7390b385e9fee
 REG_FIDDLE(Paint_getMaskFilter, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getPathEffect.cpp b/docs/examples/Paint_getPathEffect.cpp
index d5f1acd..1a4d432 100644
--- a/docs/examples/Paint_getPathEffect.cpp
+++ b/docs/examples/Paint_getPathEffect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=211a1b14bfa6c4332082c8eab4fbc5fd
 REG_FIDDLE(Paint_getPathEffect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getPosTextPath.cpp b/docs/examples/Paint_getPosTextPath.cpp
index df7a539..a45d4fd 100644
--- a/docs/examples/Paint_getPosTextPath.cpp
+++ b/docs/examples/Paint_getPosTextPath.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7f27c93472aa99a7542fb3493076f072
 REG_FIDDLE(Paint_getPosTextPath, 256, 85, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getShader.cpp b/docs/examples/Paint_getShader.cpp
index 1e5f161..71da59e 100644
--- a/docs/examples/Paint_getShader.cpp
+++ b/docs/examples/Paint_getShader.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=09f15b9fd88882850da2d235eb86292f
 REG_FIDDLE(Paint_getShader, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getStrokeCap.cpp b/docs/examples/Paint_getStrokeCap.cpp
index 37823b3..be60a09 100644
--- a/docs/examples/Paint_getStrokeCap.cpp
+++ b/docs/examples/Paint_getStrokeCap.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=aabf9baee8e026fae36fca30e955512b
 REG_FIDDLE(Paint_getStrokeCap, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getStrokeJoin.cpp b/docs/examples/Paint_getStrokeJoin.cpp
index 9f925f7..eedeb3b 100644
--- a/docs/examples/Paint_getStrokeJoin.cpp
+++ b/docs/examples/Paint_getStrokeJoin.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=31bf751d0a8ddf176b871810820d8199
 REG_FIDDLE(Paint_getStrokeJoin, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getStrokeMiter.cpp b/docs/examples/Paint_getStrokeMiter.cpp
index 77c09bd..a554dd9 100644
--- a/docs/examples/Paint_getStrokeMiter.cpp
+++ b/docs/examples/Paint_getStrokeMiter.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=50da74a43b725f07a914df588c867d36
 REG_FIDDLE(Paint_getStrokeMiter, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getStrokeWidth.cpp b/docs/examples/Paint_getStrokeWidth.cpp
index a8c672e..6354539 100644
--- a/docs/examples/Paint_getStrokeWidth.cpp
+++ b/docs/examples/Paint_getStrokeWidth.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=99aa73f64df8bbf06e656cd891a81b9e
 REG_FIDDLE(Paint_getStrokeWidth, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getStyle.cpp b/docs/examples/Paint_getStyle.cpp
index 9fcaa43..ca38a2f 100644
--- a/docs/examples/Paint_getStyle.cpp
+++ b/docs/examples/Paint_getStyle.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1c5e18c3c0102d2dac86a78ba8c8ce01
 REG_FIDDLE(Paint_getStyle, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getTextEncoding.cpp b/docs/examples/Paint_getTextEncoding.cpp
index 6bae086..f2b48fb 100644
--- a/docs/examples/Paint_getTextEncoding.cpp
+++ b/docs/examples/Paint_getTextEncoding.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0d21e968e9a4c78c902ae3ef494941a0
 REG_FIDDLE(Paint_getTextEncoding, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getTextPath.cpp b/docs/examples/Paint_getTextPath.cpp
index d03146b..6aad0dc 100644
--- a/docs/examples/Paint_getTextPath.cpp
+++ b/docs/examples/Paint_getTextPath.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7c9e6a399f898d68026c1f0865e6f73e
 REG_FIDDLE(Paint_getTextPath, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getTextScaleX.cpp b/docs/examples/Paint_getTextScaleX.cpp
index c8b4d94..4de5a37 100644
--- a/docs/examples/Paint_getTextScaleX.cpp
+++ b/docs/examples/Paint_getTextScaleX.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5dc8e58f6910cb8e4de9ed60f888188b
 REG_FIDDLE(Paint_getTextScaleX, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getTextSize.cpp b/docs/examples/Paint_getTextSize.cpp
index 9a85a17..384199f 100644
--- a/docs/examples/Paint_getTextSize.cpp
+++ b/docs/examples/Paint_getTextSize.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=983e2a71ba72d4ba8c945420040b8f1c
 REG_FIDDLE(Paint_getTextSize, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getTextSkewX.cpp b/docs/examples/Paint_getTextSkewX.cpp
index 8e0b72d..a660eed 100644
--- a/docs/examples/Paint_getTextSkewX.cpp
+++ b/docs/examples/Paint_getTextSkewX.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=11c10f466dae0d1639dbb9f6a0040218
 REG_FIDDLE(Paint_getTextSkewX, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getTextWidths.cpp b/docs/examples/Paint_getTextWidths.cpp
index 43e3d15..94d10ea 100644
--- a/docs/examples/Paint_getTextWidths.cpp
+++ b/docs/examples/Paint_getTextWidths.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6b9e101f49e9c2c28755c5bdcef64dfb
 REG_FIDDLE(Paint_getTextWidths, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_getTypeface.cpp b/docs/examples/Paint_getTypeface.cpp
index 6491632..d1decd4 100644
--- a/docs/examples/Paint_getTypeface.cpp
+++ b/docs/examples/Paint_getTypeface.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5ce718e5a184baaac80e7098d7dad67b
 REG_FIDDLE(Paint_getTypeface, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_isAntiAlias.cpp b/docs/examples/Paint_isAntiAlias.cpp
index 0c9ecd7..64529ba 100644
--- a/docs/examples/Paint_isAntiAlias.cpp
+++ b/docs/examples/Paint_isAntiAlias.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d7d5f4f7da7acd5104a652f490c6f7b8
 REG_FIDDLE(Paint_isAntiAlias, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_isAutohinted.cpp b/docs/examples/Paint_isAutohinted.cpp
index 682e886..1052393 100644
--- a/docs/examples/Paint_isAutohinted.cpp
+++ b/docs/examples/Paint_isAutohinted.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=aa4781afbe3b90e7ef56a287e5b9ce1e
 REG_FIDDLE(Paint_isAutohinted, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_isDither.cpp b/docs/examples/Paint_isDither.cpp
index 8de4a6c..34ad00c 100644
--- a/docs/examples/Paint_isDither.cpp
+++ b/docs/examples/Paint_isDither.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f4ce93f6c5e7335436a985377fd980c0
 REG_FIDDLE(Paint_isDither, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_isEmbeddedBitmapText.cpp b/docs/examples/Paint_isEmbeddedBitmapText.cpp
index 9390151..8eaaac9 100644
--- a/docs/examples/Paint_isEmbeddedBitmapText.cpp
+++ b/docs/examples/Paint_isEmbeddedBitmapText.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=eba10b27b790e87183ae451b3fc5c4b1
 REG_FIDDLE(Paint_isEmbeddedBitmapText, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_isFakeBoldText.cpp b/docs/examples/Paint_isFakeBoldText.cpp
index a851e44..7c59c30 100644
--- a/docs/examples/Paint_isFakeBoldText.cpp
+++ b/docs/examples/Paint_isFakeBoldText.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f54d1f85b16073b80b9eef2e1a1d151d
 REG_FIDDLE(Paint_isFakeBoldText, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_isLCDRenderText.cpp b/docs/examples/Paint_isLCDRenderText.cpp
index a139270..be10b55 100644
--- a/docs/examples/Paint_isLCDRenderText.cpp
+++ b/docs/examples/Paint_isLCDRenderText.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=68e1fd95dd2fd06a333899d2bd2396b9
 REG_FIDDLE(Paint_isLCDRenderText, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_isLinearText.cpp b/docs/examples/Paint_isLinearText.cpp
index 25c0432..b974167 100644
--- a/docs/examples/Paint_isLinearText.cpp
+++ b/docs/examples/Paint_isLinearText.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2890ad644f980637837e6fcb386fb462
 REG_FIDDLE(Paint_isLinearText, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_isSubpixelText.cpp b/docs/examples/Paint_isSubpixelText.cpp
index a55546c..9db10bd 100644
--- a/docs/examples/Paint_isSubpixelText.cpp
+++ b/docs/examples/Paint_isSubpixelText.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=abe9afc0932e2199324ae6cbb396e67c
 REG_FIDDLE(Paint_isSubpixelText, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_measureText.cpp b/docs/examples/Paint_measureText.cpp
index 73850d4..148fa62 100644
--- a/docs/examples/Paint_measureText.cpp
+++ b/docs/examples/Paint_measureText.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=06084f609184470135a9cd9ebc5af149
 REG_FIDDLE(Paint_measureText, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_measureText_2.cpp b/docs/examples/Paint_measureText_2.cpp
index c2b56d6..22b4442 100644
--- a/docs/examples/Paint_measureText_2.cpp
+++ b/docs/examples/Paint_measureText_2.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f1139a5ddd17fd47c2f45f6e642cac76
 REG_FIDDLE(Paint_measureText_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_move_SkPaint.cpp b/docs/examples/Paint_move_SkPaint.cpp
index 556b28c..995892d 100644
--- a/docs/examples/Paint_move_SkPaint.cpp
+++ b/docs/examples/Paint_move_SkPaint.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8ed1488a503cd5282b86a51614aa90b1
 REG_FIDDLE(Paint_move_SkPaint, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_move_operator.cpp b/docs/examples/Paint_move_operator.cpp
index 4b6894f..a9d8605 100644
--- a/docs/examples/Paint_move_operator.cpp
+++ b/docs/examples/Paint_move_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9fb7459b097d713f5f1fe5675afe14f5
 REG_FIDDLE(Paint_move_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_notequal_operator.cpp b/docs/examples/Paint_notequal_operator.cpp
index 73a289a..9a8b817 100644
--- a/docs/examples/Paint_notequal_operator.cpp
+++ b/docs/examples/Paint_notequal_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b6c8484b1187f555b435ad5369833be4
 REG_FIDDLE(Paint_notequal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_nothingToDraw.cpp b/docs/examples/Paint_nothingToDraw.cpp
index f20f41c..6780fb5 100644
--- a/docs/examples/Paint_nothingToDraw.cpp
+++ b/docs/examples/Paint_nothingToDraw.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2973b05bfbb6b4c29332c8ac4fcf3995
 REG_FIDDLE(Paint_nothingToDraw, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_refColorFilter.cpp b/docs/examples/Paint_refColorFilter.cpp
index 4e9672c..edf7193 100644
--- a/docs/examples/Paint_refColorFilter.cpp
+++ b/docs/examples/Paint_refColorFilter.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b588c95fa4c86ddbc4b0546762f08297
 REG_FIDDLE(Paint_refColorFilter, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_refDrawLooper.cpp b/docs/examples/Paint_refDrawLooper.cpp
index 71bf029..d162b47 100644
--- a/docs/examples/Paint_refDrawLooper.cpp
+++ b/docs/examples/Paint_refDrawLooper.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2a3782c33f04ed17a725d0e449c6f7c3
 REG_FIDDLE(Paint_refDrawLooper, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_refImageFilter.cpp b/docs/examples/Paint_refImageFilter.cpp
index c73aec3..b1092c2 100644
--- a/docs/examples/Paint_refImageFilter.cpp
+++ b/docs/examples/Paint_refImageFilter.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=13f09088b569251547107d14ae989dc1
 REG_FIDDLE(Paint_refImageFilter, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_refMaskFilter.cpp b/docs/examples/Paint_refMaskFilter.cpp
index 371370b..9c6ef86 100644
--- a/docs/examples/Paint_refMaskFilter.cpp
+++ b/docs/examples/Paint_refMaskFilter.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=084b0dc3cebd78718c651d58f257f799
 REG_FIDDLE(Paint_refMaskFilter, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_refPathEffect.cpp b/docs/examples/Paint_refPathEffect.cpp
index 0f85d939..66ca138 100644
--- a/docs/examples/Paint_refPathEffect.cpp
+++ b/docs/examples/Paint_refPathEffect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f56039b94c702c2704c8c5100e623aca
 REG_FIDDLE(Paint_refPathEffect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_refShader.cpp b/docs/examples/Paint_refShader.cpp
index e57c295..26c63db 100644
--- a/docs/examples/Paint_refShader.cpp
+++ b/docs/examples/Paint_refShader.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=53da0295972a418cbc9607bbb17feaa8
 REG_FIDDLE(Paint_refShader, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_refTypeface.cpp b/docs/examples/Paint_refTypeface.cpp
index 8f114ff..527bcee 100644
--- a/docs/examples/Paint_refTypeface.cpp
+++ b/docs/examples/Paint_refTypeface.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8b5aa7e555a0dc31be69db7cadf471a1
 REG_FIDDLE(Paint_refTypeface, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_reset.cpp b/docs/examples/Paint_reset.cpp
index c641983..e642f93 100644
--- a/docs/examples/Paint_reset.cpp
+++ b/docs/examples/Paint_reset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ef269937ade7e7353635121d9a64f9f7
 REG_FIDDLE(Paint_reset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setARGB.cpp b/docs/examples/Paint_setARGB.cpp
index 703f0ff..ce15be1 100644
--- a/docs/examples/Paint_setARGB.cpp
+++ b/docs/examples/Paint_setARGB.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=cb62e4755789ed32f7120dc55984959d
 REG_FIDDLE(Paint_setARGB, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setAlpha.cpp b/docs/examples/Paint_setAlpha.cpp
index fb4782e..432f12a 100644
--- a/docs/examples/Paint_setAlpha.cpp
+++ b/docs/examples/Paint_setAlpha.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6ddc0360512dfb9947e75c17e6a8103d
 REG_FIDDLE(Paint_setAlpha, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setAntiAlias.cpp b/docs/examples/Paint_setAntiAlias.cpp
index 3519e7e..6969d15 100644
--- a/docs/examples/Paint_setAntiAlias.cpp
+++ b/docs/examples/Paint_setAntiAlias.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c2ff148374d01cbef845b223e725905c
 REG_FIDDLE(Paint_setAntiAlias, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setAutohinted.cpp b/docs/examples/Paint_setAutohinted.cpp
index d55f15d..a29a3e9 100644
--- a/docs/examples/Paint_setAutohinted.cpp
+++ b/docs/examples/Paint_setAutohinted.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4e185306d7de9390fe8445eed0139309
 REG_FIDDLE(Paint_setAutohinted, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setBlendMode.cpp b/docs/examples/Paint_setBlendMode.cpp
index dbaebf8..d7b7956 100644
--- a/docs/examples/Paint_setBlendMode.cpp
+++ b/docs/examples/Paint_setBlendMode.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=257c9473db7a2b3a0fb2b9e2431e59a6
 REG_FIDDLE(Paint_setBlendMode, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setColor.cpp b/docs/examples/Paint_setColor.cpp
index f0d770a..a90c7c0 100644
--- a/docs/examples/Paint_setColor.cpp
+++ b/docs/examples/Paint_setColor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6e70f18300bd676a3c056ceb6b62f8df
 REG_FIDDLE(Paint_setColor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setColor4f.cpp b/docs/examples/Paint_setColor4f.cpp
index 601d3bb..0a32e11 100644
--- a/docs/examples/Paint_setColor4f.cpp
+++ b/docs/examples/Paint_setColor4f.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=fa60859e3d03bdc117a05b32e093a8f1
 REG_FIDDLE(Paint_setColor4f, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setColorFilter.cpp b/docs/examples/Paint_setColorFilter.cpp
index 71d22d5..57e0edf 100644
--- a/docs/examples/Paint_setColorFilter.cpp
+++ b/docs/examples/Paint_setColorFilter.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c7b786dc9b3501cd0eaba47494b6fa31
 REG_FIDDLE(Paint_setColorFilter, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setDither.cpp b/docs/examples/Paint_setDither.cpp
index 093a506..de6d82d 100644
--- a/docs/examples/Paint_setDither.cpp
+++ b/docs/examples/Paint_setDither.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=69b7162e8324d9239dd02dd9ada2bdff
 REG_FIDDLE(Paint_setDither, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setDrawLooper.cpp b/docs/examples/Paint_setDrawLooper.cpp
index 612312c..75393bf 100644
--- a/docs/examples/Paint_setDrawLooper.cpp
+++ b/docs/examples/Paint_setDrawLooper.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bf10f838b330f0a3a3266d42ea68a638
 REG_FIDDLE(Paint_setDrawLooper, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setEmbeddedBitmapText.cpp b/docs/examples/Paint_setEmbeddedBitmapText.cpp
index 35683b5..a1d5b97 100644
--- a/docs/examples/Paint_setEmbeddedBitmapText.cpp
+++ b/docs/examples/Paint_setEmbeddedBitmapText.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=246dffdd93a484ba4ad7ecf71198a5d4
 REG_FIDDLE(Paint_setEmbeddedBitmapText, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setFakeBoldText.cpp b/docs/examples/Paint_setFakeBoldText.cpp
index 3015573..0f80f4e 100644
--- a/docs/examples/Paint_setFakeBoldText.cpp
+++ b/docs/examples/Paint_setFakeBoldText.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=594d47858eb11028cb626515a520910a
 REG_FIDDLE(Paint_setFakeBoldText, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setFilterQuality.cpp b/docs/examples/Paint_setFilterQuality.cpp
index 0946595..3abeb6f 100644
--- a/docs/examples/Paint_setFilterQuality.cpp
+++ b/docs/examples/Paint_setFilterQuality.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e4288fabf24ee60b645e8bb6ea0afadf
 REG_FIDDLE(Paint_setFilterQuality, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setFlags.cpp b/docs/examples/Paint_setFlags.cpp
index db4b227..50afa30 100644
--- a/docs/examples/Paint_setFlags.cpp
+++ b/docs/examples/Paint_setFlags.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=54baed3f6bc4b9c31ba664e27767fdc7
 REG_FIDDLE(Paint_setFlags, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setHinting.cpp b/docs/examples/Paint_setHinting.cpp
index 0c8c521..76734a6 100644
--- a/docs/examples/Paint_setHinting.cpp
+++ b/docs/examples/Paint_setHinting.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bb179ec5698ec1398ff18f3657ab73f7
 REG_FIDDLE(Paint_setHinting, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setImageFilter.cpp b/docs/examples/Paint_setImageFilter.cpp
index 5d0ce21..0022b8b 100644
--- a/docs/examples/Paint_setImageFilter.cpp
+++ b/docs/examples/Paint_setImageFilter.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6679d6e4ec632715ee03e68391bd7f9a
 REG_FIDDLE(Paint_setImageFilter, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setLCDRenderText.cpp b/docs/examples/Paint_setLCDRenderText.cpp
index cbbbacf..2c68961 100644
--- a/docs/examples/Paint_setLCDRenderText.cpp
+++ b/docs/examples/Paint_setLCDRenderText.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=50dedf8450159571a3edaf4f0050defe
 REG_FIDDLE(Paint_setLCDRenderText, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setLinearText.cpp b/docs/examples/Paint_setLinearText.cpp
index 18469fe..675fe7f 100644
--- a/docs/examples/Paint_setLinearText.cpp
+++ b/docs/examples/Paint_setLinearText.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c93bb912f3bddfb4d96d3ad70ada552b
 REG_FIDDLE(Paint_setLinearText, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setMaskFilter.cpp b/docs/examples/Paint_setMaskFilter.cpp
index a53bf5f..8c4c450 100644
--- a/docs/examples/Paint_setMaskFilter.cpp
+++ b/docs/examples/Paint_setMaskFilter.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a993831c40f3e134f809134e3b74e4a6
 REG_FIDDLE(Paint_setMaskFilter, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setPathEffect.cpp b/docs/examples/Paint_setPathEffect.cpp
index d3071c1..8c18831 100644
--- a/docs/examples/Paint_setPathEffect.cpp
+++ b/docs/examples/Paint_setPathEffect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=52dd55074ca0b7d520d04e750ca2a0d7
 REG_FIDDLE(Paint_setPathEffect, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setShader.cpp b/docs/examples/Paint_setShader.cpp
index 0c6f41b..da0d8fb 100644
--- a/docs/examples/Paint_setShader.cpp
+++ b/docs/examples/Paint_setShader.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=77e64d5bae9b1ba037fd99252bb4aa58
 REG_FIDDLE(Paint_setShader, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setStrokeCap_a.cpp b/docs/examples/Paint_setStrokeCap_a.cpp
index 385d045..89cf420 100644
--- a/docs/examples/Paint_setStrokeCap_a.cpp
+++ b/docs/examples/Paint_setStrokeCap_a.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=de83fbd848a4625345b4b87a6e55d98a
 REG_FIDDLE(Paint_setStrokeCap_a, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setStrokeCap_b.cpp b/docs/examples/Paint_setStrokeCap_b.cpp
index 8dd4c53..ccbe7b1 100644
--- a/docs/examples/Paint_setStrokeCap_b.cpp
+++ b/docs/examples/Paint_setStrokeCap_b.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=917c44b504d3f9308571fd3835d90a0d
 REG_FIDDLE(Paint_setStrokeCap_b, 256, 200, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setStrokeJoin.cpp b/docs/examples/Paint_setStrokeJoin.cpp
index 151239f..5f1c2d5 100644
--- a/docs/examples/Paint_setStrokeJoin.cpp
+++ b/docs/examples/Paint_setStrokeJoin.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=48d963ad4286eddf680f9c511eb6da91
 REG_FIDDLE(Paint_setStrokeJoin, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setStrokeMiter.cpp b/docs/examples/Paint_setStrokeMiter.cpp
index 4fed994..a93c955 100644
--- a/docs/examples/Paint_setStrokeMiter.cpp
+++ b/docs/examples/Paint_setStrokeMiter.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=700b284dbc97785c6a9c9636088713ad
 REG_FIDDLE(Paint_setStrokeMiter, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setStrokeWidth.cpp b/docs/examples/Paint_setStrokeWidth.cpp
index de99d49..ee908d9 100644
--- a/docs/examples/Paint_setStrokeWidth.cpp
+++ b/docs/examples/Paint_setStrokeWidth.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0c4446c0870b5c7b5a2efe77ff92afb8
 REG_FIDDLE(Paint_setStrokeWidth, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setStyle.cpp b/docs/examples/Paint_setStyle.cpp
index 05c24a9..b720aff 100644
--- a/docs/examples/Paint_setStyle.cpp
+++ b/docs/examples/Paint_setStyle.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c7bb6248e4735b8d1a32d02fba40d344
 REG_FIDDLE(Paint_setStyle, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setSubpixelText.cpp b/docs/examples/Paint_setSubpixelText.cpp
index 28e324b..ba97405 100644
--- a/docs/examples/Paint_setSubpixelText.cpp
+++ b/docs/examples/Paint_setSubpixelText.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a77bbc1a4e3be9a8ab0f842f877c5ee4
 REG_FIDDLE(Paint_setSubpixelText, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setTextEncoding.cpp b/docs/examples/Paint_setTextEncoding.cpp
index 0cba688..76ec89b 100644
--- a/docs/examples/Paint_setTextEncoding.cpp
+++ b/docs/examples/Paint_setTextEncoding.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a5d1ba0dbf42afb797ffdb07647b5cb9
 REG_FIDDLE(Paint_setTextEncoding, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setTextScaleX.cpp b/docs/examples/Paint_setTextScaleX.cpp
index 41af1f2..b7a4693 100644
--- a/docs/examples/Paint_setTextScaleX.cpp
+++ b/docs/examples/Paint_setTextScaleX.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a75bbdb8bb866b125c4c1dd5e967d470
 REG_FIDDLE(Paint_setTextScaleX, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setTextSize.cpp b/docs/examples/Paint_setTextSize.cpp
index 31fa3ca..2bfaa39 100644
--- a/docs/examples/Paint_setTextSize.cpp
+++ b/docs/examples/Paint_setTextSize.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6510c9e2f57b83c47e67829e7a68d493
 REG_FIDDLE(Paint_setTextSize, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setTextSkewX.cpp b/docs/examples/Paint_setTextSkewX.cpp
index 25e5a0b..db47588 100644
--- a/docs/examples/Paint_setTextSkewX.cpp
+++ b/docs/examples/Paint_setTextSkewX.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6bd705a6e0c5f8ee24f302fe531bfabc
 REG_FIDDLE(Paint_setTextSkewX, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_setTypeface.cpp b/docs/examples/Paint_setTypeface.cpp
index 70ab45b..c1dfc75 100644
--- a/docs/examples/Paint_setTypeface.cpp
+++ b/docs/examples/Paint_setTypeface.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0e6fbb7773cd925b274552f4cd1abef2
 REG_FIDDLE(Paint_setTypeface, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Paint_textToGlyphs.cpp b/docs/examples/Paint_textToGlyphs.cpp
index ca0bab1..861d9f3 100644
--- a/docs/examples/Paint_textToGlyphs.cpp
+++ b/docs/examples/Paint_textToGlyphs.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d11136d8a74f63009da2a7f550710823
 REG_FIDDLE(Paint_textToGlyphs, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_AddPathMode.cpp b/docs/examples/Path_AddPathMode.cpp
index 4ac6c91..8ed8d24 100644
--- a/docs/examples/Path_AddPathMode.cpp
+++ b/docs/examples/Path_AddPathMode.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=801b02e74c64aafdb734f2e5cf3e5ab0
 REG_FIDDLE(Path_AddPathMode, 256, 180, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_ArcSize.cpp b/docs/examples/Path_ArcSize.cpp
index 5c70ead..b99a237 100644
--- a/docs/examples/Path_ArcSize.cpp
+++ b/docs/examples/Path_ArcSize.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8e40c546eecd9cc213200717240898ba
 REG_FIDDLE(Path_ArcSize, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_ConvertConicToQuads.cpp b/docs/examples/Path_ConvertConicToQuads.cpp
index 46f6a88..42f27db 100644
--- a/docs/examples/Path_ConvertConicToQuads.cpp
+++ b/docs/examples/Path_ConvertConicToQuads.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3ba94448a4ba48f926e643baeb5b1016
 REG_FIDDLE(Path_ConvertConicToQuads, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_ConvertToNonInverseFillType.cpp b/docs/examples/Path_ConvertToNonInverseFillType.cpp
index ef98ee0..12e2d1f 100644
--- a/docs/examples/Path_ConvertToNonInverseFillType.cpp
+++ b/docs/examples/Path_ConvertToNonInverseFillType.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=319f6b124458dcc0f9ce4d7bbde65810
 REG_FIDDLE(Path_ConvertToNonInverseFillType, 256, 256, true, 0) {
 #define nameValue(fill) { SkPath::fill, #fill }
diff --git a/docs/examples/Path_Convexity.cpp b/docs/examples/Path_Convexity.cpp
index 2c7bd7d..08d2367 100644
--- a/docs/examples/Path_Convexity.cpp
+++ b/docs/examples/Path_Convexity.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ac49e8b810bd6ed5d84b4f5a3b40a0ec
 REG_FIDDLE(Path_Convexity, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_Direction.cpp b/docs/examples/Path_Direction.cpp
index a6ec07d..dab6ba9 100644
--- a/docs/examples/Path_Direction.cpp
+++ b/docs/examples/Path_Direction.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4bbae00b40ed2cfcd0007921ad693a7b
 REG_FIDDLE(Path_Direction, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_Effect_Methods.cpp b/docs/examples/Path_Effect_Methods.cpp
index ed0b396..3633b52 100644
--- a/docs/examples/Path_Effect_Methods.cpp
+++ b/docs/examples/Path_Effect_Methods.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8cf5684b187d60f09e11c4a48993ea39
 REG_FIDDLE(Path_Effect_Methods, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_FillType_a.cpp b/docs/examples/Path_FillType_a.cpp
index 08dadad..5931cab 100644
--- a/docs/examples/Path_FillType_a.cpp
+++ b/docs/examples/Path_FillType_a.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=71fc6c069c377d808799f2453edabaf5
 REG_FIDDLE(Path_FillType_a, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_FillType_b.cpp b/docs/examples/Path_FillType_b.cpp
index f6d64b3..6064fe0 100644
--- a/docs/examples/Path_FillType_b.cpp
+++ b/docs/examples/Path_FillType_b.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d2c33dc791cd165dcc2423226ba5b095
 REG_FIDDLE(Path_FillType_b, 256, 230, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_IsCubicDegenerate.cpp b/docs/examples/Path_IsCubicDegenerate.cpp
index 6393337..d924616 100644
--- a/docs/examples/Path_IsCubicDegenerate.cpp
+++ b/docs/examples/Path_IsCubicDegenerate.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6b97099acdae80b16df0c4241f593991
 REG_FIDDLE(Path_IsCubicDegenerate, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_IsInverseFillType.cpp b/docs/examples/Path_IsInverseFillType.cpp
index 087baa1..1b2cb10 100644
--- a/docs/examples/Path_IsInverseFillType.cpp
+++ b/docs/examples/Path_IsInverseFillType.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1453856a9d0c73e8192bf298c4143563
 REG_FIDDLE(Path_IsInverseFillType, 256, 256, true, 0) {
 #define nameValue(fill) { SkPath::fill, #fill }
diff --git a/docs/examples/Path_IsLineDegenerate.cpp b/docs/examples/Path_IsLineDegenerate.cpp
index 0591b91..fc9bf70 100644
--- a/docs/examples/Path_IsLineDegenerate.cpp
+++ b/docs/examples/Path_IsLineDegenerate.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=97a031f9186ade586928563840ce9116
 REG_FIDDLE(Path_IsLineDegenerate, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_IsQuadDegenerate.cpp b/docs/examples/Path_IsQuadDegenerate.cpp
index 9f5f070..4a6d42e 100644
--- a/docs/examples/Path_IsQuadDegenerate.cpp
+++ b/docs/examples/Path_IsQuadDegenerate.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a2b255a7dac1926cc3a247d318d63c62
 REG_FIDDLE(Path_IsQuadDegenerate, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_Iter.cpp b/docs/examples/Path_Iter.cpp
index 5eb9d52..2a9ba9d 100644
--- a/docs/examples/Path_Iter.cpp
+++ b/docs/examples/Path_Iter.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2f53df9201769ab7e7c0e164a1334309
 REG_FIDDLE(Path_Iter, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_Iter_Iter.cpp b/docs/examples/Path_Iter_Iter.cpp
index c21e1a9..bfdeac0 100644
--- a/docs/examples/Path_Iter_Iter.cpp
+++ b/docs/examples/Path_Iter_Iter.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=01648775cb9b354b2f1836dad82a25ab
 REG_FIDDLE(Path_Iter_Iter, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_Iter_conicWeight.cpp b/docs/examples/Path_Iter_conicWeight.cpp
index 72670d3..7dbb17f 100644
--- a/docs/examples/Path_Iter_conicWeight.cpp
+++ b/docs/examples/Path_Iter_conicWeight.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7cdea37741d50f0594c6244eb07fd175
 REG_FIDDLE(Path_Iter_conicWeight, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_Iter_const_SkPath.cpp b/docs/examples/Path_Iter_const_SkPath.cpp
index ede39cf..05a0fe6 100644
--- a/docs/examples/Path_Iter_const_SkPath.cpp
+++ b/docs/examples/Path_Iter_const_SkPath.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=13044dbf68885c0f15322c0633b633a3
 REG_FIDDLE(Path_Iter_const_SkPath, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_Iter_isCloseLine.cpp b/docs/examples/Path_Iter_isCloseLine.cpp
index 6097cf6..c4bba7e 100644
--- a/docs/examples/Path_Iter_isCloseLine.cpp
+++ b/docs/examples/Path_Iter_isCloseLine.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7000b501f49341629bfdd9f80e686103
 REG_FIDDLE(Path_Iter_isCloseLine, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_Iter_isClosedContour.cpp b/docs/examples/Path_Iter_isClosedContour.cpp
index e8706b0..b07b022 100644
--- a/docs/examples/Path_Iter_isClosedContour.cpp
+++ b/docs/examples/Path_Iter_isClosedContour.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b0d48a6e949db1cb545216ae9c3c3c70
 REG_FIDDLE(Path_Iter_isClosedContour, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_Iter_next.cpp b/docs/examples/Path_Iter_next.cpp
index 48e1c3a..ab1de23 100644
--- a/docs/examples/Path_Iter_next.cpp
+++ b/docs/examples/Path_Iter_next.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=00ae8984856486bdb626d0ed6587855a
 REG_FIDDLE(Path_Iter_next, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_Iter_setPath.cpp b/docs/examples/Path_Iter_setPath.cpp
index 1db1f3b..b9a24e0 100644
--- a/docs/examples/Path_Iter_setPath.cpp
+++ b/docs/examples/Path_Iter_setPath.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6c9688008cea8937ad5cc188b38ecf16
 REG_FIDDLE(Path_Iter_setPath, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_RawIter_conicWeight.cpp b/docs/examples/Path_RawIter_conicWeight.cpp
index 7d8daea..6c8d0ab 100644
--- a/docs/examples/Path_RawIter_conicWeight.cpp
+++ b/docs/examples/Path_RawIter_conicWeight.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=69f360a0ba8f40c51ef4cd9f972c5893
 REG_FIDDLE(Path_RawIter_conicWeight, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_RawIter_next.cpp b/docs/examples/Path_RawIter_next.cpp
index ce7f968..087df59 100644
--- a/docs/examples/Path_RawIter_next.cpp
+++ b/docs/examples/Path_RawIter_next.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=944a80c7ff8c04e1fecc4aec4a47ea60
 REG_FIDDLE(Path_RawIter_next, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_RawIter_peek.cpp b/docs/examples/Path_RawIter_peek.cpp
index 57f648a..a089645 100644
--- a/docs/examples/Path_RawIter_peek.cpp
+++ b/docs/examples/Path_RawIter_peek.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=eb5fa5bea23059ce538e883502f828f5
 REG_FIDDLE(Path_RawIter_peek, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_SegmentMask.cpp b/docs/examples/Path_SegmentMask.cpp
index 68f244f..ee470a0 100644
--- a/docs/examples/Path_SegmentMask.cpp
+++ b/docs/examples/Path_SegmentMask.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a61e5758574e28190ec4ed8c4ae7e7fa
 REG_FIDDLE(Path_SegmentMask, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_Verb.cpp b/docs/examples/Path_Verb.cpp
index 2af35b5..e2f6b1a 100644
--- a/docs/examples/Path_Verb.cpp
+++ b/docs/examples/Path_Verb.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=799096fdc1298aa815934a74e76570ca
 REG_FIDDLE(Path_Verb, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_addArc.cpp b/docs/examples/Path_addArc.cpp
index 30801eb..6f1be3a 100644
--- a/docs/examples/Path_addArc.cpp
+++ b/docs/examples/Path_addArc.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9cf5122475624e4cf39f06c698f80b1a
 REG_FIDDLE(Path_addArc, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_addCircle.cpp b/docs/examples/Path_addCircle.cpp
index 2c92cdf..dbea5b7 100644
--- a/docs/examples/Path_addCircle.cpp
+++ b/docs/examples/Path_addCircle.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bd5286cb9a5e5c32cd980f72b8f400fb
 REG_FIDDLE(Path_addCircle, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_addOval.cpp b/docs/examples/Path_addOval.cpp
index e1e2ee6..603df27 100644
--- a/docs/examples/Path_addOval.cpp
+++ b/docs/examples/Path_addOval.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=cac84cf68e63a453c2a8b64c91537704
 REG_FIDDLE(Path_addOval, 256, 120, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_addOval_2.cpp b/docs/examples/Path_addOval_2.cpp
index ae9de3f..ba07e54 100644
--- a/docs/examples/Path_addOval_2.cpp
+++ b/docs/examples/Path_addOval_2.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f1122d6fffddac0167e96fab4b9a862f
 REG_FIDDLE(Path_addOval_2, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_addPath.cpp b/docs/examples/Path_addPath.cpp
index b9a37f7..1768fb2 100644
--- a/docs/examples/Path_addPath.cpp
+++ b/docs/examples/Path_addPath.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c416bddfe286628974e1c7f0fd66f3f4
 REG_FIDDLE(Path_addPath, 256, 180, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_addPath_2.cpp b/docs/examples/Path_addPath_2.cpp
index 138764b..e00ff7c 100644
--- a/docs/examples/Path_addPath_2.cpp
+++ b/docs/examples/Path_addPath_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=84b2d1c0fc29f1b35e855b6fc6672f9e
 REG_FIDDLE(Path_addPath_2, 256, 80, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_addPath_3.cpp b/docs/examples/Path_addPath_3.cpp
index d0ebe97..2fb4761 100644
--- a/docs/examples/Path_addPath_3.cpp
+++ b/docs/examples/Path_addPath_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3a90a91030f7289d5df0671d342dbbad
 REG_FIDDLE(Path_addPath_3, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_addPoly.cpp b/docs/examples/Path_addPoly.cpp
index a897e28..328f141 100644
--- a/docs/examples/Path_addPoly.cpp
+++ b/docs/examples/Path_addPoly.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=182b3999772f330f3b0b891b492634ae
 REG_FIDDLE(Path_addPoly, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_addPoly_2.cpp b/docs/examples/Path_addPoly_2.cpp
index 3a23491..a5824e9 100644
--- a/docs/examples/Path_addPoly_2.cpp
+++ b/docs/examples/Path_addPoly_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1a6b69acad5ceafede3c5984ec6634cb
 REG_FIDDLE(Path_addPoly_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_addRRect.cpp b/docs/examples/Path_addRRect.cpp
index eb854dc..ee8fb09 100644
--- a/docs/examples/Path_addRRect.cpp
+++ b/docs/examples/Path_addRRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d9ecd58081b5bc77a157636fcb345dc6
 REG_FIDDLE(Path_addRRect, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_addRRect_2.cpp b/docs/examples/Path_addRRect_2.cpp
index ff518a8..2f14659 100644
--- a/docs/examples/Path_addRRect_2.cpp
+++ b/docs/examples/Path_addRRect_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=888edd4c4a91ca62ceb01bce8ab675b2
 REG_FIDDLE(Path_addRRect_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_addRect.cpp b/docs/examples/Path_addRect.cpp
index 7b37848..e51b8ef 100644
--- a/docs/examples/Path_addRect.cpp
+++ b/docs/examples/Path_addRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0f841e4eaebb613b5069800567917c2d
 REG_FIDDLE(Path_addRect, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_addRect_2.cpp b/docs/examples/Path_addRect_2.cpp
index 1a68fb6..39d1044 100644
--- a/docs/examples/Path_addRect_2.cpp
+++ b/docs/examples/Path_addRect_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9202430b3f4f5275af8eec5cc9d7baa8
 REG_FIDDLE(Path_addRect_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_addRect_3.cpp b/docs/examples/Path_addRect_3.cpp
index 674cd7c..1022328 100644
--- a/docs/examples/Path_addRect_3.cpp
+++ b/docs/examples/Path_addRect_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3837827310e8b88b8c2e128ef9fbbd65
 REG_FIDDLE(Path_addRect_3, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_addRoundRect.cpp b/docs/examples/Path_addRoundRect.cpp
index 7d78cf8..0fd62e8 100644
--- a/docs/examples/Path_addRoundRect.cpp
+++ b/docs/examples/Path_addRoundRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=24736f685f265cf533f1700c042db353
 REG_FIDDLE(Path_addRoundRect, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_addRoundRect_2.cpp b/docs/examples/Path_addRoundRect_2.cpp
index 6dcb54a..4a20735 100644
--- a/docs/examples/Path_addRoundRect_2.cpp
+++ b/docs/examples/Path_addRoundRect_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c43d70606b4ee464d2befbcf448c5e73
 REG_FIDDLE(Path_addRoundRect_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_arcTo.cpp b/docs/examples/Path_arcTo.cpp
index c93e81d..bda523b 100644
--- a/docs/examples/Path_arcTo.cpp
+++ b/docs/examples/Path_arcTo.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5f02890edaa10cb5e1a4243a82b6a382
 REG_FIDDLE(Path_arcTo, 256, 200, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_arcTo_2_a.cpp b/docs/examples/Path_arcTo_2_a.cpp
index 57163a7..12881b1 100644
--- a/docs/examples/Path_arcTo_2_a.cpp
+++ b/docs/examples/Path_arcTo_2_a.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=386000684073fccabc224d7d6dc81cd9
 REG_FIDDLE(Path_arcTo_2_a, 256, 226, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_arcTo_2_b.cpp b/docs/examples/Path_arcTo_2_b.cpp
index 145bb17..70cdf60 100644
--- a/docs/examples/Path_arcTo_2_b.cpp
+++ b/docs/examples/Path_arcTo_2_b.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=78f3c65fa900610bb52518989b547095
 REG_FIDDLE(Path_arcTo_2_b, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_arcTo_2_c.cpp b/docs/examples/Path_arcTo_2_c.cpp
index 2f81a2f..1115646 100644
--- a/docs/examples/Path_arcTo_2_c.cpp
+++ b/docs/examples/Path_arcTo_2_c.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=498360fa0a201cc5db04b1c27256358f
 REG_FIDDLE(Path_arcTo_2_c, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_arcTo_3.cpp b/docs/examples/Path_arcTo_3.cpp
index 0816c00..d5eda9f 100644
--- a/docs/examples/Path_arcTo_3.cpp
+++ b/docs/examples/Path_arcTo_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0c056264a361579c18e5d02d3172d4d4
 REG_FIDDLE(Path_arcTo_3, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_arcTo_4.cpp b/docs/examples/Path_arcTo_4.cpp
index 043e72a..8de4927 100644
--- a/docs/examples/Path_arcTo_4.cpp
+++ b/docs/examples/Path_arcTo_4.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6b6ea44f659b27918f3a6fa621bf6173
 REG_FIDDLE(Path_arcTo_4, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_close.cpp b/docs/examples/Path_close.cpp
index 74681ab..9a72c37 100644
--- a/docs/examples/Path_close.cpp
+++ b/docs/examples/Path_close.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9235f6309271d6420fa5c45dc28664c5
 REG_FIDDLE(Path_close, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_computeTightBounds.cpp b/docs/examples/Path_computeTightBounds.cpp
index 4a54c00..4e981ec 100644
--- a/docs/examples/Path_computeTightBounds.cpp
+++ b/docs/examples/Path_computeTightBounds.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9a39c56e95b19a657133b7ad1fe0cf03
 REG_FIDDLE(Path_computeTightBounds, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_conicTo.cpp b/docs/examples/Path_conicTo.cpp
index 901d184..26a4b71 100644
--- a/docs/examples/Path_conicTo.cpp
+++ b/docs/examples/Path_conicTo.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=358d9b6060b528b0923c007420f09c13
 REG_FIDDLE(Path_conicTo, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_conicTo_2.cpp b/docs/examples/Path_conicTo_2.cpp
index 4c5f5fb..97d2cbe 100644
--- a/docs/examples/Path_conicTo_2.cpp
+++ b/docs/examples/Path_conicTo_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=22d25e03b19d5bae92118877e462361b
 REG_FIDDLE(Path_conicTo_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_conservativelyContainsRect.cpp b/docs/examples/Path_conservativelyContainsRect.cpp
index 549f9ee..3a1fe60 100644
--- a/docs/examples/Path_conservativelyContainsRect.cpp
+++ b/docs/examples/Path_conservativelyContainsRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=41638d13e40fa449ece354dde5fb1941
 REG_FIDDLE(Path_conservativelyContainsRect, 256, 140, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_contains.cpp b/docs/examples/Path_contains.cpp
index 6ef4673..8cf7c97 100644
--- a/docs/examples/Path_contains.cpp
+++ b/docs/examples/Path_contains.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c0216b3f7ebd80b9589ae5728f08fc80
 REG_FIDDLE(Path_contains, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_copy_const_SkPath.cpp b/docs/examples/Path_copy_const_SkPath.cpp
index 5442aee..25d3da1 100644
--- a/docs/examples/Path_copy_const_SkPath.cpp
+++ b/docs/examples/Path_copy_const_SkPath.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=647312aacd946c8a6eabaca797140432
 REG_FIDDLE(Path_copy_const_SkPath, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_copy_operator.cpp b/docs/examples/Path_copy_operator.cpp
index e17c609..198b87d 100644
--- a/docs/examples/Path_copy_operator.cpp
+++ b/docs/examples/Path_copy_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bba288f5f77fc8e37e89d2ec08e0ac60
 REG_FIDDLE(Path_copy_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_countPoints.cpp b/docs/examples/Path_countPoints.cpp
index 2f792c5..f8ccdcd 100644
--- a/docs/examples/Path_countPoints.cpp
+++ b/docs/examples/Path_countPoints.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bca6379ccef62cb081b10db7381deb27
 REG_FIDDLE(Path_countPoints, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_countVerbs.cpp b/docs/examples/Path_countVerbs.cpp
index 67af271..d43618a 100644
--- a/docs/examples/Path_countVerbs.cpp
+++ b/docs/examples/Path_countVerbs.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=af0c66aea3ef81b709664c7007f48aae
 REG_FIDDLE(Path_countVerbs, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_cubicTo.cpp b/docs/examples/Path_cubicTo.cpp
index 1ac2569..799520d 100644
--- a/docs/examples/Path_cubicTo.cpp
+++ b/docs/examples/Path_cubicTo.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3e476378e3e0550ab134bbaf61112d98
 REG_FIDDLE(Path_cubicTo, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_cubicTo_2.cpp b/docs/examples/Path_cubicTo_2.cpp
index 3ea9538..3a42615 100644
--- a/docs/examples/Path_cubicTo_2.cpp
+++ b/docs/examples/Path_cubicTo_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d38aaf12c6ff5b8d901a2201bcee5476
 REG_FIDDLE(Path_cubicTo_2, 256, 84, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_destructor.cpp b/docs/examples/Path_destructor.cpp
index 5209407..4992a56 100644
--- a/docs/examples/Path_destructor.cpp
+++ b/docs/examples/Path_destructor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=01ad6be9b7d15a2217daea273eb3d466
 REG_FIDDLE(Path_destructor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_dump.cpp b/docs/examples/Path_dump.cpp
index 1f12b4d..041f87d 100644
--- a/docs/examples/Path_dump.cpp
+++ b/docs/examples/Path_dump.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8036d764452a62f9953af50846f0f3c0
 REG_FIDDLE(Path_dump, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_dumpHex.cpp b/docs/examples/Path_dumpHex.cpp
index 12d0f6a..2578ab5 100644
--- a/docs/examples/Path_dumpHex.cpp
+++ b/docs/examples/Path_dumpHex.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=72a92fe058e8b3be6c8a30fad7fd1266
 REG_FIDDLE(Path_dumpHex, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_dump_2.cpp b/docs/examples/Path_dump_2.cpp
index c81618f..37defe2 100644
--- a/docs/examples/Path_dump_2.cpp
+++ b/docs/examples/Path_dump_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=92e0032f85181795d1f8b5a2c8e4e4b7
 REG_FIDDLE(Path_dump_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_empty_constructor.cpp b/docs/examples/Path_empty_constructor.cpp
index 47a6a93..934945b 100644
--- a/docs/examples/Path_empty_constructor.cpp
+++ b/docs/examples/Path_empty_constructor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0a0026fca638d1cd75c0ab884e3ee1c6
 REG_FIDDLE(Path_empty_constructor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_equal_operator.cpp b/docs/examples/Path_equal_operator.cpp
index b7e59ee..89fc26f 100644
--- a/docs/examples/Path_equal_operator.cpp
+++ b/docs/examples/Path_equal_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=31883f51bb357f2ac5990d88f8b82e02
 REG_FIDDLE(Path_equal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_getBounds.cpp b/docs/examples/Path_getBounds.cpp
index 98eb8e2..2fabab1 100644
--- a/docs/examples/Path_getBounds.cpp
+++ b/docs/examples/Path_getBounds.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=45c0fc3acb74fab99d544b80eadd10ad
 REG_FIDDLE(Path_getBounds, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_getConvexity.cpp b/docs/examples/Path_getConvexity.cpp
index b67337b..ef09116 100644
--- a/docs/examples/Path_getConvexity.cpp
+++ b/docs/examples/Path_getConvexity.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a8f36f2fa90003e3691fd0da0bb0c243
 REG_FIDDLE(Path_getConvexity, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_getConvexityOrUnknown.cpp b/docs/examples/Path_getConvexityOrUnknown.cpp
index 52bdb0c..b03c8b4 100644
--- a/docs/examples/Path_getConvexityOrUnknown.cpp
+++ b/docs/examples/Path_getConvexityOrUnknown.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=111c59e9afadb940ab8f41bdc25378a4
 REG_FIDDLE(Path_getConvexityOrUnknown, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_getFillType.cpp b/docs/examples/Path_getFillType.cpp
index 54d3c30..6ac58d1 100644
--- a/docs/examples/Path_getFillType.cpp
+++ b/docs/examples/Path_getFillType.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=019af90e778914e8a109d6305ede4fc4
 REG_FIDDLE(Path_getFillType, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_getGenerationID.cpp b/docs/examples/Path_getGenerationID.cpp
index a7b2d05..91ed8bd 100644
--- a/docs/examples/Path_getGenerationID.cpp
+++ b/docs/examples/Path_getGenerationID.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a0f166715d6479f91258d854e63e586d
 REG_FIDDLE(Path_getGenerationID, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_getLastPt.cpp b/docs/examples/Path_getLastPt.cpp
index 7ed4ce1..3a42467 100644
--- a/docs/examples/Path_getLastPt.cpp
+++ b/docs/examples/Path_getLastPt.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=df8160dd7ac8aa4b40fce7286fe49952
 REG_FIDDLE(Path_getLastPt, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_getPoint.cpp b/docs/examples/Path_getPoint.cpp
index 8a39cc1..d2ebe02 100644
--- a/docs/examples/Path_getPoint.cpp
+++ b/docs/examples/Path_getPoint.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=42885f1df13de109adccc5d531f62111
 REG_FIDDLE(Path_getPoint, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_getPoints.cpp b/docs/examples/Path_getPoints.cpp
index 74d51a2..03b660c 100644
--- a/docs/examples/Path_getPoints.cpp
+++ b/docs/examples/Path_getPoints.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9bc86efda08cbcd9c6f7c5f220294a24
 REG_FIDDLE(Path_getPoints, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_getSegmentMasks.cpp b/docs/examples/Path_getSegmentMasks.cpp
index 4751235..ad734b4 100644
--- a/docs/examples/Path_getSegmentMasks.cpp
+++ b/docs/examples/Path_getSegmentMasks.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=657a3f3e11acafea92b84d6bb0c13633
 REG_FIDDLE(Path_getSegmentMasks, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_getVerbs.cpp b/docs/examples/Path_getVerbs.cpp
index 3e3f9a5..c38876e 100644
--- a/docs/examples/Path_getVerbs.cpp
+++ b/docs/examples/Path_getVerbs.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2ec66880966a6133ddd9331ce7323438
 REG_FIDDLE(Path_getVerbs, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_incReserve.cpp b/docs/examples/Path_incReserve.cpp
index 483cb7c..ee30829 100644
--- a/docs/examples/Path_incReserve.cpp
+++ b/docs/examples/Path_incReserve.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f2260f2a170a54aef5bafe5b91c121b3
 REG_FIDDLE(Path_incReserve, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_interpolate.cpp b/docs/examples/Path_interpolate.cpp
index a210601..10ba277 100644
--- a/docs/examples/Path_interpolate.cpp
+++ b/docs/examples/Path_interpolate.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=404f11c5c9c9ca8a64822d484552a473
 REG_FIDDLE(Path_interpolate, 256, 60, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_isConvex.cpp b/docs/examples/Path_isConvex.cpp
index 19d7ee1..54bc96e 100644
--- a/docs/examples/Path_isConvex.cpp
+++ b/docs/examples/Path_isConvex.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d8be8b6e59de244e4cbf58ec9554557b
 REG_FIDDLE(Path_isConvex, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_isEmpty.cpp b/docs/examples/Path_isEmpty.cpp
index e965c0b..c68bf72 100644
--- a/docs/examples/Path_isEmpty.cpp
+++ b/docs/examples/Path_isEmpty.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0b34e6d55d11586744adeb889d2a12f4
 REG_FIDDLE(Path_isEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_isFinite.cpp b/docs/examples/Path_isFinite.cpp
index 2fe07b1..1816fbc 100644
--- a/docs/examples/Path_isFinite.cpp
+++ b/docs/examples/Path_isFinite.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=dd4e4dd2aaa8039b2430729c6b3af817
 REG_FIDDLE(Path_isFinite, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_isInterpolatable.cpp b/docs/examples/Path_isInterpolatable.cpp
index 9e72687..8972e53 100644
--- a/docs/examples/Path_isInterpolatable.cpp
+++ b/docs/examples/Path_isInterpolatable.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c81fc7dfaf785c3fb77209c7f2ebe5b8
 REG_FIDDLE(Path_isInterpolatable, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_isInverseFillType_2.cpp b/docs/examples/Path_isInverseFillType_2.cpp
index ce6af38..9ed2481 100644
--- a/docs/examples/Path_isInverseFillType_2.cpp
+++ b/docs/examples/Path_isInverseFillType_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2a2d39f5da611545caa18bbcea873ab2
 REG_FIDDLE(Path_isInverseFillType_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_isLastContourClosed.cpp b/docs/examples/Path_isLastContourClosed.cpp
index 7692daa..50f1853 100644
--- a/docs/examples/Path_isLastContourClosed.cpp
+++ b/docs/examples/Path_isLastContourClosed.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=03b740ab94b9017800a52e30b5e7fee7
 REG_FIDDLE(Path_isLastContourClosed, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_isLine.cpp b/docs/examples/Path_isLine.cpp
index 00e4fa1..38d1a7e 100644
--- a/docs/examples/Path_isLine.cpp
+++ b/docs/examples/Path_isLine.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1ad07d56e4258e041606d50cad969392
 REG_FIDDLE(Path_isLine, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_isNestedFillRects.cpp b/docs/examples/Path_isNestedFillRects.cpp
index c7cc163..e80edeb 100644
--- a/docs/examples/Path_isNestedFillRects.cpp
+++ b/docs/examples/Path_isNestedFillRects.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=77e4394caf9fa083c19c21c2462efe14
 REG_FIDDLE(Path_isNestedFillRects, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_isOval.cpp b/docs/examples/Path_isOval.cpp
index 1beeaa4..e203794 100644
--- a/docs/examples/Path_isOval.cpp
+++ b/docs/examples/Path_isOval.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a51256952b183ee0f7004f2c87cbbf5b
 REG_FIDDLE(Path_isOval, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_isRRect.cpp b/docs/examples/Path_isRRect.cpp
index dca8763..ecf9e0d 100644
--- a/docs/examples/Path_isRRect.cpp
+++ b/docs/examples/Path_isRRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2aa939b90d96aff436b145a96305132c
 REG_FIDDLE(Path_isRRect, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_isRect.cpp b/docs/examples/Path_isRect.cpp
index 3e954fa..9d9a621 100644
--- a/docs/examples/Path_isRect.cpp
+++ b/docs/examples/Path_isRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=81a2aac1b8f0ff3d4c8d35ccb9149b16
 REG_FIDDLE(Path_isRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_isVolatile.cpp b/docs/examples/Path_isVolatile.cpp
index e1aedbb..7ab41bf 100644
--- a/docs/examples/Path_isVolatile.cpp
+++ b/docs/examples/Path_isVolatile.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c722ebe8ac991d77757799ce29e509e1
 REG_FIDDLE(Path_isVolatile, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_lineTo.cpp b/docs/examples/Path_lineTo.cpp
index 2a39a5d..657f055 100644
--- a/docs/examples/Path_lineTo.cpp
+++ b/docs/examples/Path_lineTo.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e311cdd451edacec33b50cc22a4dd5dc
 REG_FIDDLE(Path_lineTo, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_lineTo_2.cpp b/docs/examples/Path_lineTo_2.cpp
index 4df672b..0534d5a 100644
--- a/docs/examples/Path_lineTo_2.cpp
+++ b/docs/examples/Path_lineTo_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=41001546a7f7927d08e5a818bcc304f5
 REG_FIDDLE(Path_lineTo_2, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_moveTo.cpp b/docs/examples/Path_moveTo.cpp
index 28ad8b6..277a85a 100644
--- a/docs/examples/Path_moveTo.cpp
+++ b/docs/examples/Path_moveTo.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=84101d341e934a535a41ad6cf42218ce
 REG_FIDDLE(Path_moveTo, 140, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_moveTo_2.cpp b/docs/examples/Path_moveTo_2.cpp
index 4684ffd..8843225 100644
--- a/docs/examples/Path_moveTo_2.cpp
+++ b/docs/examples/Path_moveTo_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=cb8d37990f6e7df3bcc85e7240c81274
 REG_FIDDLE(Path_moveTo_2, 128, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_notequal_operator.cpp b/docs/examples/Path_notequal_operator.cpp
index f0d5c78..dfba8c2 100644
--- a/docs/examples/Path_notequal_operator.cpp
+++ b/docs/examples/Path_notequal_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bbbda1cc818d96c9c0d2a06c0c48902b
 REG_FIDDLE(Path_notequal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_offset.cpp b/docs/examples/Path_offset.cpp
index 26ae4c2..4315495 100644
--- a/docs/examples/Path_offset.cpp
+++ b/docs/examples/Path_offset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1d1892196ba5bda257df4f3351abd084
 REG_FIDDLE(Path_offset, 256, 60, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_offset_2.cpp b/docs/examples/Path_offset_2.cpp
index 6966ed4..f15f7a7 100644
--- a/docs/examples/Path_offset_2.cpp
+++ b/docs/examples/Path_offset_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5188d77585715db30bef228f2dfbcccd
 REG_FIDDLE(Path_offset_2, 256, 60, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_quadTo.cpp b/docs/examples/Path_quadTo.cpp
index 2731218..4973f68 100644
--- a/docs/examples/Path_quadTo.cpp
+++ b/docs/examples/Path_quadTo.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=60ee3eb747474f5781b0f0dd3a17a866
 REG_FIDDLE(Path_quadTo, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_quadTo_2.cpp b/docs/examples/Path_quadTo_2.cpp
index 5ae718c..de14f47 100644
--- a/docs/examples/Path_quadTo_2.cpp
+++ b/docs/examples/Path_quadTo_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=82621c4df8da1e589d9e627494067826
 REG_FIDDLE(Path_quadTo_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_rArcTo.cpp b/docs/examples/Path_rArcTo.cpp
index 89fe283..8244674 100644
--- a/docs/examples/Path_rArcTo.cpp
+++ b/docs/examples/Path_rArcTo.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3f76a1007416181a4848c1a87fc81dbd
 REG_FIDDLE(Path_rArcTo, 256, 108, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_rConicTo.cpp b/docs/examples/Path_rConicTo.cpp
index e1a36a5..e3ebb35 100644
--- a/docs/examples/Path_rConicTo.cpp
+++ b/docs/examples/Path_rConicTo.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3d52763e7c0e20c0b1d484a0afa622d2
 REG_FIDDLE(Path_rConicTo, 256, 140, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_rCubicTo.cpp b/docs/examples/Path_rCubicTo.cpp
index ae095e9..73b00b3 100644
--- a/docs/examples/Path_rCubicTo.cpp
+++ b/docs/examples/Path_rCubicTo.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=19f0cfc7eeba8937fe19446ec0b5f932
 REG_FIDDLE(Path_rCubicTo, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_rLineTo.cpp b/docs/examples/Path_rLineTo.cpp
index 2e093fe..b882b20 100644
--- a/docs/examples/Path_rLineTo.cpp
+++ b/docs/examples/Path_rLineTo.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6e0be0766b8ca320da51640326e608b3
 REG_FIDDLE(Path_rLineTo, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_rMoveTo.cpp b/docs/examples/Path_rMoveTo.cpp
index c8a739e..fd4e06d 100644
--- a/docs/examples/Path_rMoveTo.cpp
+++ b/docs/examples/Path_rMoveTo.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=63e32dec4b2d8440b427f368bf8313a4
 REG_FIDDLE(Path_rMoveTo, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_rQuadTo.cpp b/docs/examples/Path_rQuadTo.cpp
index f686481..ca73062 100644
--- a/docs/examples/Path_rQuadTo.cpp
+++ b/docs/examples/Path_rQuadTo.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1c1f4cdef1c572c9aa8fdf3e461191d0
 REG_FIDDLE(Path_rQuadTo, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_readFromMemory.cpp b/docs/examples/Path_readFromMemory.cpp
index 40e6a38..f576a48 100644
--- a/docs/examples/Path_readFromMemory.cpp
+++ b/docs/examples/Path_readFromMemory.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9c6edd836c573a0fd232d2b8aa11a678
 REG_FIDDLE(Path_readFromMemory, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_reset.cpp b/docs/examples/Path_reset.cpp
index 75a3c97..8448db1 100644
--- a/docs/examples/Path_reset.cpp
+++ b/docs/examples/Path_reset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8cdca35d2964bbbecb93d79a13f71c65
 REG_FIDDLE(Path_reset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_reverseAddPath.cpp b/docs/examples/Path_reverseAddPath.cpp
index 39ec7192..34e3e8c 100644
--- a/docs/examples/Path_reverseAddPath.cpp
+++ b/docs/examples/Path_reverseAddPath.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5e8513f073db09acde3ff616f6426e3d
 REG_FIDDLE(Path_reverseAddPath, 256, 200, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_rewind.cpp b/docs/examples/Path_rewind.cpp
index 9990765..6776191 100644
--- a/docs/examples/Path_rewind.cpp
+++ b/docs/examples/Path_rewind.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f1fedbb89da9c2a33a91805175663012
 REG_FIDDLE(Path_rewind, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_serialize.cpp b/docs/examples/Path_serialize.cpp
index f185c2f..205ec31 100644
--- a/docs/examples/Path_serialize.cpp
+++ b/docs/examples/Path_serialize.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2c6aff73608cd198659db6d1eeaaae4f
 REG_FIDDLE(Path_serialize, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_setConvexity.cpp b/docs/examples/Path_setConvexity.cpp
index b45a8cd..16e5c9f 100644
--- a/docs/examples/Path_setConvexity.cpp
+++ b/docs/examples/Path_setConvexity.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=875e32b4b1cb48d739325705fc0fa42c
 REG_FIDDLE(Path_setConvexity, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_setFillType.cpp b/docs/examples/Path_setFillType.cpp
index 778921c..0bed8a8 100644
--- a/docs/examples/Path_setFillType.cpp
+++ b/docs/examples/Path_setFillType.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b4a91cd7f50b2a0a0d1bec6d0ac823d2
 REG_FIDDLE(Path_setFillType, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_setIsVolatile.cpp b/docs/examples/Path_setIsVolatile.cpp
index 5d02a02..44fd3c3 100644
--- a/docs/examples/Path_setIsVolatile.cpp
+++ b/docs/examples/Path_setIsVolatile.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2049ff5141f0c80aac497618622b28af
 REG_FIDDLE(Path_setIsVolatile, 50, 50, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_setLastPt.cpp b/docs/examples/Path_setLastPt.cpp
index 726e704..3570fc1 100644
--- a/docs/examples/Path_setLastPt.cpp
+++ b/docs/examples/Path_setLastPt.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=542c5afaea5f57baa11d0561dd402e18
 REG_FIDDLE(Path_setLastPt, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_setLastPt_2.cpp b/docs/examples/Path_setLastPt_2.cpp
index d95e74d..00a97d4 100644
--- a/docs/examples/Path_setLastPt_2.cpp
+++ b/docs/examples/Path_setLastPt_2.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6fa5e8f9513b3225e106778592e27e94
 REG_FIDDLE(Path_setLastPt_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_swap.cpp b/docs/examples/Path_swap.cpp
index 4c111a7..3de8810 100644
--- a/docs/examples/Path_swap.cpp
+++ b/docs/examples/Path_swap.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4c5ebee2b5039e5faefa07ae63a15467
 REG_FIDDLE(Path_swap, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_toggleInverseFillType.cpp b/docs/examples/Path_toggleInverseFillType.cpp
index 2b747e7..bce6afe 100644
--- a/docs/examples/Path_toggleInverseFillType.cpp
+++ b/docs/examples/Path_toggleInverseFillType.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=400facce23d417bc5043c5f58404afbd
 REG_FIDDLE(Path_toggleInverseFillType, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_transform.cpp b/docs/examples/Path_transform.cpp
index 1cc5fd3..09f34e8 100644
--- a/docs/examples/Path_transform.cpp
+++ b/docs/examples/Path_transform.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=99761add116ce3b0730557224c1b0105
 REG_FIDDLE(Path_transform, 256, 200, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_transform_2.cpp b/docs/examples/Path_transform_2.cpp
index b60ecb5..82c0485 100644
--- a/docs/examples/Path_transform_2.cpp
+++ b/docs/examples/Path_transform_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c40979a3b92a30cfb7bae36abcc1d805
 REG_FIDDLE(Path_transform_2, 256, 200, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_updateBoundsCache.cpp b/docs/examples/Path_updateBoundsCache.cpp
index 9ee6e90..38a7d54 100644
--- a/docs/examples/Path_updateBoundsCache.cpp
+++ b/docs/examples/Path_updateBoundsCache.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bb761cd858e6d0ca05627262cd22ff5e
 REG_FIDDLE(Path_updateBoundsCache, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Path_writeToMemory.cpp b/docs/examples/Path_writeToMemory.cpp
index 7b0bc87..d35e011 100644
--- a/docs/examples/Path_writeToMemory.cpp
+++ b/docs/examples/Path_writeToMemory.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e5f16eda6a1c2d759556285f72598445
 REG_FIDDLE(Path_writeToMemory, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Picture_008.cpp b/docs/examples/Picture_008.cpp
index 822e7f8..69a6d75 100644
--- a/docs/examples/Picture_008.cpp
+++ b/docs/examples/Picture_008.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=30b9f1b310187db6aff720a5d67591e2
 REG_FIDDLE(Picture_008, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Picture_AbortCallback_abort.cpp b/docs/examples/Picture_AbortCallback_abort.cpp
index d43383b..9eef9f1 100644
--- a/docs/examples/Picture_AbortCallback_abort.cpp
+++ b/docs/examples/Picture_AbortCallback_abort.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=56ed920dadbf2b2967ac45fb5a9bded6
 REG_FIDDLE(Picture_AbortCallback_abort, 256, 256, false, 0) {
 class JustOneDraw : public SkPicture::AbortCallback {
diff --git a/docs/examples/Picture_MakeFromData.cpp b/docs/examples/Picture_MakeFromData.cpp
index 8eb53e8..92041e8 100644
--- a/docs/examples/Picture_MakeFromData.cpp
+++ b/docs/examples/Picture_MakeFromData.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=58b44bf47d8816782066618700afdecb
 REG_FIDDLE(Picture_MakeFromData, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Picture_MakeFromStream.cpp b/docs/examples/Picture_MakeFromStream.cpp
index 0308e0f..5508809 100644
--- a/docs/examples/Picture_MakeFromStream.cpp
+++ b/docs/examples/Picture_MakeFromStream.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=404fb42560a289c2004cad1caf3b96de
 REG_FIDDLE(Picture_MakeFromStream, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Picture_MakePlaceholder.cpp b/docs/examples/Picture_MakePlaceholder.cpp
index 8247af5..ac4d93d 100644
--- a/docs/examples/Picture_MakePlaceholder.cpp
+++ b/docs/examples/Picture_MakePlaceholder.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0d2cbf82f490ffb180e0b4531afa232c
 REG_FIDDLE(Picture_MakePlaceholder, 256, 256, false, 0) {
 class MyCanvas : public SkCanvas {
diff --git a/docs/examples/Picture_approximateBytesUsed.cpp b/docs/examples/Picture_approximateBytesUsed.cpp
index a54d2cd..9d53a85 100644
--- a/docs/examples/Picture_approximateBytesUsed.cpp
+++ b/docs/examples/Picture_approximateBytesUsed.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ececbda21218bd732394a305dba393a2
 REG_FIDDLE(Picture_approximateBytesUsed, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Picture_approximateOpCount.cpp b/docs/examples/Picture_approximateOpCount.cpp
index 10ad4dd..147087e 100644
--- a/docs/examples/Picture_approximateOpCount.cpp
+++ b/docs/examples/Picture_approximateOpCount.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4b3d879118ef770d1f11a23c6493b2c4
 REG_FIDDLE(Picture_approximateOpCount, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Picture_cullRect.cpp b/docs/examples/Picture_cullRect.cpp
index d56b55d..8658e0f 100644
--- a/docs/examples/Picture_cullRect.cpp
+++ b/docs/examples/Picture_cullRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=15bb9a9596b40c5e2045f76e8c1dcf8e
 REG_FIDDLE(Picture_cullRect, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Picture_playback.cpp b/docs/examples/Picture_playback.cpp
index 028b231..37b429a 100644
--- a/docs/examples/Picture_playback.cpp
+++ b/docs/examples/Picture_playback.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6b0ffb03ba05f526b345dc65a1c73fe4
 REG_FIDDLE(Picture_playback, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Picture_serialize.cpp b/docs/examples/Picture_serialize.cpp
index 128ebcf..1875ba6 100644
--- a/docs/examples/Picture_serialize.cpp
+++ b/docs/examples/Picture_serialize.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=dacdebe1355c884ebd3c2ea038cc7a20
 REG_FIDDLE(Picture_serialize, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Picture_serialize_2.cpp b/docs/examples/Picture_serialize_2.cpp
index 829c19d..f78b130 100644
--- a/docs/examples/Picture_serialize_2.cpp
+++ b/docs/examples/Picture_serialize_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=30b9f1b310187db6aff720a5d67591e2
 REG_FIDDLE(Picture_serialize_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Picture_uniqueID.cpp b/docs/examples/Picture_uniqueID.cpp
index e69a311..b85d95f 100644
--- a/docs/examples/Picture_uniqueID.cpp
+++ b/docs/examples/Picture_uniqueID.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8e4257245c988c600410fe4fd7293f07
 REG_FIDDLE(Picture_uniqueID, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_addr.cpp b/docs/examples/Pixmap_addr.cpp
index 9c58513..171c5fb 100644
--- a/docs/examples/Pixmap_addr.cpp
+++ b/docs/examples/Pixmap_addr.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=17bcabaaee2dbb7beba562e9ca50b55e
 REG_FIDDLE(Pixmap_addr, 256, 256, true, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_addr16.cpp b/docs/examples/Pixmap_addr16.cpp
index 954ac8a..db0a5e8 100644
--- a/docs/examples/Pixmap_addr16.cpp
+++ b/docs/examples/Pixmap_addr16.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9b16012d265c954c6de13f3fc960da52
 REG_FIDDLE(Pixmap_addr16, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_addr16_2.cpp b/docs/examples/Pixmap_addr16_2.cpp
index 8ea4730..3c6caee 100644
--- a/docs/examples/Pixmap_addr16_2.cpp
+++ b/docs/examples/Pixmap_addr16_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2c0c88a546d4ef093ab63ff72dac00b9
 REG_FIDDLE(Pixmap_addr16_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_addr32.cpp b/docs/examples/Pixmap_addr32.cpp
index 837fa48..85122ba 100644
--- a/docs/examples/Pixmap_addr32.cpp
+++ b/docs/examples/Pixmap_addr32.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6b90c7ae9f254fe4ea9ef638f893a3e6
 REG_FIDDLE(Pixmap_addr32, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_addr32_2.cpp b/docs/examples/Pixmap_addr32_2.cpp
index 53cec5d..45189f2 100644
--- a/docs/examples/Pixmap_addr32_2.cpp
+++ b/docs/examples/Pixmap_addr32_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=12f8b5ce9fb25604f33df336677f5d62
 REG_FIDDLE(Pixmap_addr32_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_addr64.cpp b/docs/examples/Pixmap_addr64.cpp
index 702c755..7a1cb23 100644
--- a/docs/examples/Pixmap_addr64.cpp
+++ b/docs/examples/Pixmap_addr64.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0d17085a4698a8a2e2235fad9041b4b4
 REG_FIDDLE(Pixmap_addr64, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_addr64_2.cpp b/docs/examples/Pixmap_addr64_2.cpp
index dee9270..bbab42e0 100644
--- a/docs/examples/Pixmap_addr64_2.cpp
+++ b/docs/examples/Pixmap_addr64_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5449f65fd7673273b0b57807fd3117ff
 REG_FIDDLE(Pixmap_addr64_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_addr8.cpp b/docs/examples/Pixmap_addr8.cpp
index 9fd3ea9..3ce4121 100644
--- a/docs/examples/Pixmap_addr8.cpp
+++ b/docs/examples/Pixmap_addr8.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9adda80b2dd1b08ec5ccf66da7c8bd91
 REG_FIDDLE(Pixmap_addr8, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_addr8_2.cpp b/docs/examples/Pixmap_addr8_2.cpp
index a07dac4..0ad7e20 100644
--- a/docs/examples/Pixmap_addr8_2.cpp
+++ b/docs/examples/Pixmap_addr8_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5b986272268ef2c52045c1856f8b6107
 REG_FIDDLE(Pixmap_addr8_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_addrF16.cpp b/docs/examples/Pixmap_addrF16.cpp
index 713b5a3..3e03882 100644
--- a/docs/examples/Pixmap_addrF16.cpp
+++ b/docs/examples/Pixmap_addrF16.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=54e8525a592f05623c33b375aebc90c1
 REG_FIDDLE(Pixmap_addrF16, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_addrF16_2.cpp b/docs/examples/Pixmap_addrF16_2.cpp
index 65119a7..f298edf 100644
--- a/docs/examples/Pixmap_addrF16_2.cpp
+++ b/docs/examples/Pixmap_addrF16_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f6076cad455bc80af5d06eb121d3b6f2
 REG_FIDDLE(Pixmap_addrF16_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_addr_2.cpp b/docs/examples/Pixmap_addr_2.cpp
index f3a8494..b8f2905 100644
--- a/docs/examples/Pixmap_addr_2.cpp
+++ b/docs/examples/Pixmap_addr_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6e6e29e860eafed77308c973400cc84d
 REG_FIDDLE(Pixmap_addr_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_alphaType.cpp b/docs/examples/Pixmap_alphaType.cpp
index d506d97..b7d03f1 100644
--- a/docs/examples/Pixmap_alphaType.cpp
+++ b/docs/examples/Pixmap_alphaType.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=070b1a60232be499eb10c6ea62371804
 REG_FIDDLE(Pixmap_alphaType, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_bounds.cpp b/docs/examples/Pixmap_bounds.cpp
index 9d0bb5b..c8b8762 100644
--- a/docs/examples/Pixmap_bounds.cpp
+++ b/docs/examples/Pixmap_bounds.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=79750fb1d898a4e5c8c828b7bc9acec5
 REG_FIDDLE(Pixmap_bounds, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_colorSpace.cpp b/docs/examples/Pixmap_colorSpace.cpp
index a1b3fbf..faf102d 100644
--- a/docs/examples/Pixmap_colorSpace.cpp
+++ b/docs/examples/Pixmap_colorSpace.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3421bb20a302d563832ba7bb45e0cc58
 REG_FIDDLE(Pixmap_colorSpace, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_colorType.cpp b/docs/examples/Pixmap_colorType.cpp
index 3aca89a..7e6deb3 100644
--- a/docs/examples/Pixmap_colorType.cpp
+++ b/docs/examples/Pixmap_colorType.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0ab5c7af272685f2ce177cc79e6b9457
 REG_FIDDLE(Pixmap_colorType, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_computeByteSize.cpp b/docs/examples/Pixmap_computeByteSize.cpp
index 447fabb..eb0e5f9 100644
--- a/docs/examples/Pixmap_computeByteSize.cpp
+++ b/docs/examples/Pixmap_computeByteSize.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=410d14ddc45d272598c5a4e52bb047de
 REG_FIDDLE(Pixmap_computeByteSize, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_computeIsOpaque.cpp b/docs/examples/Pixmap_computeIsOpaque.cpp
index 7eb76be..40ce549 100644
--- a/docs/examples/Pixmap_computeIsOpaque.cpp
+++ b/docs/examples/Pixmap_computeIsOpaque.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6ef37d5be03d0bfaec992dbb5a94c66f
 REG_FIDDLE(Pixmap_computeIsOpaque, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_const_SkImageInfo_const_star.cpp b/docs/examples/Pixmap_const_SkImageInfo_const_star.cpp
index b742c72..fe3f277 100644
--- a/docs/examples/Pixmap_const_SkImageInfo_const_star.cpp
+++ b/docs/examples/Pixmap_const_SkImageInfo_const_star.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9a00774be57d7308313b3a9073e6e696
 REG_FIDDLE(Pixmap_const_SkImageInfo_const_star, 256, 256, true, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_empty_constructor.cpp b/docs/examples/Pixmap_empty_constructor.cpp
index 146f312..201e77a 100644
--- a/docs/examples/Pixmap_empty_constructor.cpp
+++ b/docs/examples/Pixmap_empty_constructor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9547e74a9d37553a667b913ffd1312dd
 REG_FIDDLE(Pixmap_empty_constructor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_erase.cpp b/docs/examples/Pixmap_erase.cpp
index e6299e3..876ef3c 100644
--- a/docs/examples/Pixmap_erase.cpp
+++ b/docs/examples/Pixmap_erase.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a0cdbafed4786788cc90681e7b294234
 REG_FIDDLE(Pixmap_erase, 256, 50, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_erase_2.cpp b/docs/examples/Pixmap_erase_2.cpp
index 8c3a120..4e029ae 100644
--- a/docs/examples/Pixmap_erase_2.cpp
+++ b/docs/examples/Pixmap_erase_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=838202e0d49cad2eb3eeb495834f6d63
 REG_FIDDLE(Pixmap_erase_2, 256, 50, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_erase_3.cpp b/docs/examples/Pixmap_erase_3.cpp
index d0fcb1e..ec2d8e0 100644
--- a/docs/examples/Pixmap_erase_3.cpp
+++ b/docs/examples/Pixmap_erase_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f884f3f46a565f052a5e252ae2f36e9b
 REG_FIDDLE(Pixmap_erase_3, 256, 50, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_extractSubset.cpp b/docs/examples/Pixmap_extractSubset.cpp
index 946d110..5ca8223 100644
--- a/docs/examples/Pixmap_extractSubset.cpp
+++ b/docs/examples/Pixmap_extractSubset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=febdbfac6cf4cde69837643be2e1f6dd
 REG_FIDDLE(Pixmap_extractSubset, 256, 128, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_getColor.cpp b/docs/examples/Pixmap_getColor.cpp
index e5276ef..87f2432 100644
--- a/docs/examples/Pixmap_getColor.cpp
+++ b/docs/examples/Pixmap_getColor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=94ad244056dc80ecd87daae004266334
 REG_FIDDLE(Pixmap_getColor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_height.cpp b/docs/examples/Pixmap_height.cpp
index d436d2d..6457479 100644
--- a/docs/examples/Pixmap_height.cpp
+++ b/docs/examples/Pixmap_height.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4a996d32122f469d51ddd0186efb48cc
 REG_FIDDLE(Pixmap_height, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_info.cpp b/docs/examples/Pixmap_info.cpp
index a17a520..3cdddaa 100644
--- a/docs/examples/Pixmap_info.cpp
+++ b/docs/examples/Pixmap_info.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6e0f558bf7fabc655041116288559134
 REG_FIDDLE(Pixmap_info, 256, 256, true, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_isOpaque.cpp b/docs/examples/Pixmap_isOpaque.cpp
index 2c399a8..6227659 100644
--- a/docs/examples/Pixmap_isOpaque.cpp
+++ b/docs/examples/Pixmap_isOpaque.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=efd083f121e888a523455ea8a49e50d1
 REG_FIDDLE(Pixmap_isOpaque, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_readPixels.cpp b/docs/examples/Pixmap_readPixels.cpp
index 23c7c5e..fdbbdc5 100644
--- a/docs/examples/Pixmap_readPixels.cpp
+++ b/docs/examples/Pixmap_readPixels.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=df4e355c4845350daede833b4fd21ec1
 REG_FIDDLE(Pixmap_readPixels, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_readPixels_2.cpp b/docs/examples/Pixmap_readPixels_2.cpp
index f29f1a6..eb00616 100644
--- a/docs/examples/Pixmap_readPixels_2.cpp
+++ b/docs/examples/Pixmap_readPixels_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=094ca0bd37588cc7be241bb387a3e17b
 REG_FIDDLE(Pixmap_readPixels_2, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_readPixels_3.cpp b/docs/examples/Pixmap_readPixels_3.cpp
index 9698bde..9b8110b 100644
--- a/docs/examples/Pixmap_readPixels_3.cpp
+++ b/docs/examples/Pixmap_readPixels_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6ec7f7b2cc163cd29f627eef6d4b061c
 REG_FIDDLE(Pixmap_readPixels_3, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_readPixels_4.cpp b/docs/examples/Pixmap_readPixels_4.cpp
index d6615f1..fdbc5ff 100644
--- a/docs/examples/Pixmap_readPixels_4.cpp
+++ b/docs/examples/Pixmap_readPixels_4.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e18549b5ee1039cb61b0bb38c2104fc9
 REG_FIDDLE(Pixmap_readPixels_4, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_reset.cpp b/docs/examples/Pixmap_reset.cpp
index 91e77f4..07ce012 100644
--- a/docs/examples/Pixmap_reset.cpp
+++ b/docs/examples/Pixmap_reset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d9eb583c39f4f0baea79896b89245c98
 REG_FIDDLE(Pixmap_reset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_reset_2.cpp b/docs/examples/Pixmap_reset_2.cpp
index 4036640..fac026e 100644
--- a/docs/examples/Pixmap_reset_2.cpp
+++ b/docs/examples/Pixmap_reset_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9a392b753167cfa849cebeefd5a6e07d
 REG_FIDDLE(Pixmap_reset_2, 256, 64, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_rowBytes.cpp b/docs/examples/Pixmap_rowBytes.cpp
index 97cb73d..4cffbec 100644
--- a/docs/examples/Pixmap_rowBytes.cpp
+++ b/docs/examples/Pixmap_rowBytes.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=19ac8bb81854680bd408fec8cb797d5c
 REG_FIDDLE(Pixmap_rowBytes, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_rowBytesAsPixels.cpp b/docs/examples/Pixmap_rowBytesAsPixels.cpp
index 89e42d5..eb0326a 100644
--- a/docs/examples/Pixmap_rowBytesAsPixels.cpp
+++ b/docs/examples/Pixmap_rowBytesAsPixels.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6231bb212d0c231b5bc44eac626fbcb5
 REG_FIDDLE(Pixmap_rowBytesAsPixels, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_scalePixels.cpp b/docs/examples/Pixmap_scalePixels.cpp
index 5ecaba1..9e57d8e 100644
--- a/docs/examples/Pixmap_scalePixels.cpp
+++ b/docs/examples/Pixmap_scalePixels.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8e3c8a9c1d0d2e9b8bf66e24d274f792
 REG_FIDDLE(Pixmap_scalePixels, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_setColorSpace.cpp b/docs/examples/Pixmap_setColorSpace.cpp
index e6822d6..3cd0a5f 100644
--- a/docs/examples/Pixmap_setColorSpace.cpp
+++ b/docs/examples/Pixmap_setColorSpace.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=30d70aec4de17c831dba71e03dc9664a
 REG_FIDDLE(Pixmap_setColorSpace, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_shiftPerPixel.cpp b/docs/examples/Pixmap_shiftPerPixel.cpp
index 1538cc7..cd48ad9 100644
--- a/docs/examples/Pixmap_shiftPerPixel.cpp
+++ b/docs/examples/Pixmap_shiftPerPixel.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bf31ee140e2c163c3957276e6d4c4f0c
 REG_FIDDLE(Pixmap_shiftPerPixel, 256, 256, true, 0) {
 const char* color_type(SkColorType ct) {
diff --git a/docs/examples/Pixmap_width.cpp b/docs/examples/Pixmap_width.cpp
index 63f3426..a6c169e 100644
--- a/docs/examples/Pixmap_width.cpp
+++ b/docs/examples/Pixmap_width.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f68617b7153a20b2ed3d7f9ed5c6e5e4
 REG_FIDDLE(Pixmap_width, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_writable_addr.cpp b/docs/examples/Pixmap_writable_addr.cpp
index d0601a1..2c3b1b4 100644
--- a/docs/examples/Pixmap_writable_addr.cpp
+++ b/docs/examples/Pixmap_writable_addr.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=74ef460f89ed5904334d0f8883e781c4
 REG_FIDDLE(Pixmap_writable_addr, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_writable_addr16.cpp b/docs/examples/Pixmap_writable_addr16.cpp
index d44d930..29d9dcf 100644
--- a/docs/examples/Pixmap_writable_addr16.cpp
+++ b/docs/examples/Pixmap_writable_addr16.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6da54774f6432b46b47ea9013c15f280
 REG_FIDDLE(Pixmap_writable_addr16, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_writable_addr32.cpp b/docs/examples/Pixmap_writable_addr32.cpp
index 54bde5e..73039c5 100644
--- a/docs/examples/Pixmap_writable_addr32.cpp
+++ b/docs/examples/Pixmap_writable_addr32.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=086866243bf9e4c14c3b215a2aa69ad9
 REG_FIDDLE(Pixmap_writable_addr32, 256, 72, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_writable_addr64.cpp b/docs/examples/Pixmap_writable_addr64.cpp
index b5e775a..779da21 100644
--- a/docs/examples/Pixmap_writable_addr64.cpp
+++ b/docs/examples/Pixmap_writable_addr64.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=de14d8d30e4a7b6462103d0e0dd96b0b
 REG_FIDDLE(Pixmap_writable_addr64, 256, 40, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_writable_addr8.cpp b/docs/examples/Pixmap_writable_addr8.cpp
index c2ecd52..8c7aa38 100644
--- a/docs/examples/Pixmap_writable_addr8.cpp
+++ b/docs/examples/Pixmap_writable_addr8.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=809284db136748208b3efc31cd89de29
 REG_FIDDLE(Pixmap_writable_addr8, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_writable_addrF16.cpp b/docs/examples/Pixmap_writable_addrF16.cpp
index c3cf286..7962f30 100644
--- a/docs/examples/Pixmap_writable_addrF16.cpp
+++ b/docs/examples/Pixmap_writable_addrF16.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7822d78f5cacf5c04267cbbc6c6d0b80
 REG_FIDDLE(Pixmap_writable_addrF16, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Pixmap_writable_addr_2.cpp b/docs/examples/Pixmap_writable_addr_2.cpp
index 13c5759..312f77e 100644
--- a/docs/examples/Pixmap_writable_addr_2.cpp
+++ b/docs/examples/Pixmap_writable_addr_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=559eaca89c765bc8466ea1ba3331d4db
 REG_FIDDLE(Pixmap_writable_addr_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Plus.cpp b/docs/examples/Plus.cpp
index 9289c80..1d10fc1 100644
--- a/docs/examples/Plus.cpp
+++ b/docs/examples/Plus.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=05383441e510d54008402e128fc8ad2b
 REG_FIDDLE(Plus, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_CrossProduct.cpp b/docs/examples/Point_CrossProduct.cpp
index 7ab7281..c3c95a6 100644
--- a/docs/examples/Point_CrossProduct.cpp
+++ b/docs/examples/Point_CrossProduct.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8b8a4cd8a29d22bb9c5e63b70357bd65
 REG_FIDDLE(Point_CrossProduct, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_Distance.cpp b/docs/examples/Point_Distance.cpp
index ce8a31d..6781225 100644
--- a/docs/examples/Point_Distance.cpp
+++ b/docs/examples/Point_Distance.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9e0a2de2eb94dba4521d733e73f2bda5
 REG_FIDDLE(Point_Distance, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_DotProduct.cpp b/docs/examples/Point_DotProduct.cpp
index d49e10f..b13518a 100644
--- a/docs/examples/Point_DotProduct.cpp
+++ b/docs/examples/Point_DotProduct.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=496db0131a003162faba7d7f98b30340
 REG_FIDDLE(Point_DotProduct, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_Length.cpp b/docs/examples/Point_Length.cpp
index 5f5d622..5788016 100644
--- a/docs/examples/Point_Length.cpp
+++ b/docs/examples/Point_Length.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c98773d8b4509969d78cb8121e4b77f6
 REG_FIDDLE(Point_Length, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_Make.cpp b/docs/examples/Point_Make.cpp
index 5a041b0..073d8ba 100644
--- a/docs/examples/Point_Make.cpp
+++ b/docs/examples/Point_Make.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d266e70977847001f7c42f8a2513bee7
 REG_FIDDLE(Point_Make, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_Normalize.cpp b/docs/examples/Point_Normalize.cpp
index 31b14d4..1b6ebe7 100644
--- a/docs/examples/Point_Normalize.cpp
+++ b/docs/examples/Point_Normalize.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=60a08f3ce75374fc815384616d114df7
 REG_FIDDLE(Point_Normalize, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_Offset.cpp b/docs/examples/Point_Offset.cpp
index f748144..5447cad 100644
--- a/docs/examples/Point_Offset.cpp
+++ b/docs/examples/Point_Offset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f0f24726df78a5d797bcf311e694a0a3
 REG_FIDDLE(Point_Offset, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_Offset_2.cpp b/docs/examples/Point_Offset_2.cpp
index e301ea8..b497481 100644
--- a/docs/examples/Point_Offset_2.cpp
+++ b/docs/examples/Point_Offset_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=532849faa838de885b86d3ebffae3712
 REG_FIDDLE(Point_Offset_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_add_operator.cpp b/docs/examples/Point_add_operator.cpp
index 8b4eee0..ed5ee7e 100644
--- a/docs/examples/Point_add_operator.cpp
+++ b/docs/examples/Point_add_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=911a84253dfec4dabf94dbe3c71766f0
 REG_FIDDLE(Point_add_operator, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_addto_operator.cpp b/docs/examples/Point_addto_operator.cpp
index c9ec913..4db6ed1 100644
--- a/docs/examples/Point_addto_operator.cpp
+++ b/docs/examples/Point_addto_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8b4e79109e2381345258cb744881b20c
 REG_FIDDLE(Point_addto_operator, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_cross.cpp b/docs/examples/Point_cross.cpp
index 4dd8fd7..c9fd3a3 100644
--- a/docs/examples/Point_cross.cpp
+++ b/docs/examples/Point_cross.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0bc7b3997357e499817278b78bdfbf1d
 REG_FIDDLE(Point_cross, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_distanceToOrigin.cpp b/docs/examples/Point_distanceToOrigin.cpp
index 4611095..fc9d622 100644
--- a/docs/examples/Point_distanceToOrigin.cpp
+++ b/docs/examples/Point_distanceToOrigin.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=812cf26d91b1cdcd2c6b9438a8172518
 REG_FIDDLE(Point_distanceToOrigin, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_dot.cpp b/docs/examples/Point_dot.cpp
index fb436c4..f2c76a79 100644
--- a/docs/examples/Point_dot.cpp
+++ b/docs/examples/Point_dot.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=56d01ccfedd71d3c504b09afa2875d38
 REG_FIDDLE(Point_dot, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_equal_operator.cpp b/docs/examples/Point_equal_operator.cpp
index 66af868..ce5fc48 100644
--- a/docs/examples/Point_equal_operator.cpp
+++ b/docs/examples/Point_equal_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=741f793334a48a35dadf4310d7ea52cb
 REG_FIDDLE(Point_equal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_equals.cpp b/docs/examples/Point_equals.cpp
index 1bb0220..292206b 100644
--- a/docs/examples/Point_equals.cpp
+++ b/docs/examples/Point_equals.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4cecb878c8b66beffda051f26c00f817
 REG_FIDDLE(Point_equals, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_isFinite.cpp b/docs/examples/Point_isFinite.cpp
index 09e62a7..cec42ba 100644
--- a/docs/examples/Point_isFinite.cpp
+++ b/docs/examples/Point_isFinite.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=937cc166cc0e220f33fb82501141d0b3
 REG_FIDDLE(Point_isFinite, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_isZero.cpp b/docs/examples/Point_isZero.cpp
index 4721014..1cedddc 100644
--- a/docs/examples/Point_isZero.cpp
+++ b/docs/examples/Point_isZero.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=81b9665110b88ef6bcbc20464aed7da1
 REG_FIDDLE(Point_isZero, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_iset.cpp b/docs/examples/Point_iset.cpp
index 00769968..a216611 100644
--- a/docs/examples/Point_iset.cpp
+++ b/docs/examples/Point_iset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0d9e8ed734981b5b113f22c7bfde5357
 REG_FIDDLE(Point_iset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_iset_2.cpp b/docs/examples/Point_iset_2.cpp
index acb1d00..2bc3576 100644
--- a/docs/examples/Point_iset_2.cpp
+++ b/docs/examples/Point_iset_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=12b7164a769e232bb772f19c59600ee7
 REG_FIDDLE(Point_iset_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_length_2.cpp b/docs/examples/Point_length_2.cpp
index 8812004..1ec708b 100644
--- a/docs/examples/Point_length_2.cpp
+++ b/docs/examples/Point_length_2.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8363ab179447ee4b827679e20d3d81eb
 REG_FIDDLE(Point_length_2, 256, 192, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_minus_operator.cpp b/docs/examples/Point_minus_operator.cpp
index dd58a7b..03061f3 100644
--- a/docs/examples/Point_minus_operator.cpp
+++ b/docs/examples/Point_minus_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9baf247cfcd8272c0ddf6ce93f676b37
 REG_FIDDLE(Point_minus_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_multiply_operator.cpp b/docs/examples/Point_multiply_operator.cpp
index e7c8bb3..cded6b8 100644
--- a/docs/examples/Point_multiply_operator.cpp
+++ b/docs/examples/Point_multiply_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=35b3bc675779de043706ae4817ee950c
 REG_FIDDLE(Point_multiply_operator, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_multiplyby_operator.cpp b/docs/examples/Point_multiplyby_operator.cpp
index 06866ee..e02d8b0 100644
--- a/docs/examples/Point_multiplyby_operator.cpp
+++ b/docs/examples/Point_multiplyby_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3ce3db36235d80dbac4d39504cf756da
 REG_FIDDLE(Point_multiplyby_operator, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_negate.cpp b/docs/examples/Point_negate.cpp
index 0d6ed75..658bb85 100644
--- a/docs/examples/Point_negate.cpp
+++ b/docs/examples/Point_negate.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=312c0c8065ab5d0adfda80cccf2d11e6
 REG_FIDDLE(Point_negate, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_normalize_2.cpp b/docs/examples/Point_normalize_2.cpp
index dafcd88..051aab4 100644
--- a/docs/examples/Point_normalize_2.cpp
+++ b/docs/examples/Point_normalize_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d84fce292d86c7d9ef37ae2d179c03c7
 REG_FIDDLE(Point_normalize_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_notequal_operator.cpp b/docs/examples/Point_notequal_operator.cpp
index 0704fa6..64ee02e 100644
--- a/docs/examples/Point_notequal_operator.cpp
+++ b/docs/examples/Point_notequal_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8fe8572685eaa617f25a5a6767a874dc
 REG_FIDDLE(Point_notequal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_offset_3.cpp b/docs/examples/Point_offset_3.cpp
index 0a9c4e6..6c3ea10 100644
--- a/docs/examples/Point_offset_3.cpp
+++ b/docs/examples/Point_offset_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=02750ceaa874f956e6e6544ef6b858ee
 REG_FIDDLE(Point_offset_3, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_scale.cpp b/docs/examples/Point_scale.cpp
index 8e7bbc9..4315323 100644
--- a/docs/examples/Point_scale.cpp
+++ b/docs/examples/Point_scale.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=972e4e230806281adb928e068bcd8551
 REG_FIDDLE(Point_scale, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_scale_2.cpp b/docs/examples/Point_scale_2.cpp
index d857d0c..1cd18c7 100644
--- a/docs/examples/Point_scale_2.cpp
+++ b/docs/examples/Point_scale_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1060a4f27d8ef29519e6ac006ce90f2b
 REG_FIDDLE(Point_scale_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_set.cpp b/docs/examples/Point_set.cpp
index d2724a7..3efe85f 100644
--- a/docs/examples/Point_set.cpp
+++ b/docs/examples/Point_set.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d08d1e7dafcad4342d1619fdbb2f5781
 REG_FIDDLE(Point_set, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_setAbs.cpp b/docs/examples/Point_setAbs.cpp
index 893f919..297cca0 100644
--- a/docs/examples/Point_setAbs.cpp
+++ b/docs/examples/Point_setAbs.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7f70860e820b67a347cff03c00488426
 REG_FIDDLE(Point_setAbs, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_setLength.cpp b/docs/examples/Point_setLength.cpp
index 2fb4517..c36ceb7 100644
--- a/docs/examples/Point_setLength.cpp
+++ b/docs/examples/Point_setLength.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=cbe7db206ece825aa3b9b7c3256aeaf0
 REG_FIDDLE(Point_setLength, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_setLength_2.cpp b/docs/examples/Point_setLength_2.cpp
index d17bb18..4ea9a5e 100644
--- a/docs/examples/Point_setLength_2.cpp
+++ b/docs/examples/Point_setLength_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3cc0662b6fbbee1fe3442a0acfece22c
 REG_FIDDLE(Point_setLength_2, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_setNormalize.cpp b/docs/examples/Point_setNormalize.cpp
index abb42fd..39b6ab1 100644
--- a/docs/examples/Point_setNormalize.cpp
+++ b/docs/examples/Point_setNormalize.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3e4f147d143a388802484bf0d26534c2
 REG_FIDDLE(Point_setNormalize, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_subtract_operator.cpp b/docs/examples/Point_subtract_operator.cpp
index 1685e6a..65c6a28 100644
--- a/docs/examples/Point_subtract_operator.cpp
+++ b/docs/examples/Point_subtract_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b6c4943ecd0b2dccf9d220b8944009e0
 REG_FIDDLE(Point_subtract_operator, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_subtractfrom_operator.cpp b/docs/examples/Point_subtractfrom_operator.cpp
index 22d40dd..822da86 100644
--- a/docs/examples/Point_subtractfrom_operator.cpp
+++ b/docs/examples/Point_subtractfrom_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=86c0399704d8dff4091bf87b8d87d40b
 REG_FIDDLE(Point_subtractfrom_operator, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_x.cpp b/docs/examples/Point_x.cpp
index 1ae5251..03637a7 100644
--- a/docs/examples/Point_x.cpp
+++ b/docs/examples/Point_x.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9f3fe446b800ae1d940785d438634941
 REG_FIDDLE(Point_x, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Point_y.cpp b/docs/examples/Point_y.cpp
index 60675f3..63c6765 100644
--- a/docs/examples/Point_y.cpp
+++ b/docs/examples/Point_y.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4c962850c2dbea4d2325df469400680e
 REG_FIDDLE(Point_y, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/PreMultiplyARGB.cpp b/docs/examples/PreMultiplyARGB.cpp
index 8462943..4ec3fb8 100644
--- a/docs/examples/PreMultiplyARGB.cpp
+++ b/docs/examples/PreMultiplyARGB.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=756345484fd48ca0ea7b6cec350f73b8
 REG_FIDDLE(PreMultiplyARGB, 300, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/PreMultiplyColor.cpp b/docs/examples/PreMultiplyColor.cpp
index 000ff6f..0e906b0 100644
--- a/docs/examples/PreMultiplyColor.cpp
+++ b/docs/examples/PreMultiplyColor.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0bcc0f86a2aefc899f3500503dce6968
 REG_FIDDLE(PreMultiplyColor, 300, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Quad_a.cpp b/docs/examples/Quad_a.cpp
index 2aef63d..d7cdc9f 100644
--- a/docs/examples/Quad_a.cpp
+++ b/docs/examples/Quad_a.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=78ad51fa1cd33eb84a6f99061e56e067
 REG_FIDDLE(Quad_a, 256, 110, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Quad_b.cpp b/docs/examples/Quad_b.cpp
index 8c7e317..2def264 100644
--- a/docs/examples/Quad_b.cpp
+++ b/docs/examples/Quad_b.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4082f66a42df11bb20462b232b156bb6
 REG_FIDDLE(Quad_b, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RGBA4f_FromColor.cpp b/docs/examples/RGBA4f_FromColor.cpp
index 412c19e..7807aaf 100644
--- a/docs/examples/RGBA4f_FromColor.cpp
+++ b/docs/examples/RGBA4f_FromColor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=33b029064e8d1928e42a587c953d0e4e
 REG_FIDDLE(RGBA4f_FromColor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RGBA4f_equal1_operator.cpp b/docs/examples/RGBA4f_equal1_operator.cpp
index 46d4d13..e6af9dd 100644
--- a/docs/examples/RGBA4f_equal1_operator.cpp
+++ b/docs/examples/RGBA4f_equal1_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e5b34bcb7f80f2ed890cdacaa059db0d
 REG_FIDDLE(RGBA4f_equal1_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RGBA4f_notequal1_operator.cpp b/docs/examples/RGBA4f_notequal1_operator.cpp
index 311ddec..cf9e36f 100644
--- a/docs/examples/RGBA4f_notequal1_operator.cpp
+++ b/docs/examples/RGBA4f_notequal1_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=82f1a9b4c2b27aa547061786d1f33dab
 REG_FIDDLE(RGBA4f_notequal1_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RGBA4f_toSkColor.cpp b/docs/examples/RGBA4f_toSkColor.cpp
index b78b323..63d389b 100644
--- a/docs/examples/RGBA4f_toSkColor.cpp
+++ b/docs/examples/RGBA4f_toSkColor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=edc5fd18d961f7607d2bcbf7f7d427e5
 REG_FIDDLE(RGBA4f_toSkColor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RGBA4f_vec.cpp b/docs/examples/RGBA4f_vec.cpp
index 28d66fa..9490f37 100644
--- a/docs/examples/RGBA4f_vec.cpp
+++ b/docs/examples/RGBA4f_vec.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=229057023515224358a36acf15508cf6
 REG_FIDDLE(RGBA4f_vec, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RGBA4f_vec_2.cpp b/docs/examples/RGBA4f_vec_2.cpp
index 366e262..3f1d228 100644
--- a/docs/examples/RGBA4f_vec_2.cpp
+++ b/docs/examples/RGBA4f_vec_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7420bf0a7cae5c6577c4c4a4613e7e7e
 REG_FIDDLE(RGBA4f_vec_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RGBToHSV.cpp b/docs/examples/RGBToHSV.cpp
index f081c0d..d6341f8 100644
--- a/docs/examples/RGBToHSV.cpp
+++ b/docs/examples/RGBToHSV.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4fb2da4a3d9b14ca4ac24eefb0f5126a
 REG_FIDDLE(RGBToHSV, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_Corner.cpp b/docs/examples/RRect_Corner.cpp
index 91805e8..e377541 100644
--- a/docs/examples/RRect_Corner.cpp
+++ b/docs/examples/RRect_Corner.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9205393f30b156e1507e88aa27f1dd91
 REG_FIDDLE(RRect_Corner, 256, 70, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_MakeEmpty.cpp b/docs/examples/RRect_MakeEmpty.cpp
index 479349f..d5e196b 100644
--- a/docs/examples/RRect_MakeEmpty.cpp
+++ b/docs/examples/RRect_MakeEmpty.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c6c6be3b3c137226adbb5b5af9203d27
 REG_FIDDLE(RRect_MakeEmpty, 256, 90, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_MakeOval.cpp b/docs/examples/RRect_MakeOval.cpp
index 039e8f7..7ef66c5 100644
--- a/docs/examples/RRect_MakeOval.cpp
+++ b/docs/examples/RRect_MakeOval.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0b99ee38fd154f769f6031242e02fa7a
 REG_FIDDLE(RRect_MakeOval, 256, 70, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_MakeRect.cpp b/docs/examples/RRect_MakeRect.cpp
index 0fbc081..fe530d0 100644
--- a/docs/examples/RRect_MakeRect.cpp
+++ b/docs/examples/RRect_MakeRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5295b07fe4d2cdcd077979a9e19854d9
 REG_FIDDLE(RRect_MakeRect, 256, 70, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_MakeRectXY.cpp b/docs/examples/RRect_MakeRectXY.cpp
index 22e6fad..e656f0c 100644
--- a/docs/examples/RRect_MakeRectXY.cpp
+++ b/docs/examples/RRect_MakeRectXY.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2b24a1247637cbc94f8b3c77d37ed3e2
 REG_FIDDLE(RRect_MakeRectXY, 256, 70, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_Type.cpp b/docs/examples/RRect_Type.cpp
index 10c6611..12ff7cd 100644
--- a/docs/examples/RRect_Type.cpp
+++ b/docs/examples/RRect_Type.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a4233634c75b72fc7a2815ddb69bd669
 REG_FIDDLE(RRect_Type, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_contains.cpp b/docs/examples/RRect_contains.cpp
index 20f9be3..8046200 100644
--- a/docs/examples/RRect_contains.cpp
+++ b/docs/examples/RRect_contains.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0bb057140e4119234bdd2e8dd2f0fa19
 REG_FIDDLE(RRect_contains, 256, 110, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_copy_const_SkRRect.cpp b/docs/examples/RRect_copy_const_SkRRect.cpp
index 9d85a1c..32eb527 100644
--- a/docs/examples/RRect_copy_const_SkRRect.cpp
+++ b/docs/examples/RRect_copy_const_SkRRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ad8f5d49edfcee60eddfe2a955b6c5f5
 REG_FIDDLE(RRect_copy_const_SkRRect, 256, 60, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_copy_operator.cpp b/docs/examples/RRect_copy_operator.cpp
index 96d882a..770481e 100644
--- a/docs/examples/RRect_copy_operator.cpp
+++ b/docs/examples/RRect_copy_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=52926c98c1cca00606d3ea99f23fea3d
 REG_FIDDLE(RRect_copy_operator, 256, 110, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_dump.cpp b/docs/examples/RRect_dump.cpp
index 29eb737..69e8eb8 100644
--- a/docs/examples/RRect_dump.cpp
+++ b/docs/examples/RRect_dump.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=265b8d23288dc8026ff788e809360af7
 REG_FIDDLE(RRect_dump, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_dumpHex.cpp b/docs/examples/RRect_dumpHex.cpp
index 1044d26..83518d8 100644
--- a/docs/examples/RRect_dumpHex.cpp
+++ b/docs/examples/RRect_dumpHex.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c73f5e2644d949b859f05bd367883454
 REG_FIDDLE(RRect_dumpHex, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_dump_2.cpp b/docs/examples/RRect_dump_2.cpp
index 366f87a..3db3a46 100644
--- a/docs/examples/RRect_dump_2.cpp
+++ b/docs/examples/RRect_dump_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f850423c7c0c4f803d479ecd92221059
 REG_FIDDLE(RRect_dump_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_empty_constructor.cpp b/docs/examples/RRect_empty_constructor.cpp
index b42ba63..c89a2ac 100644
--- a/docs/examples/RRect_empty_constructor.cpp
+++ b/docs/examples/RRect_empty_constructor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=471e7aad0feaf9ec3a21757a317a64f5
 REG_FIDDLE(RRect_empty_constructor, 256, 60, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_equal_operator.cpp b/docs/examples/RRect_equal_operator.cpp
index e967053..96bd280 100644
--- a/docs/examples/RRect_equal_operator.cpp
+++ b/docs/examples/RRect_equal_operator.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=df181af37f1d2b06f0f45af73df7b47d
 REG_FIDDLE(RRect_equal_operator, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_getBounds.cpp b/docs/examples/RRect_getBounds.cpp
index 40c5cab..2e255d5 100644
--- a/docs/examples/RRect_getBounds.cpp
+++ b/docs/examples/RRect_getBounds.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4577e2dcb086b241bb43d8b89ee0b0dd
 REG_FIDDLE(RRect_getBounds, 256, 120, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_getSimpleRadii.cpp b/docs/examples/RRect_getSimpleRadii.cpp
index 2236d2c..411480e 100644
--- a/docs/examples/RRect_getSimpleRadii.cpp
+++ b/docs/examples/RRect_getSimpleRadii.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=81345f7619a072bb2b0cf59810fe86d0
 REG_FIDDLE(RRect_getSimpleRadii, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_getType.cpp b/docs/examples/RRect_getType.cpp
index 20403b9..edce32c 100644
--- a/docs/examples/RRect_getType.cpp
+++ b/docs/examples/RRect_getType.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ace8f4aebf90527d43e4b7291375c9ad
 REG_FIDDLE(RRect_getType, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_height.cpp b/docs/examples/RRect_height.cpp
index 8673a10..960faac 100644
--- a/docs/examples/RRect_height.cpp
+++ b/docs/examples/RRect_height.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5a3eb1755164a7becec33cec6e6eca31
 REG_FIDDLE(RRect_height, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_inset.cpp b/docs/examples/RRect_inset.cpp
index 53a125c..3dcfefe 100644
--- a/docs/examples/RRect_inset.cpp
+++ b/docs/examples/RRect_inset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f02f0110d5605dac6d14dcb8d1d8cb6e
 REG_FIDDLE(RRect_inset, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_inset_2.cpp b/docs/examples/RRect_inset_2.cpp
index 0b497b7..1503b9f 100644
--- a/docs/examples/RRect_inset_2.cpp
+++ b/docs/examples/RRect_inset_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=da61054322550a2d5ac15114da23bd23
 REG_FIDDLE(RRect_inset_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_isComplex.cpp b/docs/examples/RRect_isComplex.cpp
index 2a4e477..6ac3498 100644
--- a/docs/examples/RRect_isComplex.cpp
+++ b/docs/examples/RRect_isComplex.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b62c183dc435d1fc091111fb2f3c3f8e
 REG_FIDDLE(RRect_isComplex, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_isEmpty.cpp b/docs/examples/RRect_isEmpty.cpp
index 489c684..0994f22 100644
--- a/docs/examples/RRect_isEmpty.cpp
+++ b/docs/examples/RRect_isEmpty.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=099d79ecfbdfb0a19c10deb7201859c3
 REG_FIDDLE(RRect_isEmpty, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_isNinePatch.cpp b/docs/examples/RRect_isNinePatch.cpp
index dae70a9..54f1197 100644
--- a/docs/examples/RRect_isNinePatch.cpp
+++ b/docs/examples/RRect_isNinePatch.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=429f6dfd4cf6287df3c3c77fa7681c99
 REG_FIDDLE(RRect_isNinePatch, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_isOval.cpp b/docs/examples/RRect_isOval.cpp
index b377cd6..0a28b1c 100644
--- a/docs/examples/RRect_isOval.cpp
+++ b/docs/examples/RRect_isOval.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4dfdb28d8343958425f2c1323fe8170d
 REG_FIDDLE(RRect_isOval, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_isRect.cpp b/docs/examples/RRect_isRect.cpp
index 8d54f95..e9fb858 100644
--- a/docs/examples/RRect_isRect.cpp
+++ b/docs/examples/RRect_isRect.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bc931c9a6eb8ffe7ea8d3fb47e07a475
 REG_FIDDLE(RRect_isRect, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_isSimple.cpp b/docs/examples/RRect_isSimple.cpp
index da8443c..18d72fb 100644
--- a/docs/examples/RRect_isSimple.cpp
+++ b/docs/examples/RRect_isSimple.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f6959ea422a7c6e98ddfad216a52c707
 REG_FIDDLE(RRect_isSimple, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_isValid.cpp b/docs/examples/RRect_isValid.cpp
index c8d3833..8193aad 100644
--- a/docs/examples/RRect_isValid.cpp
+++ b/docs/examples/RRect_isValid.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8cc1f21c98c0416f7724ad218f557a00
 REG_FIDDLE(RRect_isValid, 256, 110, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_makeOffset.cpp b/docs/examples/RRect_makeOffset.cpp
index 0fb62d4..42dce45 100644
--- a/docs/examples/RRect_makeOffset.cpp
+++ b/docs/examples/RRect_makeOffset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c433aa41eaf5e419e3349fb970a08151
 REG_FIDDLE(RRect_makeOffset, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_notequal_operator.cpp b/docs/examples/RRect_notequal_operator.cpp
index 8af064d..1d24d89 100644
--- a/docs/examples/RRect_notequal_operator.cpp
+++ b/docs/examples/RRect_notequal_operator.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=505e47b3e6474ebdecdc04c3c2af2c34
 REG_FIDDLE(RRect_notequal_operator, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_offset.cpp b/docs/examples/RRect_offset.cpp
index fb27e38..d9ffdfd 100644
--- a/docs/examples/RRect_offset.cpp
+++ b/docs/examples/RRect_offset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a45cdd46ef2fe0df62d84d41713e82e2
 REG_FIDDLE(RRect_offset, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_outset.cpp b/docs/examples/RRect_outset.cpp
index 34b8437..0fb5c29 100644
--- a/docs/examples/RRect_outset.cpp
+++ b/docs/examples/RRect_outset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4d69b6d9c7726c47c42827d79fc7899c
 REG_FIDDLE(RRect_outset, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_outset_2.cpp b/docs/examples/RRect_outset_2.cpp
index cb8593b..9aa519c 100644
--- a/docs/examples/RRect_outset_2.cpp
+++ b/docs/examples/RRect_outset_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4391cced86653dcd0f84439a5c0bb3f2
 REG_FIDDLE(RRect_outset_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_radii.cpp b/docs/examples/RRect_radii.cpp
index 8bd8006..8f8f808 100644
--- a/docs/examples/RRect_radii.cpp
+++ b/docs/examples/RRect_radii.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8d5c88478528584913867ada423e0d59
 REG_FIDDLE(RRect_radii, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_readFromMemory.cpp b/docs/examples/RRect_readFromMemory.cpp
index b8038df..a1bb549 100644
--- a/docs/examples/RRect_readFromMemory.cpp
+++ b/docs/examples/RRect_readFromMemory.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=50969745cf2b23544362f4cff5592b75
 REG_FIDDLE(RRect_readFromMemory, 256, 110, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_rect.cpp b/docs/examples/RRect_rect.cpp
index 0156465..e6fd312 100644
--- a/docs/examples/RRect_rect.cpp
+++ b/docs/examples/RRect_rect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6831adf4c536047f4709c686feb10c48
 REG_FIDDLE(RRect_rect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_setEmpty.cpp b/docs/examples/RRect_setEmpty.cpp
index f013d57..61b2a40 100644
--- a/docs/examples/RRect_setEmpty.cpp
+++ b/docs/examples/RRect_setEmpty.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=44e9a9c2c5ef1af2a616086ff46a9037
 REG_FIDDLE(RRect_setEmpty, 256, 80, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_setNinePatch.cpp b/docs/examples/RRect_setNinePatch.cpp
index acd850a..0f80eee 100644
--- a/docs/examples/RRect_setNinePatch.cpp
+++ b/docs/examples/RRect_setNinePatch.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c4620df2eaba447b581688d3100053b1
 REG_FIDDLE(RRect_setNinePatch, 256, 70, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_setOval.cpp b/docs/examples/RRect_setOval.cpp
index 9072602..b54f8e7 100644
--- a/docs/examples/RRect_setOval.cpp
+++ b/docs/examples/RRect_setOval.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=cf418af29cbab6243ac16aacd1217ffe
 REG_FIDDLE(RRect_setOval, 256, 70, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_setRect.cpp b/docs/examples/RRect_setRect.cpp
index 94e57fc..ceadd42 100644
--- a/docs/examples/RRect_setRect.cpp
+++ b/docs/examples/RRect_setRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3afc3ac9bebd1d7387822cc608571e82
 REG_FIDDLE(RRect_setRect, 256, 90, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_setRectRadii.cpp b/docs/examples/RRect_setRectRadii.cpp
index 1dab17d..2004e5f 100644
--- a/docs/examples/RRect_setRectRadii.cpp
+++ b/docs/examples/RRect_setRectRadii.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=340d6c51efaa1f7f3d0dcaf8b0e90696
 REG_FIDDLE(RRect_setRectRadii, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_setRectXY.cpp b/docs/examples/RRect_setRectXY.cpp
index ebe1d53..9175a84 100644
--- a/docs/examples/RRect_setRectXY.cpp
+++ b/docs/examples/RRect_setRectXY.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6ac569e40fb68c758319e85428b9ae95
 REG_FIDDLE(RRect_setRectXY, 256, 70, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_transform.cpp b/docs/examples/RRect_transform.cpp
index d666de8..1098fe4 100644
--- a/docs/examples/RRect_transform.cpp
+++ b/docs/examples/RRect_transform.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=68a5d24f22e2d798608fce8a20e47fd0
 REG_FIDDLE(RRect_transform, 256, 110, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_type_2.cpp b/docs/examples/RRect_type_2.cpp
index 1e913dd..7b5b8cf 100644
--- a/docs/examples/RRect_type_2.cpp
+++ b/docs/examples/RRect_type_2.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1080805c8449406a4e26d694bc56d2dc
 REG_FIDDLE(RRect_type_2, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_width.cpp b/docs/examples/RRect_width.cpp
index 032da29..bbbb54a 100644
--- a/docs/examples/RRect_width.cpp
+++ b/docs/examples/RRect_width.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c675a480b41dee157f84fa2550a2a53c
 REG_FIDDLE(RRect_width, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/RRect_writeToMemory.cpp b/docs/examples/RRect_writeToMemory.cpp
index 582affc..fd1d950 100644
--- a/docs/examples/RRect_writeToMemory.cpp
+++ b/docs/examples/RRect_writeToMemory.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d6f5a3d21727ddc15e10ef4d5103ff91
 REG_FIDDLE(RRect_writeToMemory, 256, 110, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_Intersects.cpp b/docs/examples/Rect_Intersects.cpp
index 6c4350e..a2991de 100644
--- a/docs/examples/Rect_Intersects.cpp
+++ b/docs/examples/Rect_Intersects.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=795061764b10c9e05efb466c9cb60644
 REG_FIDDLE(Rect_Intersects, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_Make.cpp b/docs/examples/Rect_Make.cpp
index 702d8b4..dcc3335 100644
--- a/docs/examples/Rect_Make.cpp
+++ b/docs/examples/Rect_Make.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e866f5e4f6ac52e89acadf48e54ac8e0
 REG_FIDDLE(Rect_Make, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_MakeEmpty.cpp b/docs/examples/Rect_MakeEmpty.cpp
index e39e1f1..8145f93 100644
--- a/docs/examples/Rect_MakeEmpty.cpp
+++ b/docs/examples/Rect_MakeEmpty.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2e262d0ac4b8ef51695e0525fc3ecdf6
 REG_FIDDLE(Rect_MakeEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_MakeIWH.cpp b/docs/examples/Rect_MakeIWH.cpp
index cd1b826..8c935ce 100644
--- a/docs/examples/Rect_MakeIWH.cpp
+++ b/docs/examples/Rect_MakeIWH.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=faa660ac19eaddc3f3eab57a0bddfdcb
 REG_FIDDLE(Rect_MakeIWH, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_MakeLTRB.cpp b/docs/examples/Rect_MakeLTRB.cpp
index af37ee9..d0c2305 100644
--- a/docs/examples/Rect_MakeLTRB.cpp
+++ b/docs/examples/Rect_MakeLTRB.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=158b8dd9d02d65a5ae5ab7d1595a5b4c
 REG_FIDDLE(Rect_MakeLTRB, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_MakeSize.cpp b/docs/examples/Rect_MakeSize.cpp
index 25c1271..53f384f 100644
--- a/docs/examples/Rect_MakeSize.cpp
+++ b/docs/examples/Rect_MakeSize.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ab2c1a55016c8de9172b77fdf69e00a2
 REG_FIDDLE(Rect_MakeSize, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_MakeWH.cpp b/docs/examples/Rect_MakeWH.cpp
index 3c89c1c..53af4fd 100644
--- a/docs/examples/Rect_MakeWH.cpp
+++ b/docs/examples/Rect_MakeWH.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8009d30f431e01f8aea4808e9017d9bf
 REG_FIDDLE(Rect_MakeWH, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_MakeXYWH.cpp b/docs/examples/Rect_MakeXYWH.cpp
index 3fc0588..e7b9f83 100644
--- a/docs/examples/Rect_MakeXYWH.cpp
+++ b/docs/examples/Rect_MakeXYWH.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=38e464dba13be11ac21e210fbf3b5afc
 REG_FIDDLE(Rect_MakeXYWH, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_Make_2.cpp b/docs/examples/Rect_Make_2.cpp
index d1fbda1..3bd9492 100644
--- a/docs/examples/Rect_Make_2.cpp
+++ b/docs/examples/Rect_Make_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=dd801faa1e60a0fe9e0657674461e063
 REG_FIDDLE(Rect_Make_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_asScalars.cpp b/docs/examples/Rect_asScalars.cpp
index 8ede918..fac6987 100644
--- a/docs/examples/Rect_asScalars.cpp
+++ b/docs/examples/Rect_asScalars.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e1ea5f949d80276f3637931eae93a07c
 REG_FIDDLE(Rect_asScalars, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_bottom.cpp b/docs/examples/Rect_bottom.cpp
index 0f562bf..43cdfe6 100644
--- a/docs/examples/Rect_bottom.cpp
+++ b/docs/examples/Rect_bottom.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a98993a66616ae406d8bdc54adfb1411
 REG_FIDDLE(Rect_bottom, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_centerX.cpp b/docs/examples/Rect_centerX.cpp
index bd7f9e1..8bbe415 100644
--- a/docs/examples/Rect_centerX.cpp
+++ b/docs/examples/Rect_centerX.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d8439ba8d23a424fa032fb97147fd2d2
 REG_FIDDLE(Rect_centerX, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_centerY.cpp b/docs/examples/Rect_centerY.cpp
index 18ab4f8..d3854d0 100644
--- a/docs/examples/Rect_centerY.cpp
+++ b/docs/examples/Rect_centerY.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ebeeafafeb8fe39d5ffc9115b02c2340
 REG_FIDDLE(Rect_centerY, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_contains.cpp b/docs/examples/Rect_contains.cpp
index 2d9348b..5536ddb 100644
--- a/docs/examples/Rect_contains.cpp
+++ b/docs/examples/Rect_contains.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=85be528a78945a6dc4f7dccb80a80746
 REG_FIDDLE(Rect_contains, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_contains_2.cpp b/docs/examples/Rect_contains_2.cpp
index d61d8b4..db53872 100644
--- a/docs/examples/Rect_contains_2.cpp
+++ b/docs/examples/Rect_contains_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=92f9e6aa5bb76791139a24cf7d8df99e
 REG_FIDDLE(Rect_contains_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_contains_3.cpp b/docs/examples/Rect_contains_3.cpp
index 423b68a..8490a06 100644
--- a/docs/examples/Rect_contains_3.cpp
+++ b/docs/examples/Rect_contains_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=dd58b699551dd44026a2c6386be27d88
 REG_FIDDLE(Rect_contains_3, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_dump.cpp b/docs/examples/Rect_dump.cpp
index 30d4f04..ccb8149 100644
--- a/docs/examples/Rect_dump.cpp
+++ b/docs/examples/Rect_dump.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=cea049ffff702a5923da41fe0ae0763b
 REG_FIDDLE(Rect_dump, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_dumpHex.cpp b/docs/examples/Rect_dumpHex.cpp
index 771c32d..baceda1 100644
--- a/docs/examples/Rect_dumpHex.cpp
+++ b/docs/examples/Rect_dumpHex.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=824b5a3fcfd46a7e1c5f9e3c16e6bb39
 REG_FIDDLE(Rect_dumpHex, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_dump_2.cpp b/docs/examples/Rect_dump_2.cpp
index 220736e..b37f01c 100644
--- a/docs/examples/Rect_dump_2.cpp
+++ b/docs/examples/Rect_dump_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9fb76971b1a104a2a59816e0392267a7
 REG_FIDDLE(Rect_dump_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_equal_operator.cpp b/docs/examples/Rect_equal_operator.cpp
index 16b4b86..d44dddc 100644
--- a/docs/examples/Rect_equal_operator.cpp
+++ b/docs/examples/Rect_equal_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c6c5b40cad7c3a839fdf576b380391a6
 REG_FIDDLE(Rect_equal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_height.cpp b/docs/examples/Rect_height.cpp
index d0827ec..5ade27f 100644
--- a/docs/examples/Rect_height.cpp
+++ b/docs/examples/Rect_height.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=39429e45f05240218ecd511443ab3e44
 REG_FIDDLE(Rect_height, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_inset.cpp b/docs/examples/Rect_inset.cpp
index 964d81e..2db6e6c 100644
--- a/docs/examples/Rect_inset.cpp
+++ b/docs/examples/Rect_inset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=dae21340941dc6e4d048816dfd9f204c
 REG_FIDDLE(Rect_inset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_intersect.cpp b/docs/examples/Rect_intersect.cpp
index e9d7f91..eb490bb 100644
--- a/docs/examples/Rect_intersect.cpp
+++ b/docs/examples/Rect_intersect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5d0b12e0ef6f1c181dddded4274230ca
 REG_FIDDLE(Rect_intersect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_intersect_2.cpp b/docs/examples/Rect_intersect_2.cpp
index e79b33a..fe02b1b 100644
--- a/docs/examples/Rect_intersect_2.cpp
+++ b/docs/examples/Rect_intersect_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5002f65a72def2787086a33131933e70
 REG_FIDDLE(Rect_intersect_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_intersect_3.cpp b/docs/examples/Rect_intersect_3.cpp
index 76751b0..f41306f 100644
--- a/docs/examples/Rect_intersect_3.cpp
+++ b/docs/examples/Rect_intersect_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d610437a65dd3e952719efe605cbd0c7
 REG_FIDDLE(Rect_intersect_3, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_intersects_2.cpp b/docs/examples/Rect_intersects_2.cpp
index 3e629ff..b5d29b9 100644
--- a/docs/examples/Rect_intersects_2.cpp
+++ b/docs/examples/Rect_intersects_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ca37b4231b21eb8296cb19ba9e0c781b
 REG_FIDDLE(Rect_intersects_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_intersects_3.cpp b/docs/examples/Rect_intersects_3.cpp
index e845bff..51ead19 100644
--- a/docs/examples/Rect_intersects_3.cpp
+++ b/docs/examples/Rect_intersects_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=7145dc17ebce4f54e892102f6c98e811
 REG_FIDDLE(Rect_intersects_3, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_isEmpty.cpp b/docs/examples/Rect_isEmpty.cpp
index 863911c..0bcf71d 100644
--- a/docs/examples/Rect_isEmpty.cpp
+++ b/docs/examples/Rect_isEmpty.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1d7b924d6ca2a6aef09684a8a632439c
 REG_FIDDLE(Rect_isEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_isFinite.cpp b/docs/examples/Rect_isFinite.cpp
index 266857d..1cb05b9 100644
--- a/docs/examples/Rect_isFinite.cpp
+++ b/docs/examples/Rect_isFinite.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=443fe5f8296d4cdb19cc9862a9cf77a4
 REG_FIDDLE(Rect_isFinite, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_isSorted.cpp b/docs/examples/Rect_isSorted.cpp
index 4438f07..03db09b 100644
--- a/docs/examples/Rect_isSorted.cpp
+++ b/docs/examples/Rect_isSorted.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c7065a83b220a96f903dbbb65906fe7b
 REG_FIDDLE(Rect_isSorted, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_iset.cpp b/docs/examples/Rect_iset.cpp
index 932bec1..28e6d79 100644
--- a/docs/examples/Rect_iset.cpp
+++ b/docs/examples/Rect_iset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=18532f1aa90b76364fb8d7ea072f1892
 REG_FIDDLE(Rect_iset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_isetWH.cpp b/docs/examples/Rect_isetWH.cpp
index 366533a..19a23f9 100644
--- a/docs/examples/Rect_isetWH.cpp
+++ b/docs/examples/Rect_isetWH.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ee6000080fc7123214ea404018cf9176
 REG_FIDDLE(Rect_isetWH, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_join.cpp b/docs/examples/Rect_join.cpp
index d6750f2..341e3812 100644
--- a/docs/examples/Rect_join.cpp
+++ b/docs/examples/Rect_join.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=afa9c6b4d05bb669db07fe0b7b97e6aa
 REG_FIDDLE(Rect_join, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_joinNonEmptyArg.cpp b/docs/examples/Rect_joinNonEmptyArg.cpp
index 443d1ed..aed8cdf 100644
--- a/docs/examples/Rect_joinNonEmptyArg.cpp
+++ b/docs/examples/Rect_joinNonEmptyArg.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=88439de2aa0911262c60c0eb506396cb
 REG_FIDDLE(Rect_joinNonEmptyArg, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_joinPossiblyEmptyRect.cpp b/docs/examples/Rect_joinPossiblyEmptyRect.cpp
index 1ca5b13..b1e2e36 100644
--- a/docs/examples/Rect_joinPossiblyEmptyRect.cpp
+++ b/docs/examples/Rect_joinPossiblyEmptyRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a476548d0001296afd8e58c1eba1b70b
 REG_FIDDLE(Rect_joinPossiblyEmptyRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_join_2.cpp b/docs/examples/Rect_join_2.cpp
index 8052701..98c3e87 100644
--- a/docs/examples/Rect_join_2.cpp
+++ b/docs/examples/Rect_join_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=26500032494cf93c5fa3423110fe82af
 REG_FIDDLE(Rect_join_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_left.cpp b/docs/examples/Rect_left.cpp
index 27a2408..b66cbcb 100644
--- a/docs/examples/Rect_left.cpp
+++ b/docs/examples/Rect_left.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=900dc96c3549795a87036d6458c4fde6
 REG_FIDDLE(Rect_left, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_makeInset.cpp b/docs/examples/Rect_makeInset.cpp
index c2a0065..2cc6b22 100644
--- a/docs/examples/Rect_makeInset.cpp
+++ b/docs/examples/Rect_makeInset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b8d32ab2f7ea3d4d5fb5a4ea2156f1c5
 REG_FIDDLE(Rect_makeInset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_makeOffset.cpp b/docs/examples/Rect_makeOffset.cpp
index 6160828..f7f0cef 100644
--- a/docs/examples/Rect_makeOffset.cpp
+++ b/docs/examples/Rect_makeOffset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=98841ab0a932f99cccd8e6a34d94ba05
 REG_FIDDLE(Rect_makeOffset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_makeOutset.cpp b/docs/examples/Rect_makeOutset.cpp
index 41c4d67..ff985cf 100644
--- a/docs/examples/Rect_makeOutset.cpp
+++ b/docs/examples/Rect_makeOutset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=87176fc60914cbca9c6a20998a033c24
 REG_FIDDLE(Rect_makeOutset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_makeSorted.cpp b/docs/examples/Rect_makeSorted.cpp
index 891c4fa..47539e4 100644
--- a/docs/examples/Rect_makeSorted.cpp
+++ b/docs/examples/Rect_makeSorted.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f59567042b87f6b26f9bfeeb04468032
 REG_FIDDLE(Rect_makeSorted, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_notequal_operator.cpp b/docs/examples/Rect_notequal_operator.cpp
index 2c0e454..295fe8a 100644
--- a/docs/examples/Rect_notequal_operator.cpp
+++ b/docs/examples/Rect_notequal_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=286072f8c27ff15be9eb945fa38dc9f7
 REG_FIDDLE(Rect_notequal_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_offset.cpp b/docs/examples/Rect_offset.cpp
index 06fdcd8..fc75962 100644
--- a/docs/examples/Rect_offset.cpp
+++ b/docs/examples/Rect_offset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=04eb33f0fd376f2942ca5f1c7f6cbcfc
 REG_FIDDLE(Rect_offset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_offsetTo.cpp b/docs/examples/Rect_offsetTo.cpp
index 21e1f24..61366ae 100644
--- a/docs/examples/Rect_offsetTo.cpp
+++ b/docs/examples/Rect_offsetTo.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bedb04b7b3e1af3e8039f9cffe66989e
 REG_FIDDLE(Rect_offsetTo, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_offset_2.cpp b/docs/examples/Rect_offset_2.cpp
index 4f9c783..15cda68 100644
--- a/docs/examples/Rect_offset_2.cpp
+++ b/docs/examples/Rect_offset_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b24cf65561c98c1858a06c39f10fb797
 REG_FIDDLE(Rect_offset_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_outset.cpp b/docs/examples/Rect_outset.cpp
index 46da1c4..886a696 100644
--- a/docs/examples/Rect_outset.cpp
+++ b/docs/examples/Rect_outset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=861f873ba660af8c8bf8b0b83d829cf4
 REG_FIDDLE(Rect_outset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_right.cpp b/docs/examples/Rect_right.cpp
index 96c37ba..bc38d54 100644
--- a/docs/examples/Rect_right.cpp
+++ b/docs/examples/Rect_right.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ca3de7e5e292b3ad3633b1c39a31d3ab
 REG_FIDDLE(Rect_right, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_round.cpp b/docs/examples/Rect_round.cpp
index 7d41206..6e1f988 100644
--- a/docs/examples/Rect_round.cpp
+++ b/docs/examples/Rect_round.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8b9e5a9af0a9b878f76919534d88f41e
 REG_FIDDLE(Rect_round, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_roundIn.cpp b/docs/examples/Rect_roundIn.cpp
index 3eca5fa..193fe85 100644
--- a/docs/examples/Rect_roundIn.cpp
+++ b/docs/examples/Rect_roundIn.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=abb337da8fc1891f016c61258681c64c
 REG_FIDDLE(Rect_roundIn, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_roundOut.cpp b/docs/examples/Rect_roundOut.cpp
index cb03091..154e471 100644
--- a/docs/examples/Rect_roundOut.cpp
+++ b/docs/examples/Rect_roundOut.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0bd13d7e6426ae7a3befa2ab151ac5fc
 REG_FIDDLE(Rect_roundOut, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_roundOut_2.cpp b/docs/examples/Rect_roundOut_2.cpp
index 515e695..c4f4d16 100644
--- a/docs/examples/Rect_roundOut_2.cpp
+++ b/docs/examples/Rect_roundOut_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e09a6a12869a8ac21e9c2af98a5bb686
 REG_FIDDLE(Rect_roundOut_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_roundOut_3.cpp b/docs/examples/Rect_roundOut_3.cpp
index 3a9aab7..43affa2 100644
--- a/docs/examples/Rect_roundOut_3.cpp
+++ b/docs/examples/Rect_roundOut_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=05f0f65ae148f192656cd87df90f1d57
 REG_FIDDLE(Rect_roundOut_3, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_round_2.cpp b/docs/examples/Rect_round_2.cpp
index 2c27c9a..2429983 100644
--- a/docs/examples/Rect_round_2.cpp
+++ b/docs/examples/Rect_round_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ef7ae1dd522c235b0afe41b55a624f46
 REG_FIDDLE(Rect_round_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_set.cpp b/docs/examples/Rect_set.cpp
index 241fcff..a78f297 100644
--- a/docs/examples/Rect_set.cpp
+++ b/docs/examples/Rect_set.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a10ad8d97062bc3f40942f47e5108917
 REG_FIDDLE(Rect_set, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_setBounds.cpp b/docs/examples/Rect_setBounds.cpp
index 95bdec4d..74aa2d3 100644
--- a/docs/examples/Rect_setBounds.cpp
+++ b/docs/examples/Rect_setBounds.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=cf0da15f48aa54fd1889e7f913601710
 REG_FIDDLE(Rect_setBounds, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_setBoundsCheck.cpp b/docs/examples/Rect_setBoundsCheck.cpp
index 6c15913..7945caf 100644
--- a/docs/examples/Rect_setBoundsCheck.cpp
+++ b/docs/examples/Rect_setBoundsCheck.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=83d879b92683b15f9daaf0c9e71c5b35
 REG_FIDDLE(Rect_setBoundsCheck, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_setBoundsNoCheck.cpp b/docs/examples/Rect_setBoundsNoCheck.cpp
index 1a36e80..247a731 100644
--- a/docs/examples/Rect_setBoundsNoCheck.cpp
+++ b/docs/examples/Rect_setBoundsNoCheck.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=be10cb1411dbcf7e38e0198e8a9b8b0e
 REG_FIDDLE(Rect_setBoundsNoCheck, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_setEmpty.cpp b/docs/examples/Rect_setEmpty.cpp
index 48a6013..938c85f 100644
--- a/docs/examples/Rect_setEmpty.cpp
+++ b/docs/examples/Rect_setEmpty.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2cf67542d45ef5d7a7efb673b651ff54
 REG_FIDDLE(Rect_setEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_setLTRB.cpp b/docs/examples/Rect_setLTRB.cpp
index ee9a668..1dc8c02 100644
--- a/docs/examples/Rect_setLTRB.cpp
+++ b/docs/examples/Rect_setLTRB.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=70692838793454c8e045d6eaf7edcbff
 REG_FIDDLE(Rect_setLTRB, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_setWH.cpp b/docs/examples/Rect_setWH.cpp
index 9eac42f..3bb7cc5 100644
--- a/docs/examples/Rect_setWH.cpp
+++ b/docs/examples/Rect_setWH.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9cb5fee17802fa49341f3707bdf5d235
 REG_FIDDLE(Rect_setWH, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_setXYWH.cpp b/docs/examples/Rect_setXYWH.cpp
index c6c7137..0fc1937 100644
--- a/docs/examples/Rect_setXYWH.cpp
+++ b/docs/examples/Rect_setXYWH.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=373cce4c61b9da0384b735b838765163
 REG_FIDDLE(Rect_setXYWH, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_set_2.cpp b/docs/examples/Rect_set_2.cpp
index 80a47c7..0179a3e 100644
--- a/docs/examples/Rect_set_2.cpp
+++ b/docs/examples/Rect_set_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9b29ea460d69b4d47323fd9e3e17721e
 REG_FIDDLE(Rect_set_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_set_3.cpp b/docs/examples/Rect_set_3.cpp
index 24351b9..0a78941 100644
--- a/docs/examples/Rect_set_3.cpp
+++ b/docs/examples/Rect_set_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=94295fa5197e21256171b99b4023dd48
 REG_FIDDLE(Rect_set_3, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_set_4.cpp b/docs/examples/Rect_set_4.cpp
index 228df0f..b849ab1 100644
--- a/docs/examples/Rect_set_4.cpp
+++ b/docs/examples/Rect_set_4.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ee72450381f768f3869153cdbeccdc3e
 REG_FIDDLE(Rect_set_4, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_sort.cpp b/docs/examples/Rect_sort.cpp
index 8b19973..cc46f87 100644
--- a/docs/examples/Rect_sort.cpp
+++ b/docs/examples/Rect_sort.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e624fe398e3d770b573c09fc74c0c400
 REG_FIDDLE(Rect_sort, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_toQuad.cpp b/docs/examples/Rect_toQuad.cpp
index bfc98b6..970a9a6 100644
--- a/docs/examples/Rect_toQuad.cpp
+++ b/docs/examples/Rect_toQuad.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=59a6e7d202ac17ab80ec21b233e51f59
 REG_FIDDLE(Rect_toQuad, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_top.cpp b/docs/examples/Rect_top.cpp
index 2ac0be3..98899c2 100644
--- a/docs/examples/Rect_top.cpp
+++ b/docs/examples/Rect_top.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3cfc24b011aef1ca8ccb57c05711620c
 REG_FIDDLE(Rect_top, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_width.cpp b/docs/examples/Rect_width.cpp
index 90c2e35..967911a 100644
--- a/docs/examples/Rect_width.cpp
+++ b/docs/examples/Rect_width.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=11f8f0efe6291019fee0ac17844f6c1a
 REG_FIDDLE(Rect_width, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_x.cpp b/docs/examples/Rect_x.cpp
index d73b058..65c34cc 100644
--- a/docs/examples/Rect_x.cpp
+++ b/docs/examples/Rect_x.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=23c77a35ac54a439a2989f840aa5cb99
 REG_FIDDLE(Rect_x, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Rect_y.cpp b/docs/examples/Rect_y.cpp
index adf2cfb..ece9a5b 100644
--- a/docs/examples/Rect_y.cpp
+++ b/docs/examples/Rect_y.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c653d9017983d2a047b1fee6a481d82b
 REG_FIDDLE(Rect_y, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_Cliperator_const_SkRegion_const_SkIRect.cpp b/docs/examples/Region_Cliperator_const_SkRegion_const_SkIRect.cpp
index a29d8bd..c1e453d 100644
--- a/docs/examples/Region_Cliperator_const_SkRegion_const_SkIRect.cpp
+++ b/docs/examples/Region_Cliperator_const_SkRegion_const_SkIRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3831fb6006a7e0ad5d140c266c22be78
 REG_FIDDLE(Region_Cliperator_const_SkRegion_const_SkIRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_Cliperator_done.cpp b/docs/examples/Region_Cliperator_done.cpp
index 9a0897e..906aea1 100644
--- a/docs/examples/Region_Cliperator_done.cpp
+++ b/docs/examples/Region_Cliperator_done.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6cca7b96836266800d852664a1366453
 REG_FIDDLE(Region_Cliperator_done, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_Cliperator_next.cpp b/docs/examples/Region_Cliperator_next.cpp
index fd744f6..c621fcd 100644
--- a/docs/examples/Region_Cliperator_next.cpp
+++ b/docs/examples/Region_Cliperator_next.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3bbcc7eec19c808a8167bbcc987199f8
 REG_FIDDLE(Region_Cliperator_next, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_Cliperator_rect.cpp b/docs/examples/Region_Cliperator_rect.cpp
index 28cf7e2..638ad49 100644
--- a/docs/examples/Region_Cliperator_rect.cpp
+++ b/docs/examples/Region_Cliperator_rect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=05791751f00b4c2426093fa143b43bc7
 REG_FIDDLE(Region_Cliperator_rect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_Iterator_Iterator.cpp b/docs/examples/Region_Iterator_Iterator.cpp
index 94fd808..4ec7dd5 100644
--- a/docs/examples/Region_Iterator_Iterator.cpp
+++ b/docs/examples/Region_Iterator_Iterator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a2db43ee3cbf6893e9b23927fb44298a
 REG_FIDDLE(Region_Iterator_Iterator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_Iterator_copy_const_SkRegion.cpp b/docs/examples/Region_Iterator_copy_const_SkRegion.cpp
index 9574357..cec957d 100644
--- a/docs/examples/Region_Iterator_copy_const_SkRegion.cpp
+++ b/docs/examples/Region_Iterator_copy_const_SkRegion.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e317ceca48a6a7504219af58f35d2c95
 REG_FIDDLE(Region_Iterator_copy_const_SkRegion, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_Iterator_done.cpp b/docs/examples/Region_Iterator_done.cpp
index f7b7448..d2de42b 100644
--- a/docs/examples/Region_Iterator_done.cpp
+++ b/docs/examples/Region_Iterator_done.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=814efa7d7f4ae52dfc861a937c1b5c25
 REG_FIDDLE(Region_Iterator_done, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_Iterator_next.cpp b/docs/examples/Region_Iterator_next.cpp
index cbb1772..3faba5a 100644
--- a/docs/examples/Region_Iterator_next.cpp
+++ b/docs/examples/Region_Iterator_next.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=771236c2eadfc2fcd02a3e61a0875d39
 REG_FIDDLE(Region_Iterator_next, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_Iterator_rect.cpp b/docs/examples/Region_Iterator_rect.cpp
index 5c86b67..ca28752 100644
--- a/docs/examples/Region_Iterator_rect.cpp
+++ b/docs/examples/Region_Iterator_rect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0e7c58ab5d3bcfb36b1f8464cf6c7d89
 REG_FIDDLE(Region_Iterator_rect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_Iterator_reset.cpp b/docs/examples/Region_Iterator_reset.cpp
index 506f58b..a1f58ac 100644
--- a/docs/examples/Region_Iterator_reset.cpp
+++ b/docs/examples/Region_Iterator_reset.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d153f87bd518a4ab947b7e407ea1db79
 REG_FIDDLE(Region_Iterator_reset, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_Iterator_rewind.cpp b/docs/examples/Region_Iterator_rewind.cpp
index 3c7e9ca..71c827e 100644
--- a/docs/examples/Region_Iterator_rewind.cpp
+++ b/docs/examples/Region_Iterator_rewind.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=32d51e959d6cc720a74ec4822511e2cd
 REG_FIDDLE(Region_Iterator_rewind, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_Iterator_rgn.cpp b/docs/examples/Region_Iterator_rgn.cpp
index b2ef13c..81b2933 100644
--- a/docs/examples/Region_Iterator_rgn.cpp
+++ b/docs/examples/Region_Iterator_rgn.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bbc3c454a21186e2a16e843a5b061c44
 REG_FIDDLE(Region_Iterator_rgn, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_Op.cpp b/docs/examples/Region_Op.cpp
index eed0861..96212cb 100644
--- a/docs/examples/Region_Op.cpp
+++ b/docs/examples/Region_Op.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=026dd8b180fe8e43f477fce43e9217b3
 REG_FIDDLE(Region_Op, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_Spanerator_const_SkRegion_int_int_int.cpp b/docs/examples/Region_Spanerator_const_SkRegion_int_int_int.cpp
index 0b0cf03..340fc24 100644
--- a/docs/examples/Region_Spanerator_const_SkRegion_int_int_int.cpp
+++ b/docs/examples/Region_Spanerator_const_SkRegion_int_int_int.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3073b3f8ea7252871b6156ff674dc385
 REG_FIDDLE(Region_Spanerator_const_SkRegion_int_int_int, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_Spanerator_next.cpp b/docs/examples/Region_Spanerator_next.cpp
index f7405c7..4c734b0 100644
--- a/docs/examples/Region_Spanerator_next.cpp
+++ b/docs/examples/Region_Spanerator_next.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=03d02180fee5f64ec4a3347e118fb2ec
 REG_FIDDLE(Region_Spanerator_next, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_computeRegionComplexity.cpp b/docs/examples/Region_computeRegionComplexity.cpp
index 419ce6b..4ea0e40 100644
--- a/docs/examples/Region_computeRegionComplexity.cpp
+++ b/docs/examples/Region_computeRegionComplexity.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c4984fefdcecdd1090be160f80939d87
 REG_FIDDLE(Region_computeRegionComplexity, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_contains.cpp b/docs/examples/Region_contains.cpp
index 20fb879..e13a83a 100644
--- a/docs/examples/Region_contains.cpp
+++ b/docs/examples/Region_contains.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e3899c2715c332bfc7648d5f2b9eefc6
 REG_FIDDLE(Region_contains, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_contains_2.cpp b/docs/examples/Region_contains_2.cpp
index a7700f3..1ca6f70 100644
--- a/docs/examples/Region_contains_2.cpp
+++ b/docs/examples/Region_contains_2.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=100b4cbd5dd7406804e40035833a433c
 REG_FIDDLE(Region_contains_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_contains_3.cpp b/docs/examples/Region_contains_3.cpp
index 05785e7..94eea97 100644
--- a/docs/examples/Region_contains_3.cpp
+++ b/docs/examples/Region_contains_3.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=46de22da2f3e08a8d7f064634fc1c7b5
 REG_FIDDLE(Region_contains_3, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_copy_const_SkIRect.cpp b/docs/examples/Region_copy_const_SkIRect.cpp
index e8660b3..59a2a08 100644
--- a/docs/examples/Region_copy_const_SkIRect.cpp
+++ b/docs/examples/Region_copy_const_SkIRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5253910233f7961c30b4c18ab911e917
 REG_FIDDLE(Region_copy_const_SkIRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_copy_const_SkRegion.cpp b/docs/examples/Region_copy_const_SkRegion.cpp
index c1277b1..0ce4316 100644
--- a/docs/examples/Region_copy_const_SkRegion.cpp
+++ b/docs/examples/Region_copy_const_SkRegion.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3daa83fca809b9ec6560d2ef9e2da5e6
 REG_FIDDLE(Region_copy_const_SkRegion, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_copy_operator.cpp b/docs/examples/Region_copy_operator.cpp
index 474a40b..1ae6c27 100644
--- a/docs/examples/Region_copy_operator.cpp
+++ b/docs/examples/Region_copy_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e8513f6394c24efaa301d41921c5241a
 REG_FIDDLE(Region_copy_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_destructor.cpp b/docs/examples/Region_destructor.cpp
index ac27b42..7fc992a 100644
--- a/docs/examples/Region_destructor.cpp
+++ b/docs/examples/Region_destructor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=985ff654a6b67288d322c748132a088e
 REG_FIDDLE(Region_destructor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_empty_constructor.cpp b/docs/examples/Region_empty_constructor.cpp
index 5fd6cad..8c7b23d 100644
--- a/docs/examples/Region_empty_constructor.cpp
+++ b/docs/examples/Region_empty_constructor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4549dcda3e0f9a41b3daee0ed37deca8
 REG_FIDDLE(Region_empty_constructor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_equal1_operator.cpp b/docs/examples/Region_equal1_operator.cpp
index 3aa6d8a..60cc9ac 100644
--- a/docs/examples/Region_equal1_operator.cpp
+++ b/docs/examples/Region_equal1_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d7f4fdc8bc63ca8410ed166ecef0aef3
 REG_FIDDLE(Region_equal1_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_getBoundaryPath.cpp b/docs/examples/Region_getBoundaryPath.cpp
index bb29500..d49c58e 100644
--- a/docs/examples/Region_getBoundaryPath.cpp
+++ b/docs/examples/Region_getBoundaryPath.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6631d36406efa3b3e27960c876421a7f
 REG_FIDDLE(Region_getBoundaryPath, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_getBounds.cpp b/docs/examples/Region_getBounds.cpp
index 034b505..5495ffc 100644
--- a/docs/examples/Region_getBounds.cpp
+++ b/docs/examples/Region_getBounds.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=651632582d385d2531e7aa551c31e331
 REG_FIDDLE(Region_getBounds, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_intersects.cpp b/docs/examples/Region_intersects.cpp
index d3964e8..3e7ab8e 100644
--- a/docs/examples/Region_intersects.cpp
+++ b/docs/examples/Region_intersects.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=42bde0ef8c2ee372751428cd6e21c1ca
 REG_FIDDLE(Region_intersects, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_intersects_2.cpp b/docs/examples/Region_intersects_2.cpp
index 7df98c2..b29e956 100644
--- a/docs/examples/Region_intersects_2.cpp
+++ b/docs/examples/Region_intersects_2.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4263d79ac0e7df02e90948fdde9fa965
 REG_FIDDLE(Region_intersects_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_isComplex.cpp b/docs/examples/Region_isComplex.cpp
index b17d47f..5b3263e 100644
--- a/docs/examples/Region_isComplex.cpp
+++ b/docs/examples/Region_isComplex.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1fbd76d75ca2d280e81856311de4e54e
 REG_FIDDLE(Region_isComplex, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_isEmpty.cpp b/docs/examples/Region_isEmpty.cpp
index dc02155..fc0ab7d 100644
--- a/docs/examples/Region_isEmpty.cpp
+++ b/docs/examples/Region_isEmpty.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=10ef0de39e8553dd97cf8668ce185070
 REG_FIDDLE(Region_isEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_isRect.cpp b/docs/examples/Region_isRect.cpp
index 571598e..4da6518 100644
--- a/docs/examples/Region_isRect.cpp
+++ b/docs/examples/Region_isRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b6adbdddf7fe45a1098121c4e5fd57ea
 REG_FIDDLE(Region_isRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_notequal1_operator.cpp b/docs/examples/Region_notequal1_operator.cpp
index a0602d6..048e4f5 100644
--- a/docs/examples/Region_notequal1_operator.cpp
+++ b/docs/examples/Region_notequal1_operator.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3357caa9d8d810f200cbccb668182496
 REG_FIDDLE(Region_notequal1_operator, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_op_1.cpp b/docs/examples/Region_op_1.cpp
index b5c56b6..72a1c78 100644
--- a/docs/examples/Region_op_1.cpp
+++ b/docs/examples/Region_op_1.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1790b2e054c536a54601138365700ac3
 REG_FIDDLE(Region_op_1, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_op_2.cpp b/docs/examples/Region_op_2.cpp
index 3cca6f6..cad0895 100644
--- a/docs/examples/Region_op_2.cpp
+++ b/docs/examples/Region_op_2.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2e3497890d523235f96680716c321098
 REG_FIDDLE(Region_op_2, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_op_3.cpp b/docs/examples/Region_op_3.cpp
index 48ccba6..e14fb40 100644
--- a/docs/examples/Region_op_3.cpp
+++ b/docs/examples/Region_op_3.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=65f4eccea3514ed7e37b5067e15efddb
 REG_FIDDLE(Region_op_3, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_op_4.cpp b/docs/examples/Region_op_4.cpp
index e69b77f..bc88fe9 100644
--- a/docs/examples/Region_op_4.cpp
+++ b/docs/examples/Region_op_4.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3f964be1e1fd2fbb977b655d3a928f0a
 REG_FIDDLE(Region_op_4, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_op_5.cpp b/docs/examples/Region_op_5.cpp
index 4188927..ded9807 100644
--- a/docs/examples/Region_op_5.cpp
+++ b/docs/examples/Region_op_5.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e623208dd44f0b24499ac5f1593d1b39
 REG_FIDDLE(Region_op_5, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_op_6.cpp b/docs/examples/Region_op_6.cpp
index 3e5cee5..13c9205 100644
--- a/docs/examples/Region_op_6.cpp
+++ b/docs/examples/Region_op_6.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=13de1a6fcb2302a2a30278cb88d3e17d
 REG_FIDDLE(Region_op_6, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_quickContains.cpp b/docs/examples/Region_quickContains.cpp
index 9168fb4..52f5395 100644
--- a/docs/examples/Region_quickContains.cpp
+++ b/docs/examples/Region_quickContains.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d8e5eac373e2e7cfc1b8cd0229647ba6
 REG_FIDDLE(Region_quickContains, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_quickContains_2.cpp b/docs/examples/Region_quickContains_2.cpp
index b3e033f..f3ae2b6 100644
--- a/docs/examples/Region_quickContains_2.cpp
+++ b/docs/examples/Region_quickContains_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=eb6d290887e1a3a0b051b4d7b012f5e1
 REG_FIDDLE(Region_quickContains_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_quickReject.cpp b/docs/examples/Region_quickReject.cpp
index 0f52ea7..3842478 100644
--- a/docs/examples/Region_quickReject.cpp
+++ b/docs/examples/Region_quickReject.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=71ac24b7d91ac5ca7c14b43930d5f85d
 REG_FIDDLE(Region_quickReject, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_quickReject_2.cpp b/docs/examples/Region_quickReject_2.cpp
index d1a23d2..9d06ae6 100644
--- a/docs/examples/Region_quickReject_2.cpp
+++ b/docs/examples/Region_quickReject_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=def7dba38947c33b203e4f9db6c88be3
 REG_FIDDLE(Region_quickReject_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_readFromMemory.cpp b/docs/examples/Region_readFromMemory.cpp
index c043b7e..5324075 100644
--- a/docs/examples/Region_readFromMemory.cpp
+++ b/docs/examples/Region_readFromMemory.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1ede346c430ef23df0eaaf0773dd6a15
 REG_FIDDLE(Region_readFromMemory, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_set.cpp b/docs/examples/Region_set.cpp
index 8270db0..99359c4 100644
--- a/docs/examples/Region_set.cpp
+++ b/docs/examples/Region_set.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b3538117c7ae2cb7de3b42ca45fe1b13
 REG_FIDDLE(Region_set, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_setEmpty.cpp b/docs/examples/Region_setEmpty.cpp
index 08cc4ca..3a4c8ef 100644
--- a/docs/examples/Region_setEmpty.cpp
+++ b/docs/examples/Region_setEmpty.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1314f7250963775c5ee89cc5981eee24
 REG_FIDDLE(Region_setEmpty, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_setPath.cpp b/docs/examples/Region_setPath.cpp
index b9342b5..e675448 100644
--- a/docs/examples/Region_setPath.cpp
+++ b/docs/examples/Region_setPath.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=45b9ea2247b9ca7f10aa22ea29a426f4
 REG_FIDDLE(Region_setPath, 256, 120, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_setRect.cpp b/docs/examples/Region_setRect.cpp
index b25e03f..590ea34 100644
--- a/docs/examples/Region_setRect.cpp
+++ b/docs/examples/Region_setRect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e12575ffcd262f2364e0e6bece98a825
 REG_FIDDLE(Region_setRect, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_setRect_2.cpp b/docs/examples/Region_setRect_2.cpp
index c16548b..7c9c973 100644
--- a/docs/examples/Region_setRect_2.cpp
+++ b/docs/examples/Region_setRect_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5b31a1b077818a8150ad50f3b19e7bfe
 REG_FIDDLE(Region_setRect_2, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_setRects.cpp b/docs/examples/Region_setRects.cpp
index 2ba2cdf..2ea7330 100644
--- a/docs/examples/Region_setRects.cpp
+++ b/docs/examples/Region_setRects.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=fc793a14ed76c096a68a755c963c1ee0
 REG_FIDDLE(Region_setRects, 256, 70, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_setRegion.cpp b/docs/examples/Region_setRegion.cpp
index ae90894..49d0904 100644
--- a/docs/examples/Region_setRegion.cpp
+++ b/docs/examples/Region_setRegion.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5d75d22bd155576838155762ab040751
 REG_FIDDLE(Region_setRegion, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_swap.cpp b/docs/examples/Region_swap.cpp
index 668814c..f8fa47f 100644
--- a/docs/examples/Region_swap.cpp
+++ b/docs/examples/Region_swap.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ae67b7b4c198b46c58e48f5af061c8f1
 REG_FIDDLE(Region_swap, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_translate.cpp b/docs/examples/Region_translate.cpp
index d2e97a1..000c5bd 100644
--- a/docs/examples/Region_translate.cpp
+++ b/docs/examples/Region_translate.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=4e5b9e53aa1b200fed3ee6596ca01f0e
 REG_FIDDLE(Region_translate, 256, 90, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_translate_2.cpp b/docs/examples/Region_translate_2.cpp
index 8151d3d..afa5eb5 100644
--- a/docs/examples/Region_translate_2.cpp
+++ b/docs/examples/Region_translate_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=024200960eb52fee1f471514607e6001
 REG_FIDDLE(Region_translate_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Region_writeToMemory.cpp b/docs/examples/Region_writeToMemory.cpp
index 1fe05d2..0d502fd 100644
--- a/docs/examples/Region_writeToMemory.cpp
+++ b/docs/examples/Region_writeToMemory.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1419d2a8c22c355ab46240865d056ee5
 REG_FIDDLE(Region_writeToMemory, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Saturation.cpp b/docs/examples/Saturation.cpp
index c3bbf8c..cd71f352 100644
--- a/docs/examples/Saturation.cpp
+++ b/docs/examples/Saturation.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a48698975d236573cef512f94a7e360b
 REG_FIDDLE(Saturation, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Screen.cpp b/docs/examples/Screen.cpp
index edbb97d..63c04d5 100644
--- a/docs/examples/Screen.cpp
+++ b/docs/examples/Screen.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b7b42965927788d853f449f08ddf46de
 REG_FIDDLE(Screen, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Shader_Methods_a.cpp b/docs/examples/Shader_Methods_a.cpp
index 70ee642..8a2a39c 100644
--- a/docs/examples/Shader_Methods_a.cpp
+++ b/docs/examples/Shader_Methods_a.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c015dc2010c15e1c00b4f7330232b0f7
 REG_FIDDLE(Shader_Methods_a, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Shader_Methods_b.cpp b/docs/examples/Shader_Methods_b.cpp
index f04ed31..1b63493 100644
--- a/docs/examples/Shader_Methods_b.cpp
+++ b/docs/examples/Shader_Methods_b.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=fe80fd80b98a20823db7fb9a077243c7
 REG_FIDDLE(Shader_Methods_b, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Soft_Light.cpp b/docs/examples/Soft_Light.cpp
index a97b75a..62c978f 100644
--- a/docs/examples/Soft_Light.cpp
+++ b/docs/examples/Soft_Light.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ac93f30dff13f8a8bb31398de370863b
 REG_FIDDLE(Soft_Light, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Src.cpp b/docs/examples/Src.cpp
index 50d26f3..f697895 100644
--- a/docs/examples/Src.cpp
+++ b/docs/examples/Src.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0fc85dd916cc1a5896d36c80b9847391
 REG_FIDDLE(Src, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Src_Atop.cpp b/docs/examples/Src_Atop.cpp
index 4560f95..e88d480 100644
--- a/docs/examples/Src_Atop.cpp
+++ b/docs/examples/Src_Atop.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a13148977bfc985934a92752c83a2041
 REG_FIDDLE(Src_Atop, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Src_In.cpp b/docs/examples/Src_In.cpp
index 2dbbe79..c3a2906 100644
--- a/docs/examples/Src_In.cpp
+++ b/docs/examples/Src_In.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b0833c18fe8b0eeaab9bd6d2160d272f
 REG_FIDDLE(Src_In, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Src_Out.cpp b/docs/examples/Src_Out.cpp
index f7cdb0a..772c751 100644
--- a/docs/examples/Src_Out.cpp
+++ b/docs/examples/Src_Out.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=ccc1e74226e0c9eacbc21f1eed017b84
 REG_FIDDLE(Src_Out, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Src_Over.cpp b/docs/examples/Src_Over.cpp
index e0c9fb3..f320cea 100644
--- a/docs/examples/Src_Over.cpp
+++ b/docs/examples/Src_Over.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2ea9c149964a06cdb4929158cb4f15f8
 REG_FIDDLE(Src_Over, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/State_Stack_a.cpp b/docs/examples/State_Stack_a.cpp
index f1be0f6..7750c08 100644
--- a/docs/examples/State_Stack_a.cpp
+++ b/docs/examples/State_Stack_a.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bb1dbfdca3aedf716beb6f07e2aab065
 REG_FIDDLE(State_Stack_a, 256, 160, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/State_Stack_b.cpp b/docs/examples/State_Stack_b.cpp
index 83710fa..56d73bf 100644
--- a/docs/examples/State_Stack_b.cpp
+++ b/docs/examples/State_Stack_b.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9f563a2d60aa31d4b26742e5aa17aa4e
 REG_FIDDLE(State_Stack_b, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Stroke_Width.cpp b/docs/examples/Stroke_Width.cpp
index f16d343..cc2928b 100644
--- a/docs/examples/Stroke_Width.cpp
+++ b/docs/examples/Stroke_Width.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5112c7209a19e035c61cef33a624a652
 REG_FIDDLE(Stroke_Width, 256, 170, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_MakeFromBackendTexture.cpp b/docs/examples/Surface_MakeFromBackendTexture.cpp
index 7a841dd..4abf0df 100644
--- a/docs/examples/Surface_MakeFromBackendTexture.cpp
+++ b/docs/examples/Surface_MakeFromBackendTexture.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d3aec071998f871809f515e58abb1b0e
 REG_FIDDLE(Surface_MakeFromBackendTexture, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_MakeFromBackendTextureAsRenderTarget.cpp b/docs/examples/Surface_MakeFromBackendTextureAsRenderTarget.cpp
index 9f22e1f..f9f1942 100644
--- a/docs/examples/Surface_MakeFromBackendTextureAsRenderTarget.cpp
+++ b/docs/examples/Surface_MakeFromBackendTextureAsRenderTarget.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5e87093b9cbe95124ae14cbe77091eb7
 REG_FIDDLE(Surface_MakeFromBackendTextureAsRenderTarget, 256, 256, false, 3) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_MakeNull.cpp b/docs/examples/Surface_MakeNull.cpp
index 1052240..0d08d40 100644
--- a/docs/examples/Surface_MakeNull.cpp
+++ b/docs/examples/Surface_MakeNull.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=99a54b814ccab7d2b1143c88581649ff
 REG_FIDDLE(Surface_MakeNull, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_MakeRaster.cpp b/docs/examples/Surface_MakeRaster.cpp
index 34b3906..b580c93 100644
--- a/docs/examples/Surface_MakeRaster.cpp
+++ b/docs/examples/Surface_MakeRaster.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a803910ada4f8733f0b62456afead55f
 REG_FIDDLE(Surface_MakeRaster, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
diff --git a/docs/examples/Surface_MakeRasterDirect.cpp b/docs/examples/Surface_MakeRasterDirect.cpp
index 484c275..fea837b 100644
--- a/docs/examples/Surface_MakeRasterDirect.cpp
+++ b/docs/examples/Surface_MakeRasterDirect.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=3f5aeb870104187643197354a7f1d27a
 REG_FIDDLE(Surface_MakeRasterDirect, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
diff --git a/docs/examples/Surface_MakeRasterDirectReleaseProc.cpp b/docs/examples/Surface_MakeRasterDirectReleaseProc.cpp
index d6f5223..6d4c2bc 100644
--- a/docs/examples/Surface_MakeRasterDirectReleaseProc.cpp
+++ b/docs/examples/Surface_MakeRasterDirectReleaseProc.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8e6530b26ab4096a9a91cfaadda1c568
 REG_FIDDLE(Surface_MakeRasterDirectReleaseProc, 256, 256, true, 0) {
 static void release_direct_surface_storage(void* pixels, void* context) {
diff --git a/docs/examples/Surface_MakeRasterN32Premul.cpp b/docs/examples/Surface_MakeRasterN32Premul.cpp
index 9361cf1..3de585b 100644
--- a/docs/examples/Surface_MakeRasterN32Premul.cpp
+++ b/docs/examples/Surface_MakeRasterN32Premul.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b932a2bd68455fb0af2e7a1ed19e36b3
 REG_FIDDLE(Surface_MakeRasterN32Premul, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
diff --git a/docs/examples/Surface_MakeRaster_2.cpp b/docs/examples/Surface_MakeRaster_2.cpp
index 704dc04..b9d32cb 100644
--- a/docs/examples/Surface_MakeRaster_2.cpp
+++ b/docs/examples/Surface_MakeRaster_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c6197d204ef9e4ccfb583242651fb2a7
 REG_FIDDLE(Surface_MakeRaster_2, 256, 256, true, 0) {
 void draw(SkCanvas* ) {
diff --git a/docs/examples/Surface_MakeRenderTarget.cpp b/docs/examples/Surface_MakeRenderTarget.cpp
index 0404e63..4ee09f9 100644
--- a/docs/examples/Surface_MakeRenderTarget.cpp
+++ b/docs/examples/Surface_MakeRenderTarget.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=67b6609471a3f1ed0f4b1657004cdecb
 REG_FIDDLE(Surface_MakeRenderTarget, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_MakeRenderTarget_2.cpp b/docs/examples/Surface_MakeRenderTarget_2.cpp
index a200639..b7718ae 100644
--- a/docs/examples/Surface_MakeRenderTarget_2.cpp
+++ b/docs/examples/Surface_MakeRenderTarget_2.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=640321e8ecfb3f9329f3bc6e1f02485f
 REG_FIDDLE(Surface_MakeRenderTarget_2, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_MakeRenderTarget_3.cpp b/docs/examples/Surface_MakeRenderTarget_3.cpp
index e6096c7..62b94eb 100644
--- a/docs/examples/Surface_MakeRenderTarget_3.cpp
+++ b/docs/examples/Surface_MakeRenderTarget_3.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=5c7629c15e9ac93f098335e72560fa2e
 REG_FIDDLE(Surface_MakeRenderTarget_3, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_characterize.cpp b/docs/examples/Surface_characterize.cpp
index 5b9a267..bdec9d6 100644
--- a/docs/examples/Surface_characterize.cpp
+++ b/docs/examples/Surface_characterize.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6de6f3ef699a72ff26da1b26b23a3316
 REG_FIDDLE(Surface_characterize, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_draw.cpp b/docs/examples/Surface_draw.cpp
index ce6dd8f..d4e9d71 100644
--- a/docs/examples/Surface_draw.cpp
+++ b/docs/examples/Surface_draw.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=0de693f4d8dd898a60be8cfba23952be
 REG_FIDDLE(Surface_draw, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_draw_2.cpp b/docs/examples/Surface_draw_2.cpp
index 5a2bb18..827f4ff 100644
--- a/docs/examples/Surface_draw_2.cpp
+++ b/docs/examples/Surface_draw_2.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=46d9bacf593deaaeabd74ff42f2571a0
 REG_FIDDLE(Surface_draw_2, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_getCanvas.cpp b/docs/examples/Surface_getCanvas.cpp
index 65b8cc4..781a401 100644
--- a/docs/examples/Surface_getCanvas.cpp
+++ b/docs/examples/Surface_getCanvas.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=33d0c5ad5a4810e533ae1010e29f8b75
 REG_FIDDLE(Surface_getCanvas, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_height.cpp b/docs/examples/Surface_height.cpp
index 5fed7b3..89fcbd1 100644
--- a/docs/examples/Surface_height.cpp
+++ b/docs/examples/Surface_height.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=20571cc23e3146deaa09046b64cc0aef
 REG_FIDDLE(Surface_height, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_makeImageSnapshot.cpp b/docs/examples/Surface_makeImageSnapshot.cpp
index 5b1a31d..9d40184 100644
--- a/docs/examples/Surface_makeImageSnapshot.cpp
+++ b/docs/examples/Surface_makeImageSnapshot.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=46f1fa0d95e590a64bed0140407ce5f7
 REG_FIDDLE(Surface_makeImageSnapshot, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_makeImageSnapshot_2.cpp b/docs/examples/Surface_makeImageSnapshot_2.cpp
index e762a4a..225d0be 100644
--- a/docs/examples/Surface_makeImageSnapshot_2.cpp
+++ b/docs/examples/Surface_makeImageSnapshot_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=b18b8ab693b09eb70a1d22ab63790cc7
 REG_FIDDLE(Surface_makeImageSnapshot_2, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_makeSurface.cpp b/docs/examples/Surface_makeSurface.cpp
index f60a0f6..8b994b6 100644
--- a/docs/examples/Surface_makeSurface.cpp
+++ b/docs/examples/Surface_makeSurface.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a9889b519a26896b900da0444e423c61
 REG_FIDDLE(Surface_makeSurface, 256, 96, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_notifyContentWillChange.cpp b/docs/examples/Surface_notifyContentWillChange.cpp
index c4ff78e..b2fde72 100644
--- a/docs/examples/Surface_notifyContentWillChange.cpp
+++ b/docs/examples/Surface_notifyContentWillChange.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=be9574c4a14f891e1abb4ec2b1e51d6c
 REG_FIDDLE(Surface_notifyContentWillChange, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_peekPixels.cpp b/docs/examples/Surface_peekPixels.cpp
index a771339..539c456 100644
--- a/docs/examples/Surface_peekPixels.cpp
+++ b/docs/examples/Surface_peekPixels.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=8c6184f22cfe068f021704cf92a147a1
 REG_FIDDLE(Surface_peekPixels, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_props.cpp b/docs/examples/Surface_props.cpp
index 799c8d9..e6fc5e8 100644
--- a/docs/examples/Surface_props.cpp
+++ b/docs/examples/Surface_props.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=13cf9e7b2894ae6e98c1fd719040bf01
 REG_FIDDLE(Surface_props, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_readPixels.cpp b/docs/examples/Surface_readPixels.cpp
index 0e876b0..9481cdb 100644
--- a/docs/examples/Surface_readPixels.cpp
+++ b/docs/examples/Surface_readPixels.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=9f454fb93bca6482598d198b4121f0a6
 REG_FIDDLE(Surface_readPixels, 256, 32, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_readPixels_2.cpp b/docs/examples/Surface_readPixels_2.cpp
index 37ca8d3..fd6acba 100644
--- a/docs/examples/Surface_readPixels_2.cpp
+++ b/docs/examples/Surface_readPixels_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=484d60dab5d846bf28c7a4d48892324a
 REG_FIDDLE(Surface_readPixels_2, 256, 64, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_readPixels_3.cpp b/docs/examples/Surface_readPixels_3.cpp
index f22f3fd..5876978 100644
--- a/docs/examples/Surface_readPixels_3.cpp
+++ b/docs/examples/Surface_readPixels_3.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=2d991a231e49d1de13eeb2ba9b440e01
 REG_FIDDLE(Surface_readPixels_3, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_width.cpp b/docs/examples/Surface_width.cpp
index 442f3e1..64599c8 100644
--- a/docs/examples/Surface_width.cpp
+++ b/docs/examples/Surface_width.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=df066b56dd97c7c589fd2bb6a2539de8
 REG_FIDDLE(Surface_width, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_writePixels.cpp b/docs/examples/Surface_writePixels.cpp
index 7bc325c..2705371 100644
--- a/docs/examples/Surface_writePixels.cpp
+++ b/docs/examples/Surface_writePixels.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=760793bcf0ef193fa61ea03e6e8fc825
 REG_FIDDLE(Surface_writePixels, 256, 96, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Surface_writePixels_2.cpp b/docs/examples/Surface_writePixels_2.cpp
index e13297a..1736b39 100644
--- a/docs/examples/Surface_writePixels_2.cpp
+++ b/docs/examples/Surface_writePixels_2.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d77790dd3bc9f678fa4f582347fb8fba
 REG_FIDDLE(Surface_writePixels_2, 256, 96, false, 4) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/TextBlobBuilder_allocRun.cpp b/docs/examples/TextBlobBuilder_allocRun.cpp
index 2cf581e..65ebd2f 100644
--- a/docs/examples/TextBlobBuilder_allocRun.cpp
+++ b/docs/examples/TextBlobBuilder_allocRun.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=f0e584aec20eaee7a5bfed62aa885eee
 REG_FIDDLE(TextBlobBuilder_allocRun, 256, 60, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/TextBlobBuilder_allocRunPos.cpp b/docs/examples/TextBlobBuilder_allocRunPos.cpp
index ca166d7..b3b1a8b 100644
--- a/docs/examples/TextBlobBuilder_allocRunPos.cpp
+++ b/docs/examples/TextBlobBuilder_allocRunPos.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=da4fcb4a972b500996be9aff6c6c40e1
 REG_FIDDLE(TextBlobBuilder_allocRunPos, 256, 90, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/TextBlobBuilder_allocRunPosH.cpp b/docs/examples/TextBlobBuilder_allocRunPosH.cpp
index e73c2d9..624f2a2 100644
--- a/docs/examples/TextBlobBuilder_allocRunPosH.cpp
+++ b/docs/examples/TextBlobBuilder_allocRunPosH.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=c77ac50f506106fdfef94d20bc1a6934
 REG_FIDDLE(TextBlobBuilder_allocRunPosH, 256, 60, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/TextBlobBuilder_empty_constructor.cpp b/docs/examples/TextBlobBuilder_empty_constructor.cpp
index f387a91..f9bf045 100644
--- a/docs/examples/TextBlobBuilder_empty_constructor.cpp
+++ b/docs/examples/TextBlobBuilder_empty_constructor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d9dbabfe24aad92ee3c8144513e90d81
 REG_FIDDLE(TextBlobBuilder_empty_constructor, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/TextBlobBuilder_make.cpp b/docs/examples/TextBlobBuilder_make.cpp
index 1f27cf0..60c9081 100644
--- a/docs/examples/TextBlobBuilder_make.cpp
+++ b/docs/examples/TextBlobBuilder_make.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=34c37c0212cc0aef670d96945d08fe24
 REG_FIDDLE(TextBlobBuilder_make, 256, 256, true, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/TextBlob_Deserialize.cpp b/docs/examples/TextBlob_Deserialize.cpp
index 72a4dda..0342e8d 100644
--- a/docs/examples/TextBlob_Deserialize.cpp
+++ b/docs/examples/TextBlob_Deserialize.cpp
@@ -1,10 +1,10 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=68b6d0208eb0b4de67fc152381af7a58
 REG_FIDDLE(TextBlob_Deserialize, 256, 24, false, 0) {
-#include "SkSerialProcs.h"
+#include "include/core/SkSerialProcs.h"
 
 void draw(SkCanvas* canvas) {
     SkFont blobFont;
diff --git a/docs/examples/TextBlob_MakeFromString.cpp b/docs/examples/TextBlob_MakeFromString.cpp
index 66ba3eb..98518f5 100644
--- a/docs/examples/TextBlob_MakeFromString.cpp
+++ b/docs/examples/TextBlob_MakeFromString.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=a5af182e793eed3f2bb3b0efc2cf4852
 REG_FIDDLE(TextBlob_MakeFromString, 256, 24, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/TextBlob_MakeFromText.cpp b/docs/examples/TextBlob_MakeFromText.cpp
index 51ebd7e..da2e08c 100644
--- a/docs/examples/TextBlob_MakeFromText.cpp
+++ b/docs/examples/TextBlob_MakeFromText.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=bec2252bc36dc8fd023015629d60c405
 REG_FIDDLE(TextBlob_MakeFromText, 256, 24, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/TextBlob_bounds.cpp b/docs/examples/TextBlob_bounds.cpp
index 5723a0e..3588fe5 100644
--- a/docs/examples/TextBlob_bounds.cpp
+++ b/docs/examples/TextBlob_bounds.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=fb8b2502bbe52d2029aecdf569dd9fdb
 REG_FIDDLE(TextBlob_bounds, 256, 70, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/TextBlob_getIntercepts.cpp b/docs/examples/TextBlob_getIntercepts.cpp
index 293c58b..4b8da0b 100644
--- a/docs/examples/TextBlob_getIntercepts.cpp
+++ b/docs/examples/TextBlob_getIntercepts.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=e9d4eb8ece521b1329e7433d4b243fdf
 REG_FIDDLE(TextBlob_getIntercepts, 256, 143, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/TextBlob_serialize.cpp b/docs/examples/TextBlob_serialize.cpp
index c0b2d08..9566373 100644
--- a/docs/examples/TextBlob_serialize.cpp
+++ b/docs/examples/TextBlob_serialize.cpp
@@ -1,10 +1,10 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=90ce8c327d407b1faac73baa2ebd0378
 REG_FIDDLE(TextBlob_serialize, 256, 64, false, 0) {
-#include "SkSerialProcs.h"
+#include "include/core/SkSerialProcs.h"
 
 void draw(SkCanvas* canvas) {
     SkFont blobFont;
diff --git a/docs/examples/TextBlob_serialize_2.cpp b/docs/examples/TextBlob_serialize_2.cpp
index 459a06a..825b95b 100644
--- a/docs/examples/TextBlob_serialize_2.cpp
+++ b/docs/examples/TextBlob_serialize_2.cpp
@@ -1,9 +1,9 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=464201a828f7e94fc01cd57facfcd2f4
 REG_FIDDLE(TextBlob_serialize_2, 256, 24, false, 0) {
-#include "SkSerialProcs.h"
+#include "include/core/SkSerialProcs.h"
 
 void draw(SkCanvas* canvas) {
     SkFont blobFont;
diff --git a/docs/examples/TextBlob_uniqueID.cpp b/docs/examples/TextBlob_uniqueID.cpp
index 7489067..d9152ec 100644
--- a/docs/examples/TextBlob_uniqueID.cpp
+++ b/docs/examples/TextBlob_uniqueID.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=6e12cceca981ddabc0fc18c380543f34
 REG_FIDDLE(TextBlob_uniqueID, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Text_Encoding.cpp b/docs/examples/Text_Encoding.cpp
index ef4b438..930c7d4 100644
--- a/docs/examples/Text_Encoding.cpp
+++ b/docs/examples/Text_Encoding.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=767fa4e7b6300e16a419f9881f0f9d3d
 REG_FIDDLE(Text_Encoding, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Text_Scale_X.cpp b/docs/examples/Text_Scale_X.cpp
index b103bc4..37ff708 100644
--- a/docs/examples/Text_Scale_X.cpp
+++ b/docs/examples/Text_Scale_X.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=d13d787c1e36f515319fc998411c1d91
 REG_FIDDLE(Text_Scale_X, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Text_Size.cpp b/docs/examples/Text_Size.cpp
index 4fa50ac..e4f4dff 100644
--- a/docs/examples/Text_Size.cpp
+++ b/docs/examples/Text_Size.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=91c9a3e498bb9412e4522a95d076ed5f
 REG_FIDDLE(Text_Size, 256, 135, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Text_Skew_X.cpp b/docs/examples/Text_Skew_X.cpp
index a16ab1a..a7c1409 100644
--- a/docs/examples/Text_Skew_X.cpp
+++ b/docs/examples/Text_Skew_X.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=aff208b0aab265f273045b27e683c17c
 REG_FIDDLE(Text_Skew_X, 256, 128, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Typeface_Methods.cpp b/docs/examples/Typeface_Methods.cpp
index 7ec9530..5c228a9 100644
--- a/docs/examples/Typeface_Methods.cpp
+++ b/docs/examples/Typeface_Methods.cpp
@@ -1,7 +1,7 @@
 #if 0  // Disabled until updated to use current API.
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=1a7a5062725139760962582f599f1b97
 REG_FIDDLE(Typeface_Methods, 256, 100, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/docs/examples/Xor.cpp b/docs/examples/Xor.cpp
index 9a9af87..72efa99 100644
--- a/docs/examples/Xor.cpp
+++ b/docs/examples/Xor.cpp
@@ -1,6 +1,6 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
-#include "fiddle/examples.h"
+#include "tools/fiddle/examples.h"
 // HASH=29db2c7493d9098b8a086ddbe30dd6d6
 REG_FIDDLE(Xor, 256, 256, false, 0) {
 void draw(SkCanvas* canvas) {
diff --git a/example/HelloWorld.cpp b/example/HelloWorld.cpp
index 6d88af9..eed4b68 100644
--- a/example/HelloWorld.cpp
+++ b/example/HelloWorld.cpp
@@ -5,13 +5,13 @@
 * found in the LICENSE file.
 */
 
-#include "HelloWorld.h"
+#include "example/HelloWorld.h"
 
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkGradientShader.h"
-#include "SkGraphics.h"
-#include "SkSurface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkGradientShader.h"
 
 using namespace sk_app;
 
diff --git a/example/HelloWorld.h b/example/HelloWorld.h
index d052fe0..56b0fe7 100644
--- a/example/HelloWorld.h
+++ b/example/HelloWorld.h
@@ -8,8 +8,8 @@
 #ifndef HelloWorld_DEFINED
 #define HelloWorld_DEFINED
 
-#include "sk_app/Application.h"
-#include "sk_app/Window.h"
+#include "tools/sk_app/Application.h"
+#include "tools/sk_app/Window.h"
 
 class SkCanvas;
 
diff --git a/example/SkiaSDLExample.cpp b/example/SkiaSDLExample.cpp
index 7405252..7aebbbc 100644
--- a/example/SkiaSDLExample.cpp
+++ b/example/SkiaSDLExample.cpp
@@ -6,16 +6,16 @@
  *
  */
 
-#include "GrBackendSurface.h"
-#include "GrContext.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
 #include "SDL.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkRandom.h"
-#include "SkSurface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkSurface.h"
+#include "include/utils/SkRandom.h"
 
-#include "gl/GrGLInterface.h"
-#include "gl/GrGLUtil.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
 #if defined(SK_BUILD_FOR_ANDROID)
 #include <GLES/gl.h>
diff --git a/experimental/Networking/SkSockets.cpp b/experimental/Networking/SkSockets.cpp
index db9da09..7a6f442 100644
--- a/experimental/Networking/SkSockets.cpp
+++ b/experimental/Networking/SkSockets.cpp
@@ -8,8 +8,8 @@
 #include <unistd.h>
 #include <errno.h>
 #include <fcntl.h>
-#include "SkSockets.h"
-#include "SkData.h"
+#include "experimental/Networking/SkSockets.h"
+#include "include/core/SkData.h"
 
 SkSocket::SkSocket() {
     fMaxfd = 0;
diff --git a/experimental/Networking/SkSockets.h b/experimental/Networking/SkSockets.h
index 8d85446..bea7a88 100644
--- a/experimental/Networking/SkSockets.h
+++ b/experimental/Networking/SkSockets.h
@@ -9,8 +9,8 @@
 
 #include <netinet/in.h>
 #include <sys/socket.h>
-#include "SkTypes.h"
-#include "SkStream.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypes.h"
 
 /* PACKET and HEADER Format */
 #define PACKET_SIZE 1024
diff --git a/experimental/c-api-example/skia-c-example.c b/experimental/c-api-example/skia-c-example.c
index 66b17fc..679f827 100644
--- a/experimental/c-api-example/skia-c-example.c
+++ b/experimental/c-api-example/skia-c-example.c
@@ -6,12 +6,12 @@
  */
 #include <stdio.h>
 
-#include "sk_data.h"
-#include "sk_image.h"
-#include "sk_canvas.h"
-#include "sk_surface.h"
-#include "sk_paint.h"
-#include "sk_path.h"
+#include "include/c/sk_canvas.h"
+#include "include/c/sk_data.h"
+#include "include/c/sk_image.h"
+#include "include/c/sk_paint.h"
+#include "include/c/sk_path.h"
+#include "include/c/sk_surface.h"
 
 static sk_surface_t* make_surface(int32_t w, int32_t h) {
     sk_imageinfo_t info;
diff --git a/experimental/nima/NimaActor.cpp b/experimental/nima/NimaActor.cpp
index fb75027..89b8aeb 100644
--- a/experimental/nima/NimaActor.cpp
+++ b/experimental/nima/NimaActor.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "NimaActor.h"
+#include "experimental/nima/NimaActor.h"
 
-#include "SkData.h"
-#include "SkFilterQuality.h"
-#include "SkImage.h"
-#include "SkPaint.h"
-#include "SkString.h"
-#include "SkVertices.h"
+#include "include/core/SkData.h"
+#include "include/core/SkFilterQuality.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkString.h"
+#include "include/core/SkVertices.h"
 
 #include <algorithm>
 #include <cmath>
diff --git a/experimental/nima/NimaActor.h b/experimental/nima/NimaActor.h
index 28247b6..1f231b5 100644
--- a/experimental/nima/NimaActor.h
+++ b/experimental/nima/NimaActor.h
@@ -12,9 +12,9 @@
 #include <nima/ActorImage.hpp>
 #include <nima/Vec2D.hpp>
 
-#include "SkCanvas.h"
-#include "SkData.h"
-#include "SkImage.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
 
 #include <string>
 
diff --git a/experimental/svg/model/SkPEG.h b/experimental/svg/model/SkPEG.h
index 596a570..3088549 100644
--- a/experimental/svg/model/SkPEG.h
+++ b/experimental/svg/model/SkPEG.h
@@ -8,8 +8,8 @@
 #ifndef SkPEG_DEFINED
 #define SkPEG_DEFINED
 
-#include "SkTArray.h"
-#include "SkTLazy.h"
+#include "include/private/SkTArray.h"
+#include "src/core/SkTLazy.h"
 
 namespace skpeg {
 
diff --git a/experimental/svg/model/SkSVGAttribute.cpp b/experimental/svg/model/SkSVGAttribute.cpp
index 31c6c28..2a1670f 100644
--- a/experimental/svg/model/SkSVGAttribute.cpp
+++ b/experimental/svg/model/SkSVGAttribute.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkSVGAttribute.h"
+#include "experimental/svg/model/SkSVGAttribute.h"
 
 SkSVGPresentationAttributes SkSVGPresentationAttributes::MakeInitial() {
     SkSVGPresentationAttributes result;
diff --git a/experimental/svg/model/SkSVGAttribute.h b/experimental/svg/model/SkSVGAttribute.h
index 333e3c9..3242f59 100644
--- a/experimental/svg/model/SkSVGAttribute.h
+++ b/experimental/svg/model/SkSVGAttribute.h
@@ -8,8 +8,8 @@
 #ifndef SkSVGAttribute_DEFINED
 #define SkSVGAttribute_DEFINED
 
-#include "SkSVGTypes.h"
-#include "SkTLazy.h"
+#include "experimental/svg/model/SkSVGTypes.h"
+#include "src/core/SkTLazy.h"
 
 class SkSVGRenderContext;
 
diff --git a/experimental/svg/model/SkSVGAttributeParser.cpp b/experimental/svg/model/SkSVGAttributeParser.cpp
index d60ffd8..e541df4 100644
--- a/experimental/svg/model/SkSVGAttributeParser.cpp
+++ b/experimental/svg/model/SkSVGAttributeParser.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkParse.h"
-#include "SkSVGAttributeParser.h"
-#include "SkSVGTypes.h"
+#include "experimental/svg/model/SkSVGAttributeParser.h"
+#include "experimental/svg/model/SkSVGTypes.h"
+#include "include/utils/SkParse.h"
 
 namespace {
 
diff --git a/experimental/svg/model/SkSVGAttributeParser.h b/experimental/svg/model/SkSVGAttributeParser.h
index 517f1ca..49bd582 100644
--- a/experimental/svg/model/SkSVGAttributeParser.h
+++ b/experimental/svg/model/SkSVGAttributeParser.h
@@ -8,8 +8,8 @@
 #ifndef SkSVGAttributeParser_DEFINED
 #define SkSVGAttributeParser_DEFINED
 
-#include "SkNoncopyable.h"
-#include "SkSVGTypes.h"
+#include "experimental/svg/model/SkSVGTypes.h"
+#include "include/private/SkNoncopyable.h"
 
 class SkSVGAttributeParser : public SkNoncopyable {
 public:
diff --git a/experimental/svg/model/SkSVGCircle.cpp b/experimental/svg/model/SkSVGCircle.cpp
index 4934879..66e7d28 100644
--- a/experimental/svg/model/SkSVGCircle.cpp
+++ b/experimental/svg/model/SkSVGCircle.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkSVGCircle.h"
-#include "SkSVGRenderContext.h"
-#include "SkSVGValue.h"
+#include "experimental/svg/model/SkSVGCircle.h"
+#include "experimental/svg/model/SkSVGRenderContext.h"
+#include "experimental/svg/model/SkSVGValue.h"
+#include "include/core/SkCanvas.h"
 
 SkSVGCircle::SkSVGCircle() : INHERITED(SkSVGTag::kCircle) {}
 
diff --git a/experimental/svg/model/SkSVGCircle.h b/experimental/svg/model/SkSVGCircle.h
index 19db926..c53cf4a 100644
--- a/experimental/svg/model/SkSVGCircle.h
+++ b/experimental/svg/model/SkSVGCircle.h
@@ -8,8 +8,8 @@
 #ifndef SkSVGCircle_DEFINED
 #define SkSVGCircle_DEFINED
 
-#include "SkSVGShape.h"
-#include "SkSVGTypes.h"
+#include "experimental/svg/model/SkSVGShape.h"
+#include "experimental/svg/model/SkSVGTypes.h"
 
 struct SkPoint;
 
diff --git a/experimental/svg/model/SkSVGClipPath.cpp b/experimental/svg/model/SkSVGClipPath.cpp
index 60f1b6a..face942 100644
--- a/experimental/svg/model/SkSVGClipPath.cpp
+++ b/experimental/svg/model/SkSVGClipPath.cpp
@@ -5,6 +5,6 @@
  * found in the LICENSE file.
  */
 
-#include "SkSVGClipPath.h"
+#include "experimental/svg/model/SkSVGClipPath.h"
 
 SkSVGClipPath::SkSVGClipPath() : INHERITED(SkSVGTag::kClipPath) {}
diff --git a/experimental/svg/model/SkSVGClipPath.h b/experimental/svg/model/SkSVGClipPath.h
index ec43953..269d1d0 100644
--- a/experimental/svg/model/SkSVGClipPath.h
+++ b/experimental/svg/model/SkSVGClipPath.h
@@ -8,8 +8,8 @@
 #ifndef SkSVGClipPath_DEFINED
 #define SkSVGClipPath_DEFINED
 
-#include "SkSVGHiddenContainer.h"
-#include "SkSVGTypes.h"
+#include "experimental/svg/model/SkSVGHiddenContainer.h"
+#include "experimental/svg/model/SkSVGTypes.h"
 
 class SkSVGClipPath final : public SkSVGHiddenContainer {
 public:
diff --git a/experimental/svg/model/SkSVGContainer.cpp b/experimental/svg/model/SkSVGContainer.cpp
index 9f526c2..aca4e8d 100644
--- a/experimental/svg/model/SkSVGContainer.cpp
+++ b/experimental/svg/model/SkSVGContainer.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkSVGContainer.h"
+#include "experimental/svg/model/SkSVGContainer.h"
 
-#include "SkPath.h"
-#include "SkPathOps.h"
+#include "include/core/SkPath.h"
+#include "include/pathops/SkPathOps.h"
 
 SkSVGContainer::SkSVGContainer(SkSVGTag t) : INHERITED(t) { }
 
diff --git a/experimental/svg/model/SkSVGContainer.h b/experimental/svg/model/SkSVGContainer.h
index cf0d4d3..698d8c0 100644
--- a/experimental/svg/model/SkSVGContainer.h
+++ b/experimental/svg/model/SkSVGContainer.h
@@ -8,8 +8,8 @@
 #ifndef SkSVGContainer_DEFINED
 #define SkSVGContainer_DEFINED
 
-#include "SkSVGTransformableNode.h"
-#include "SkTArray.h"
+#include "experimental/svg/model/SkSVGTransformableNode.h"
+#include "include/private/SkTArray.h"
 
 class SkSVGContainer : public SkSVGTransformableNode {
 public:
diff --git a/experimental/svg/model/SkSVGDOM.cpp b/experimental/svg/model/SkSVGDOM.cpp
index 758a3ed..1a09e09 100644
--- a/experimental/svg/model/SkSVGDOM.cpp
+++ b/experimental/svg/model/SkSVGDOM.cpp
@@ -5,33 +5,33 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkDOM.h"
-#include "SkParsePath.h"
-#include "SkSVGAttributeParser.h"
-#include "SkSVGCircle.h"
-#include "SkSVGClipPath.h"
-#include "SkSVGDOM.h"
-#include "SkSVGDefs.h"
-#include "SkSVGEllipse.h"
-#include "SkSVGG.h"
-#include "SkSVGLine.h"
-#include "SkSVGLinearGradient.h"
-#include "SkSVGNode.h"
-#include "SkSVGPath.h"
-#include "SkSVGPattern.h"
-#include "SkSVGPoly.h"
-#include "SkSVGRadialGradient.h"
-#include "SkSVGRect.h"
-#include "SkSVGRenderContext.h"
-#include "SkSVGSVG.h"
-#include "SkSVGStop.h"
-#include "SkSVGTypes.h"
-#include "SkSVGUse.h"
-#include "SkSVGValue.h"
-#include "SkString.h"
-#include "SkTSearch.h"
-#include "SkTo.h"
+#include "experimental/svg/model/SkSVGAttributeParser.h"
+#include "experimental/svg/model/SkSVGCircle.h"
+#include "experimental/svg/model/SkSVGClipPath.h"
+#include "experimental/svg/model/SkSVGDOM.h"
+#include "experimental/svg/model/SkSVGDefs.h"
+#include "experimental/svg/model/SkSVGEllipse.h"
+#include "experimental/svg/model/SkSVGG.h"
+#include "experimental/svg/model/SkSVGLine.h"
+#include "experimental/svg/model/SkSVGLinearGradient.h"
+#include "experimental/svg/model/SkSVGNode.h"
+#include "experimental/svg/model/SkSVGPath.h"
+#include "experimental/svg/model/SkSVGPattern.h"
+#include "experimental/svg/model/SkSVGPoly.h"
+#include "experimental/svg/model/SkSVGRadialGradient.h"
+#include "experimental/svg/model/SkSVGRect.h"
+#include "experimental/svg/model/SkSVGRenderContext.h"
+#include "experimental/svg/model/SkSVGSVG.h"
+#include "experimental/svg/model/SkSVGStop.h"
+#include "experimental/svg/model/SkSVGTypes.h"
+#include "experimental/svg/model/SkSVGUse.h"
+#include "experimental/svg/model/SkSVGValue.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkString.h"
+#include "include/private/SkTSearch.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkParsePath.h"
+#include "src/xml/SkDOM.h"
 
 namespace {
 
diff --git a/experimental/svg/model/SkSVGDOM.h b/experimental/svg/model/SkSVGDOM.h
index 8904c17..3d097cc 100644
--- a/experimental/svg/model/SkSVGDOM.h
+++ b/experimental/svg/model/SkSVGDOM.h
@@ -8,10 +8,10 @@
 #ifndef SkSVGDOM_DEFINED
 #define SkSVGDOM_DEFINED
 
-#include "SkRefCnt.h"
-#include "SkSize.h"
-#include "SkSVGIDMapper.h"
-#include "SkTemplates.h"
+#include "experimental/svg/model/SkSVGIDMapper.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSize.h"
+#include "include/private/SkTemplates.h"
 
 class SkCanvas;
 class SkDOM;
diff --git a/experimental/svg/model/SkSVGDefs.h b/experimental/svg/model/SkSVGDefs.h
index 3064fe2..1f4fa07 100644
--- a/experimental/svg/model/SkSVGDefs.h
+++ b/experimental/svg/model/SkSVGDefs.h
@@ -8,7 +8,7 @@
 #ifndef SkSVGDefs_DEFINED
 #define SkSVGDefs_DEFINED
 
-#include "SkSVGHiddenContainer.h"
+#include "experimental/svg/model/SkSVGHiddenContainer.h"
 
 class SkSVGDefs : public SkSVGHiddenContainer {
 public:
diff --git a/experimental/svg/model/SkSVGEllipse.cpp b/experimental/svg/model/SkSVGEllipse.cpp
index 3f38b22..b7d4fad 100644
--- a/experimental/svg/model/SkSVGEllipse.cpp
+++ b/experimental/svg/model/SkSVGEllipse.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkSVGEllipse.h"
-#include "SkSVGRenderContext.h"
-#include "SkSVGValue.h"
+#include "experimental/svg/model/SkSVGEllipse.h"
+#include "experimental/svg/model/SkSVGRenderContext.h"
+#include "experimental/svg/model/SkSVGValue.h"
+#include "include/core/SkCanvas.h"
 
 SkSVGEllipse::SkSVGEllipse() : INHERITED(SkSVGTag::kEllipse) {}
 
diff --git a/experimental/svg/model/SkSVGEllipse.h b/experimental/svg/model/SkSVGEllipse.h
index 68cebd7..c6bd2b3 100644
--- a/experimental/svg/model/SkSVGEllipse.h
+++ b/experimental/svg/model/SkSVGEllipse.h
@@ -8,8 +8,8 @@
 #ifndef SkSVGEllipse_DEFINED
 #define SkSVGEllipse_DEFINED
 
-#include "SkSVGShape.h"
-#include "SkSVGTypes.h"
+#include "experimental/svg/model/SkSVGShape.h"
+#include "experimental/svg/model/SkSVGTypes.h"
 
 struct SkRect;
 
diff --git a/experimental/svg/model/SkSVGG.h b/experimental/svg/model/SkSVGG.h
index b8229c0..ca1c71c 100644
--- a/experimental/svg/model/SkSVGG.h
+++ b/experimental/svg/model/SkSVGG.h
@@ -8,7 +8,7 @@
 #ifndef SkSVGG_DEFINED
 #define SkSVGG_DEFINED
 
-#include "SkSVGContainer.h"
+#include "experimental/svg/model/SkSVGContainer.h"
 
 class SkSVGG : public SkSVGContainer {
 public:
diff --git a/experimental/svg/model/SkSVGGradient.cpp b/experimental/svg/model/SkSVGGradient.cpp
index a591522..38c2379 100644
--- a/experimental/svg/model/SkSVGGradient.cpp
+++ b/experimental/svg/model/SkSVGGradient.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkSVGGradient.h"
-#include "SkSVGRenderContext.h"
-#include "SkSVGStop.h"
-#include "SkSVGValue.h"
+#include "experimental/svg/model/SkSVGGradient.h"
+#include "experimental/svg/model/SkSVGRenderContext.h"
+#include "experimental/svg/model/SkSVGStop.h"
+#include "experimental/svg/model/SkSVGValue.h"
 
 void SkSVGGradient::setHref(const SkSVGStringType& href) {
     fHref = std::move(href);
diff --git a/experimental/svg/model/SkSVGGradient.h b/experimental/svg/model/SkSVGGradient.h
index 1c6efa1..1df73d2 100644
--- a/experimental/svg/model/SkSVGGradient.h
+++ b/experimental/svg/model/SkSVGGradient.h
@@ -8,9 +8,9 @@
 #ifndef SkSVGGradient_DEFINED
 #define SkSVGGradient_DEFINED
 
-#include "SkShader.h"
-#include "SkSVGHiddenContainer.h"
-#include "SkSVGTypes.h"
+#include "experimental/svg/model/SkSVGHiddenContainer.h"
+#include "experimental/svg/model/SkSVGTypes.h"
+#include "include/core/SkShader.h"
 
 class SkMatrix;
 class SkSVGRenderContext;
diff --git a/experimental/svg/model/SkSVGHiddenContainer.h b/experimental/svg/model/SkSVGHiddenContainer.h
index e224e55..b28cd00 100644
--- a/experimental/svg/model/SkSVGHiddenContainer.h
+++ b/experimental/svg/model/SkSVGHiddenContainer.h
@@ -8,7 +8,7 @@
 #ifndef SkSVGHiddenContainer_DEFINED
 #define SkSVGHiddenContainer_DEFINED
 
-#include "SkSVGContainer.h"
+#include "experimental/svg/model/SkSVGContainer.h"
 
 class SkSVGHiddenContainer : public SkSVGContainer {
 public:
diff --git a/experimental/svg/model/SkSVGIDMapper.h b/experimental/svg/model/SkSVGIDMapper.h
index d88c1f1..ea0d916 100644
--- a/experimental/svg/model/SkSVGIDMapper.h
+++ b/experimental/svg/model/SkSVGIDMapper.h
@@ -8,8 +8,8 @@
 #ifndef SkSVGIDMapper_DEFINED
 #define SkSVGIDMapper_DEFINED
 
-#include "SkRefCnt.h"
-#include "SkTHash.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkTHash.h"
 
 class SkString;
 class SkSVGNode;
diff --git a/experimental/svg/model/SkSVGLine.cpp b/experimental/svg/model/SkSVGLine.cpp
index 2719a9b..3d0efa1 100644
--- a/experimental/svg/model/SkSVGLine.cpp
+++ b/experimental/svg/model/SkSVGLine.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkSVGLine.h"
-#include "SkSVGRenderContext.h"
-#include "SkSVGValue.h"
+#include "experimental/svg/model/SkSVGLine.h"
+#include "experimental/svg/model/SkSVGRenderContext.h"
+#include "experimental/svg/model/SkSVGValue.h"
+#include "include/core/SkCanvas.h"
 
 SkSVGLine::SkSVGLine() : INHERITED(SkSVGTag::kLine) {}
 
diff --git a/experimental/svg/model/SkSVGLine.h b/experimental/svg/model/SkSVGLine.h
index ec6213c..08e0fe6 100644
--- a/experimental/svg/model/SkSVGLine.h
+++ b/experimental/svg/model/SkSVGLine.h
@@ -8,8 +8,8 @@
 #ifndef SkSVGLine_DEFINED
 #define SkSVGLine_DEFINED
 
-#include "SkSVGShape.h"
-#include "SkSVGTypes.h"
+#include "experimental/svg/model/SkSVGShape.h"
+#include "experimental/svg/model/SkSVGTypes.h"
 
 struct SkPoint;
 
diff --git a/experimental/svg/model/SkSVGLinearGradient.cpp b/experimental/svg/model/SkSVGLinearGradient.cpp
index 63aeebb..59edc84 100644
--- a/experimental/svg/model/SkSVGLinearGradient.cpp
+++ b/experimental/svg/model/SkSVGLinearGradient.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkGradientShader.h"
-#include "SkSVGLinearGradient.h"
-#include "SkSVGRenderContext.h"
-#include "SkSVGValue.h"
+#include "experimental/svg/model/SkSVGLinearGradient.h"
+#include "experimental/svg/model/SkSVGRenderContext.h"
+#include "experimental/svg/model/SkSVGValue.h"
+#include "include/effects/SkGradientShader.h"
 
 SkSVGLinearGradient::SkSVGLinearGradient() : INHERITED(SkSVGTag::kLinearGradient) {}
 
diff --git a/experimental/svg/model/SkSVGLinearGradient.h b/experimental/svg/model/SkSVGLinearGradient.h
index 923c79b..f6ae5b3 100644
--- a/experimental/svg/model/SkSVGLinearGradient.h
+++ b/experimental/svg/model/SkSVGLinearGradient.h
@@ -8,8 +8,8 @@
 #ifndef SkSVGLinearGradient_DEFINED
 #define SkSVGLinearGradient_DEFINED
 
-#include "SkSVGGradient.h"
-#include "SkSVGTypes.h"
+#include "experimental/svg/model/SkSVGGradient.h"
+#include "experimental/svg/model/SkSVGTypes.h"
 
 class SkSVGLinearGradient final : public SkSVGGradient {
 public:
diff --git a/experimental/svg/model/SkSVGNode.cpp b/experimental/svg/model/SkSVGNode.cpp
index 60c0948..e872493 100644
--- a/experimental/svg/model/SkSVGNode.cpp
+++ b/experimental/svg/model/SkSVGNode.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkMatrix.h"
-#include "SkPathOps.h"
-#include "SkSVGNode.h"
-#include "SkSVGRenderContext.h"
-#include "SkSVGValue.h"
-#include "SkTLazy.h"
+#include "experimental/svg/model/SkSVGNode.h"
+#include "experimental/svg/model/SkSVGRenderContext.h"
+#include "experimental/svg/model/SkSVGValue.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMatrix.h"
+#include "include/pathops/SkPathOps.h"
+#include "src/core/SkTLazy.h"
 
 SkSVGNode::SkSVGNode(SkSVGTag t) : fTag(t) { }
 
diff --git a/experimental/svg/model/SkSVGNode.h b/experimental/svg/model/SkSVGNode.h
index ffc4411..0a20a67 100644
--- a/experimental/svg/model/SkSVGNode.h
+++ b/experimental/svg/model/SkSVGNode.h
@@ -8,8 +8,8 @@
 #ifndef SkSVGNode_DEFINED
 #define SkSVGNode_DEFINED
 
-#include "SkRefCnt.h"
-#include "SkSVGAttribute.h"
+#include "experimental/svg/model/SkSVGAttribute.h"
+#include "include/core/SkRefCnt.h"
 
 class SkCanvas;
 class SkMatrix;
diff --git a/experimental/svg/model/SkSVGPath.cpp b/experimental/svg/model/SkSVGPath.cpp
index 3c09ab9..f3f4524 100644
--- a/experimental/svg/model/SkSVGPath.cpp
+++ b/experimental/svg/model/SkSVGPath.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkSVGPath.h"
-#include "SkSVGRenderContext.h"
-#include "SkSVGValue.h"
+#include "experimental/svg/model/SkSVGPath.h"
+#include "experimental/svg/model/SkSVGRenderContext.h"
+#include "experimental/svg/model/SkSVGValue.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
 
 SkSVGPath::SkSVGPath() : INHERITED(SkSVGTag::kPath) { }
 
diff --git a/experimental/svg/model/SkSVGPath.h b/experimental/svg/model/SkSVGPath.h
index 176b838..5b41637 100644
--- a/experimental/svg/model/SkSVGPath.h
+++ b/experimental/svg/model/SkSVGPath.h
@@ -8,8 +8,8 @@
 #ifndef SkSVGPath_DEFINED
 #define SkSVGPath_DEFINED
 
-#include "SkPath.h"
-#include "SkSVGShape.h"
+#include "experimental/svg/model/SkSVGShape.h"
+#include "include/core/SkPath.h"
 
 class SkSVGPath final : public SkSVGShape {
 public:
diff --git a/experimental/svg/model/SkSVGPattern.cpp b/experimental/svg/model/SkSVGPattern.cpp
index ffed054..9b92270 100644
--- a/experimental/svg/model/SkSVGPattern.cpp
+++ b/experimental/svg/model/SkSVGPattern.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkSVGPattern.h"
+#include "experimental/svg/model/SkSVGPattern.h"
 
-#include "SkPictureRecorder.h"
-#include "SkShader.h"
-#include "SkSVGRenderContext.h"
-#include "SkSVGValue.h"
+#include "experimental/svg/model/SkSVGRenderContext.h"
+#include "experimental/svg/model/SkSVGValue.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkShader.h"
 
 SkSVGPattern::SkSVGPattern() : INHERITED(SkSVGTag::kPattern) {}
 
diff --git a/experimental/svg/model/SkSVGPattern.h b/experimental/svg/model/SkSVGPattern.h
index 6ae0fee..850baa1 100644
--- a/experimental/svg/model/SkSVGPattern.h
+++ b/experimental/svg/model/SkSVGPattern.h
@@ -8,8 +8,8 @@
 #ifndef SkSVGPattern_DEFINED
 #define SkSVGPattern_DEFINED
 
-#include "SkSVGHiddenContainer.h"
-#include "SkSVGTypes.h"
+#include "experimental/svg/model/SkSVGHiddenContainer.h"
+#include "experimental/svg/model/SkSVGTypes.h"
 
 class SkSVGRenderContext;
 
diff --git a/experimental/svg/model/SkSVGPoly.cpp b/experimental/svg/model/SkSVGPoly.cpp
index e2bc5bc..6bacb1a 100644
--- a/experimental/svg/model/SkSVGPoly.cpp
+++ b/experimental/svg/model/SkSVGPoly.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkTLazy.h"
-#include "SkSVGRenderContext.h"
-#include "SkSVGPoly.h"
-#include "SkSVGValue.h"
+#include "experimental/svg/model/SkSVGPoly.h"
+#include "experimental/svg/model/SkSVGRenderContext.h"
+#include "experimental/svg/model/SkSVGValue.h"
+#include "include/core/SkCanvas.h"
+#include "src/core/SkTLazy.h"
 
 SkSVGPoly::SkSVGPoly(SkSVGTag t) : INHERITED(t) {}
 
diff --git a/experimental/svg/model/SkSVGPoly.h b/experimental/svg/model/SkSVGPoly.h
index 3259bc0..f47b764 100644
--- a/experimental/svg/model/SkSVGPoly.h
+++ b/experimental/svg/model/SkSVGPoly.h
@@ -8,8 +8,8 @@
 #ifndef SkSVGPoly_DEFINED
 #define SkSVGPoly_DEFINED
 
-#include "SkPath.h"
-#include "SkSVGShape.h"
+#include "experimental/svg/model/SkSVGShape.h"
+#include "include/core/SkPath.h"
 
 // Handles <polygon> and <polyline> elements.
 class SkSVGPoly final : public SkSVGShape {
diff --git a/experimental/svg/model/SkSVGRadialGradient.cpp b/experimental/svg/model/SkSVGRadialGradient.cpp
index b1011a2..c77701a 100644
--- a/experimental/svg/model/SkSVGRadialGradient.cpp
+++ b/experimental/svg/model/SkSVGRadialGradient.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkGradientShader.h"
-#include "SkSVGRadialGradient.h"
-#include "SkSVGRenderContext.h"
-#include "SkSVGValue.h"
+#include "experimental/svg/model/SkSVGRadialGradient.h"
+#include "experimental/svg/model/SkSVGRenderContext.h"
+#include "experimental/svg/model/SkSVGValue.h"
+#include "include/effects/SkGradientShader.h"
 
 SkSVGRadialGradient::SkSVGRadialGradient() : INHERITED(SkSVGTag::kRadialGradient) {}
 
diff --git a/experimental/svg/model/SkSVGRadialGradient.h b/experimental/svg/model/SkSVGRadialGradient.h
index e71947a..6a26700 100644
--- a/experimental/svg/model/SkSVGRadialGradient.h
+++ b/experimental/svg/model/SkSVGRadialGradient.h
@@ -8,8 +8,8 @@
 #ifndef SkSVGRadialGradient_DEFINED
 #define SkSVGRadialGradient_DEFINED
 
-#include "SkSVGGradient.h"
-#include "SkSVGTypes.h"
+#include "experimental/svg/model/SkSVGGradient.h"
+#include "experimental/svg/model/SkSVGTypes.h"
 
 class SkSVGRadialGradient final : public SkSVGGradient {
 public:
diff --git a/experimental/svg/model/SkSVGRect.cpp b/experimental/svg/model/SkSVGRect.cpp
index fe68d62..24267d0 100644
--- a/experimental/svg/model/SkSVGRect.cpp
+++ b/experimental/svg/model/SkSVGRect.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkRect.h"
-#include "SkSVGRect.h"
-#include "SkSVGRenderContext.h"
-#include "SkSVGValue.h"
+#include "experimental/svg/model/SkSVGRect.h"
+#include "experimental/svg/model/SkSVGRenderContext.h"
+#include "experimental/svg/model/SkSVGValue.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkRect.h"
 
 SkSVGRect::SkSVGRect() : INHERITED(SkSVGTag::kRect) {}
 
diff --git a/experimental/svg/model/SkSVGRect.h b/experimental/svg/model/SkSVGRect.h
index e61f276..7d749b0 100644
--- a/experimental/svg/model/SkSVGRect.h
+++ b/experimental/svg/model/SkSVGRect.h
@@ -8,8 +8,8 @@
 #ifndef SkSVGRect_DEFINED
 #define SkSVGRect_DEFINED
 
-#include "SkSVGShape.h"
-#include "SkSVGTypes.h"
+#include "experimental/svg/model/SkSVGShape.h"
+#include "experimental/svg/model/SkSVGTypes.h"
 
 class SkRRect;
 
diff --git a/experimental/svg/model/SkSVGRenderContext.cpp b/experimental/svg/model/SkSVGRenderContext.cpp
index cab5a00..595a704 100644
--- a/experimental/svg/model/SkSVGRenderContext.cpp
+++ b/experimental/svg/model/SkSVGRenderContext.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkSVGRenderContext.h"
+#include "experimental/svg/model/SkSVGRenderContext.h"
 
-#include "SkCanvas.h"
-#include "SkDashPathEffect.h"
-#include "SkPath.h"
-#include "SkSVGAttribute.h"
-#include "SkSVGNode.h"
-#include "SkSVGTypes.h"
-#include "SkTo.h"
+#include "experimental/svg/model/SkSVGAttribute.h"
+#include "experimental/svg/model/SkSVGNode.h"
+#include "experimental/svg/model/SkSVGTypes.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "include/private/SkTo.h"
 
 namespace {
 
diff --git a/experimental/svg/model/SkSVGRenderContext.h b/experimental/svg/model/SkSVGRenderContext.h
index 69bf9f2..156dc3c 100644
--- a/experimental/svg/model/SkSVGRenderContext.h
+++ b/experimental/svg/model/SkSVGRenderContext.h
@@ -8,14 +8,14 @@
 #ifndef SkSVGRenderContext_DEFINED
 #define SkSVGRenderContext_DEFINED
 
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRect.h"
-#include "SkSize.h"
-#include "SkSVGAttribute.h"
-#include "SkSVGIDMapper.h"
-#include "SkTLazy.h"
-#include "SkTypes.h"
+#include "experimental/svg/model/SkSVGAttribute.h"
+#include "experimental/svg/model/SkSVGIDMapper.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkTypes.h"
+#include "src/core/SkTLazy.h"
 
 class SkCanvas;
 class SkSVGLength;
diff --git a/experimental/svg/model/SkSVGSVG.cpp b/experimental/svg/model/SkSVGSVG.cpp
index ef919a8..9a3c455 100644
--- a/experimental/svg/model/SkSVGSVG.cpp
+++ b/experimental/svg/model/SkSVGSVG.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkSVGRenderContext.h"
-#include "SkSVGSVG.h"
-#include "SkSVGValue.h"
+#include "experimental/svg/model/SkSVGRenderContext.h"
+#include "experimental/svg/model/SkSVGSVG.h"
+#include "experimental/svg/model/SkSVGValue.h"
+#include "include/core/SkCanvas.h"
 
 SkSVGSVG::SkSVGSVG() : INHERITED(SkSVGTag::kSvg) { }
 
diff --git a/experimental/svg/model/SkSVGSVG.h b/experimental/svg/model/SkSVGSVG.h
index 0dfeb76..ccdd06f 100644
--- a/experimental/svg/model/SkSVGSVG.h
+++ b/experimental/svg/model/SkSVGSVG.h
@@ -8,9 +8,9 @@
 #ifndef SkSVGSVG_DEFINED
 #define SkSVGSVG_DEFINED
 
-#include "SkSVGContainer.h"
-#include "SkSVGTypes.h"
-#include "SkTLazy.h"
+#include "experimental/svg/model/SkSVGContainer.h"
+#include "experimental/svg/model/SkSVGTypes.h"
+#include "src/core/SkTLazy.h"
 
 class SkSVGLengthContext;
 
diff --git a/experimental/svg/model/SkSVGShape.cpp b/experimental/svg/model/SkSVGShape.cpp
index 7394bc6..3426e74 100644
--- a/experimental/svg/model/SkSVGShape.cpp
+++ b/experimental/svg/model/SkSVGShape.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkSVGRenderContext.h"
-#include "SkSVGShape.h"
+#include "experimental/svg/model/SkSVGRenderContext.h"
+#include "experimental/svg/model/SkSVGShape.h"
 
 SkSVGShape::SkSVGShape(SkSVGTag t) : INHERITED(t) {}
 
diff --git a/experimental/svg/model/SkSVGShape.h b/experimental/svg/model/SkSVGShape.h
index 98d9b4b..bfbad0e 100644
--- a/experimental/svg/model/SkSVGShape.h
+++ b/experimental/svg/model/SkSVGShape.h
@@ -8,8 +8,8 @@
 #ifndef SkSVGShape_DEFINED
 #define SkSVGShape_DEFINED
 
-#include "SkPath.h"
-#include "SkSVGTransformableNode.h"
+#include "experimental/svg/model/SkSVGTransformableNode.h"
+#include "include/core/SkPath.h"
 
 class SkSVGLengthContext;
 class SkPaint;
diff --git a/experimental/svg/model/SkSVGStop.cpp b/experimental/svg/model/SkSVGStop.cpp
index 3abf505..b666262 100644
--- a/experimental/svg/model/SkSVGStop.cpp
+++ b/experimental/svg/model/SkSVGStop.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkSVGRenderContext.h"
-#include "SkSVGStop.h"
-#include "SkSVGValue.h"
+#include "experimental/svg/model/SkSVGRenderContext.h"
+#include "experimental/svg/model/SkSVGStop.h"
+#include "experimental/svg/model/SkSVGValue.h"
 
 SkSVGStop::SkSVGStop() : INHERITED(SkSVGTag::kStop) {}
 
diff --git a/experimental/svg/model/SkSVGStop.h b/experimental/svg/model/SkSVGStop.h
index 5eb0442..f24b104 100644
--- a/experimental/svg/model/SkSVGStop.h
+++ b/experimental/svg/model/SkSVGStop.h
@@ -8,8 +8,8 @@
 #ifndef SkSVGStop_DEFINED
 #define SkSVGStop_DEFINED
 
-#include "SkSVGHiddenContainer.h"
-#include "SkSVGTypes.h"
+#include "experimental/svg/model/SkSVGHiddenContainer.h"
+#include "experimental/svg/model/SkSVGTypes.h"
 
 class SkSVGLengthContext;
 
diff --git a/experimental/svg/model/SkSVGTransformableNode.cpp b/experimental/svg/model/SkSVGTransformableNode.cpp
index e8713c0..77be665 100644
--- a/experimental/svg/model/SkSVGTransformableNode.cpp
+++ b/experimental/svg/model/SkSVGTransformableNode.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkSVGRenderContext.h"
-#include "SkSVGTransformableNode.h"
-#include "SkSVGValue.h"
+#include "experimental/svg/model/SkSVGRenderContext.h"
+#include "experimental/svg/model/SkSVGTransformableNode.h"
+#include "experimental/svg/model/SkSVGValue.h"
+#include "include/core/SkCanvas.h"
 
 SkSVGTransformableNode::SkSVGTransformableNode(SkSVGTag tag)
     : INHERITED(tag)
diff --git a/experimental/svg/model/SkSVGTransformableNode.h b/experimental/svg/model/SkSVGTransformableNode.h
index f9cd668..32096e0 100644
--- a/experimental/svg/model/SkSVGTransformableNode.h
+++ b/experimental/svg/model/SkSVGTransformableNode.h
@@ -8,8 +8,8 @@
 #ifndef SkSVGTransformableNode_DEFINED
 #define SkSVGTransformableNode_DEFINED
 
-#include "SkMatrix.h"
-#include "SkSVGNode.h"
+#include "experimental/svg/model/SkSVGNode.h"
+#include "include/core/SkMatrix.h"
 
 class SkSVGTransformableNode : public SkSVGNode {
 public:
diff --git a/experimental/svg/model/SkSVGTypes.h b/experimental/svg/model/SkSVGTypes.h
index 0878068..9ac7654 100644
--- a/experimental/svg/model/SkSVGTypes.h
+++ b/experimental/svg/model/SkSVGTypes.h
@@ -8,15 +8,15 @@
 #ifndef SkSVGTypes_DEFINED
 #define SkSVGTypes_DEFINED
 
-#include "SkColor.h"
-#include "SkMatrix.h"
-#include "SkPath.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkScalar.h"
-#include "SkString.h"
-#include "SkTDArray.h"
-#include "SkTypes.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTDArray.h"
 
 template <typename T>
 class SkSVGPrimitiveTypeWrapper {
diff --git a/experimental/svg/model/SkSVGUse.cpp b/experimental/svg/model/SkSVGUse.cpp
index b0d6f93..9a1d2e4 100644
--- a/experimental/svg/model/SkSVGUse.cpp
+++ b/experimental/svg/model/SkSVGUse.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkSVGUse.h"
+#include "experimental/svg/model/SkSVGUse.h"
 
-#include "SkCanvas.h"
-#include "SkSVGRenderContext.h"
-#include "SkSVGValue.h"
+#include "experimental/svg/model/SkSVGRenderContext.h"
+#include "experimental/svg/model/SkSVGValue.h"
+#include "include/core/SkCanvas.h"
 
 SkSVGUse::SkSVGUse() : INHERITED(SkSVGTag::kUse) {}
 
diff --git a/experimental/svg/model/SkSVGUse.h b/experimental/svg/model/SkSVGUse.h
index 4ae17e6..2e9197d 100644
--- a/experimental/svg/model/SkSVGUse.h
+++ b/experimental/svg/model/SkSVGUse.h
@@ -8,8 +8,8 @@
 #ifndef SkSVGUse_DEFINED
 #define SkSVGUse_DEFINED
 
-#include "SkSVGTransformableNode.h"
-#include "SkSVGTypes.h"
+#include "experimental/svg/model/SkSVGTransformableNode.h"
+#include "experimental/svg/model/SkSVGTypes.h"
 
 /**
  * Implements support for <use> (reference) elements.
diff --git a/experimental/svg/model/SkSVGValue.cpp b/experimental/svg/model/SkSVGValue.cpp
index aec49d2..0b9d9c1 100644
--- a/experimental/svg/model/SkSVGValue.cpp
+++ b/experimental/svg/model/SkSVGValue.cpp
@@ -5,5 +5,3 @@
  * found in the LICENSE file.
  */
 
-#include "SkSVGTypes.h"
-#include "SkSVGValue.h"
diff --git a/experimental/svg/model/SkSVGValue.h b/experimental/svg/model/SkSVGValue.h
index d58d845..f0b7207 100644
--- a/experimental/svg/model/SkSVGValue.h
+++ b/experimental/svg/model/SkSVGValue.h
@@ -8,12 +8,12 @@
 #ifndef SkSVGValue_DEFINED
 #define SkSVGValue_DEFINED
 
-#include "SkColor.h"
-#include "SkMatrix.h"
-#include "SkNoncopyable.h"
-#include "SkPath.h"
-#include "SkSVGTypes.h"
-#include "SkTypes.h"
+#include "experimental/svg/model/SkSVGTypes.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkNoncopyable.h"
 
 class SkSVGValue : public SkNoncopyable {
 public:
diff --git a/experimental/wasm-skp-debugger/compile.sh b/experimental/wasm-skp-debugger/compile.sh
index 8228979..152f94a 100755
--- a/experimental/wasm-skp-debugger/compile.sh
+++ b/experimental/wasm-skp-debugger/compile.sh
@@ -117,26 +117,9 @@
 # Emscripten will use LLD, which may relax this requirement.
 ${EMCXX} \
     $RELEASE_CONF \
-    -Iexperimental \
-    -Iinclude/c \
-    -Iinclude/codec \
-    -Iinclude/config \
-    -Iinclude/core \
-    -Iinclude/effects \
-    -Iinclude/gpu \
-    -Iinclude/gpu/gl \
-    -Iinclude/pathops \
-    -Iinclude/private \
-    -Iinclude/utils/ \
-    -Isrc/core/ \
-    -Isrc/gpu/ \
-    -Isrc/sfnt/ \
-    -Isrc/shaders/ \
-    -Isrc/utils/ \
+    -I. \
     -Ithird_party/icu \
     -Ithird_party/skcms \
-    -Itools \
-    -Itools/debugger \
     -DSK_DISABLE_AAA \
     -std=c++17 \
     $WASM_GPU \
diff --git a/experimental/wasm-skp-debugger/debugger_bindings.cpp b/experimental/wasm-skp-debugger/debugger_bindings.cpp
index a07cc4d..b4fb35d 100644
--- a/experimental/wasm-skp-debugger/debugger_bindings.cpp
+++ b/experimental/wasm-skp-debugger/debugger_bindings.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "DebugCanvas.h"
-#include "SkJSONWriter.h"
-#include "SkPicture.h"
-#include "SkSurface.h"
-#include "UrlDataManager.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkSurface.h"
+#include "src/utils/SkJSONWriter.h"
+#include "tools/UrlDataManager.h"
+#include "tools/debugger/DebugCanvas.h"
 
 #include <emscripten.h>
 #include <emscripten/bind.h>
 
 #if SK_SUPPORT_GPU
-#include "GrBackendSurface.h"
-#include "GrContext.h"
-#include "GrGLInterface.h"
-#include "GrGLTypes.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "include/gpu/gl/GrGLTypes.h"
 
 #include <GL/gl.h>
 #include <emscripten/html5.h>
diff --git a/fuzz/Fuzz.cpp b/fuzz/Fuzz.cpp
index 35a00bf..3e378af 100644
--- a/fuzz/Fuzz.cpp
+++ b/fuzz/Fuzz.cpp
@@ -6,8 +6,8 @@
  */
 
 
-#include "Fuzz.h"
-#include "FuzzCommon.h"
+#include "fuzz/Fuzz.h"
+#include "fuzz/FuzzCommon.h"
 
 // UBSAN reminds us that bool can only legally hold 0 or 1.
 void Fuzz::next(bool* b) {
diff --git a/fuzz/Fuzz.h b/fuzz/Fuzz.h
index f28298e..596221c 100644
--- a/fuzz/Fuzz.h
+++ b/fuzz/Fuzz.h
@@ -8,12 +8,12 @@
 #ifndef Fuzz_DEFINED
 #define Fuzz_DEFINED
 
-#include "../tools/Registry.h"
-#include "SkData.h"
-#include "SkImageFilter.h"
-#include "SkMalloc.h"
-#include "SkRegion.h"
-#include "SkTypes.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkMalloc.h"
+#include "tools/Registry.h"
 
 #include <limits>
 #include <cmath>
diff --git a/fuzz/FuzzCanvas.cpp b/fuzz/FuzzCanvas.cpp
index 6134ff1..67c13a3 100644
--- a/fuzz/FuzzCanvas.cpp
+++ b/fuzz/FuzzCanvas.cpp
@@ -5,73 +5,73 @@
  * found in the LICENSE file.
  */
 
-#include "Fuzz.h"
-#include "FuzzCommon.h"
+#include "fuzz/Fuzz.h"
+#include "fuzz/FuzzCommon.h"
 
 // CORE
-#include "DebugCanvas.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkFontMgr.h"
-#include "SkImageFilter.h"
-#include "SkMaskFilter.h"
-#include "SkNullCanvas.h"
-#include "SkOSFile.h"
-#include "SkPDFDocument.h"
-#include "SkPathEffect.h"
-#include "SkPicturePriv.h"
-#include "SkPictureRecorder.h"
-#include "SkPoint3.h"
-#include "SkRSXform.h"
-#include "SkRegion.h"
-#include "SkSurface.h"
-#include "SkTo.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkPoint3.h"
+#include "include/core/SkRSXform.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTypeface.h"
+#include "include/docs/SkPDFDocument.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkNullCanvas.h"
+#include "src/core/SkOSFile.h"
+#include "src/core/SkPicturePriv.h"
+#include "tools/debugger/DebugCanvas.h"
 
 // EFFECTS
-#include "Sk1DPathEffect.h"
-#include "Sk2DPathEffect.h"
-#include "SkAlphaThresholdFilter.h"
-#include "SkArithmeticImageFilter.h"
-#include "SkBlurImageFilter.h"
-#include "SkBlurMaskFilter.h"
-#include "SkColorFilterImageFilter.h"
-#include "SkColorMatrixFilter.h"
-#include "SkComposeImageFilter.h"
-#include "SkCornerPathEffect.h"
-#include "SkDashPathEffect.h"
-#include "SkDiscretePathEffect.h"
-#include "SkDisplacementMapEffect.h"
-#include "SkDropShadowImageFilter.h"
-#include "SkGradientShader.h"
-#include "SkHighContrastFilter.h"
-#include "SkImageSource.h"
-#include "SkLightingImageFilter.h"
-#include "SkLumaColorFilter.h"
-#include "SkMagnifierImageFilter.h"
-#include "SkMatrixConvolutionImageFilter.h"
-#include "SkMergeImageFilter.h"
-#include "SkMorphologyImageFilter.h"
-#include "SkOffsetImageFilter.h"
-#include "SkPaintImageFilter.h"
-#include "SkPerlinNoiseShader.h"
-#include "SkPictureImageFilter.h"
-#include "SkReadBuffer.h"
-#include "SkTableColorFilter.h"
-#include "SkTextBlob.h"
-#include "SkTileImageFilter.h"
-#include "SkXfermodeImageFilter.h"
+#include "include/core/SkTextBlob.h"
+#include "include/effects/Sk1DPathEffect.h"
+#include "include/effects/Sk2DPathEffect.h"
+#include "include/effects/SkAlphaThresholdFilter.h"
+#include "include/effects/SkArithmeticImageFilter.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "include/effects/SkColorFilterImageFilter.h"
+#include "include/effects/SkColorMatrixFilter.h"
+#include "include/effects/SkComposeImageFilter.h"
+#include "include/effects/SkCornerPathEffect.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "include/effects/SkDiscretePathEffect.h"
+#include "include/effects/SkDisplacementMapEffect.h"
+#include "include/effects/SkDropShadowImageFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/effects/SkHighContrastFilter.h"
+#include "include/effects/SkImageSource.h"
+#include "include/effects/SkLightingImageFilter.h"
+#include "include/effects/SkLumaColorFilter.h"
+#include "include/effects/SkMagnifierImageFilter.h"
+#include "include/effects/SkMatrixConvolutionImageFilter.h"
+#include "include/effects/SkMergeImageFilter.h"
+#include "include/effects/SkMorphologyImageFilter.h"
+#include "include/effects/SkOffsetImageFilter.h"
+#include "include/effects/SkPaintImageFilter.h"
+#include "include/effects/SkPerlinNoiseShader.h"
+#include "include/effects/SkPictureImageFilter.h"
+#include "include/effects/SkTableColorFilter.h"
+#include "include/effects/SkTileImageFilter.h"
+#include "include/effects/SkXfermodeImageFilter.h"
+#include "src/core/SkReadBuffer.h"
 
 // SRC
-#include "CommandLineFlags.h"
-#include "SkUTF.h"
+#include "src/utils/SkUTF.h"
+#include "tools/flags/CommandLineFlags.h"
 
 #if SK_SUPPORT_GPU
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "gl/GrGLFunctions.h"
-#include "gl/GrGLGpu.h"
-#include "gl/GrGLUtil.h"
+#include "include/gpu/gl/GrGLFunctions.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLUtil.h"
+#include "tools/gpu/GrContextFactory.h"
 #endif
 
 // MISC
diff --git a/fuzz/FuzzCommon.cpp b/fuzz/FuzzCommon.cpp
index 79ffdee..3a2108e 100644
--- a/fuzz/FuzzCommon.cpp
+++ b/fuzz/FuzzCommon.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "Fuzz.h"
-#include "FuzzCommon.h"
+#include "fuzz/Fuzz.h"
+#include "fuzz/FuzzCommon.h"
 
 // We don't always want to test NaNs and infinities.
 static void fuzz_nice_float(Fuzz* fuzz, float* f) {
diff --git a/fuzz/FuzzCommon.h b/fuzz/FuzzCommon.h
index c819023..ad38496 100644
--- a/fuzz/FuzzCommon.h
+++ b/fuzz/FuzzCommon.h
@@ -8,11 +8,11 @@
 #ifndef FuzzCommon_DEFINED
 #define FuzzCommon_DEFINED
 
-#include "Fuzz.h"
-#include "SkMatrix.h"
-#include "SkPath.h"
-#include "SkRRect.h"
-#include "SkRegion.h"
+#include "fuzz/Fuzz.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRegion.h"
 
 // allows some float values for path points
 void FuzzNicePath(Fuzz* fuzz, SkPath* path, int maxOps);
diff --git a/fuzz/FuzzDrawFunctions.cpp b/fuzz/FuzzDrawFunctions.cpp
index 083c45a..9a4d428 100644
--- a/fuzz/FuzzDrawFunctions.cpp
+++ b/fuzz/FuzzDrawFunctions.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "Fuzz.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkImage.h"
-#include "SkPath.h"
-#include "SkSurface.h"
-#include "SkTextBlob.h"
-#include "SkTypeface.h"
-#include "SkClipOpPriv.h"
+#include "fuzz/Fuzz.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "src/core/SkClipOpPriv.h"
 
 static const int kBmpSize = 24;
 static const int kMaxX = 250;
diff --git a/fuzz/FuzzEncoders.cpp b/fuzz/FuzzEncoders.cpp
index 7ca4a48..883c2d8 100644
--- a/fuzz/FuzzEncoders.cpp
+++ b/fuzz/FuzzEncoders.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "Fuzz.h"
-#include "SkBitmap.h"
-#include "SkImage.h"
-#include "SkImageInfo.h"
-#include "SkJpegEncoder.h"
-#include "SkPixmap.h"
-#include "SkPngEncoder.h"
-#include "SkRandom.h"
-#include "SkWebpEncoder.h"
-#include "SkOSFile.h"
+#include "fuzz/Fuzz.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkPixmap.h"
+#include "include/encode/SkJpegEncoder.h"
+#include "include/encode/SkPngEncoder.h"
+#include "include/encode/SkWebpEncoder.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkOSFile.h"
 
 #include <vector>
 
diff --git a/fuzz/FuzzGradients.cpp b/fuzz/FuzzGradients.cpp
index 92ff366..2dfab4e 100644
--- a/fuzz/FuzzGradients.cpp
+++ b/fuzz/FuzzGradients.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "CommandLineFlags.h"
-#include "Fuzz.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkSurface.h"
-#include "SkTLazy.h"
+#include "fuzz/Fuzz.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkGradientShader.h"
+#include "src/core/SkTLazy.h"
+#include "tools/flags/CommandLineFlags.h"
 
 #include <algorithm>
 #include <vector>
diff --git a/fuzz/FuzzMain.cpp b/fuzz/FuzzMain.cpp
index 1047e5f..43f8f36 100644
--- a/fuzz/FuzzMain.cpp
+++ b/fuzz/FuzzMain.cpp
@@ -5,25 +5,25 @@
  * found in the LICENSE file.
  */
 
-#include "CommandLineFlags.h"
-#include "Fuzz.h"
-#include "SkCanvas.h"
-#include "SkCodec.h"
-#include "SkData.h"
-#include "SkImage.h"
-#include "SkImageEncoder.h"
-#include "SkMallocPixelRef.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPicturePriv.h"
-#include "SkReadBuffer.h"
-#include "SkStream.h"
-#include "SkSurface.h"
-#include "SkTextBlob.h"
+#include "fuzz/Fuzz.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageEncoder.h"
+#include "include/core/SkMallocPixelRef.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTextBlob.h"
+#include "src/core/SkOSFile.h"
+#include "src/core/SkPicturePriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/utils/SkOSPath.h"
+#include "tools/flags/CommandLineFlags.h"
 
-#include "ToolUtils.h"
+#include "tools/ToolUtils.h"
 
 #include <iostream>
 #include <map>
diff --git a/fuzz/FuzzParsePath.cpp b/fuzz/FuzzParsePath.cpp
index 7105f7a..5f6c52d 100644
--- a/fuzz/FuzzParsePath.cpp
+++ b/fuzz/FuzzParsePath.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "Fuzz.h"
-#include "SkString.h"
-#include "SkParsePath.h"
+#include "fuzz/Fuzz.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkParsePath.h"
 
 #include <stdlib.h>
 
diff --git a/fuzz/FuzzPathMeasure.cpp b/fuzz/FuzzPathMeasure.cpp
index 62e7b74..8526ff8 100644
--- a/fuzz/FuzzPathMeasure.cpp
+++ b/fuzz/FuzzPathMeasure.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "Fuzz.h"
-#include "FuzzCommon.h"
-#include "SkPathMeasure.h"
+#include "fuzz/Fuzz.h"
+#include "fuzz/FuzzCommon.h"
+#include "include/core/SkPathMeasure.h"
 
 void inline ignoreResult(bool ) {}
 
diff --git a/fuzz/FuzzPathop.cpp b/fuzz/FuzzPathop.cpp
index bb9b88a..63862a9 100644
--- a/fuzz/FuzzPathop.cpp
+++ b/fuzz/FuzzPathop.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Fuzz.h"
-#include "FuzzCommon.h"
-#include "SkPath.h"
-#include "SkPathOps.h"
-#include "SkRect.h"
+#include "fuzz/Fuzz.h"
+#include "fuzz/FuzzCommon.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRect.h"
+#include "include/pathops/SkPathOps.h"
 
 const uint8_t MAX_OPS = 20;
 
diff --git a/fuzz/FuzzPolyUtils.cpp b/fuzz/FuzzPolyUtils.cpp
index 50321d3..af3457b 100644
--- a/fuzz/FuzzPolyUtils.cpp
+++ b/fuzz/FuzzPolyUtils.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "Fuzz.h"
-#include "SkPolyUtils.h"
+#include "fuzz/Fuzz.h"
+#include "src/utils/SkPolyUtils.h"
 
 void inline ignoreResult(bool ) {}
 
diff --git a/fuzz/FuzzRegionOp.cpp b/fuzz/FuzzRegionOp.cpp
index 8cc3157..02a4036 100644
--- a/fuzz/FuzzRegionOp.cpp
+++ b/fuzz/FuzzRegionOp.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "Fuzz.h"
-#include "FuzzCommon.h"
+#include "fuzz/Fuzz.h"
+#include "fuzz/FuzzCommon.h"
 
 DEF_FUZZ(RegionOp, fuzz) {  // `fuzz -t api -n RegionOp`
     SkRegion regionA, regionB, regionC;
diff --git a/fuzz/oss_fuzz/FuzzAPIImageFilter.cpp b/fuzz/oss_fuzz/FuzzAPIImageFilter.cpp
index 1f8753d..03394d3 100644
--- a/fuzz/oss_fuzz/FuzzAPIImageFilter.cpp
+++ b/fuzz/oss_fuzz/FuzzAPIImageFilter.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "../Fuzz.h"
+#include "fuzz/Fuzz.h"
 
 void fuzz_ImageFilter(Fuzz* f);
 
diff --git a/fuzz/oss_fuzz/FuzzAndroidCodec.cpp b/fuzz/oss_fuzz/FuzzAndroidCodec.cpp
index 2e6e2dd..7ab8833 100644
--- a/fuzz/oss_fuzz/FuzzAndroidCodec.cpp
+++ b/fuzz/oss_fuzz/FuzzAndroidCodec.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkAndroidCodec.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkData.h"
-#include "SkSurface.h"
+#include "include/codec/SkAndroidCodec.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkSurface.h"
 
-#include "../Fuzz.h"
+#include "fuzz/Fuzz.h"
 
 bool FuzzAndroidCodec(sk_sp<SkData> bytes, uint8_t sampleSize) {
     auto codec = SkAndroidCodec::MakeFromData(bytes);
diff --git a/fuzz/oss_fuzz/FuzzAnimatedImage.cpp b/fuzz/oss_fuzz/FuzzAnimatedImage.cpp
index e99f7bc..0c64bb9 100644
--- a/fuzz/oss_fuzz/FuzzAnimatedImage.cpp
+++ b/fuzz/oss_fuzz/FuzzAnimatedImage.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkAndroidCodec.h"
-#include "SkAnimatedImage.h"
-#include "SkCanvas.h"
-#include "SkData.h"
-#include "SkSurface.h"
+#include "include/android/SkAnimatedImage.h"
+#include "include/codec/SkAndroidCodec.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkSurface.h"
 
 bool FuzzAnimatedImage(sk_sp<SkData> bytes) {
     auto codec = SkAndroidCodec::MakeFromData(bytes);
diff --git a/fuzz/oss_fuzz/FuzzDrawFunctions.cpp b/fuzz/oss_fuzz/FuzzDrawFunctions.cpp
index ec4e766..906a025 100644
--- a/fuzz/oss_fuzz/FuzzDrawFunctions.cpp
+++ b/fuzz/oss_fuzz/FuzzDrawFunctions.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "../Fuzz.h"
+#include "fuzz/Fuzz.h"
 
 void fuzz_DrawFunctions(Fuzz* f);
 
diff --git a/fuzz/oss_fuzz/FuzzGradients.cpp b/fuzz/oss_fuzz/FuzzGradients.cpp
index 238abde..47809be 100644
--- a/fuzz/oss_fuzz/FuzzGradients.cpp
+++ b/fuzz/oss_fuzz/FuzzGradients.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "../Fuzz.h"
+#include "fuzz/Fuzz.h"
 
 void fuzz_Gradients(Fuzz* f);
 
diff --git a/fuzz/oss_fuzz/FuzzImage.cpp b/fuzz/oss_fuzz/FuzzImage.cpp
index 735eb9c..0ae18d4 100644
--- a/fuzz/oss_fuzz/FuzzImage.cpp
+++ b/fuzz/oss_fuzz/FuzzImage.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkImage.h"
-#include "SkPaint.h"
-#include "SkCanvas.h"
-#include "SkData.h"
-#include "SkSurface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkSurface.h"
 
 bool FuzzImageDecode(sk_sp<SkData> bytes) {
     auto img = SkImage::MakeFromEncoded(bytes);
diff --git a/fuzz/oss_fuzz/FuzzImageFilterDeserialize.cpp b/fuzz/oss_fuzz/FuzzImageFilterDeserialize.cpp
index cb3e332..de9e9bf 100644
--- a/fuzz/oss_fuzz/FuzzImageFilterDeserialize.cpp
+++ b/fuzz/oss_fuzz/FuzzImageFilterDeserialize.cpp
@@ -6,13 +6,13 @@
  */
 
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkData.h"
-#include "SkFontMgrPriv.h"
-#include "SkImageFilter.h"
-#include "SkPaint.h"
-#include "TestFontMgr.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkPaint.h"
+#include "src/core/SkFontMgrPriv.h"
+#include "tools/fonts/TestFontMgr.h"
 
 void FuzzImageFilterDeserialize(sk_sp<SkData> bytes) {
     const int BitmapSize = 24;
diff --git a/fuzz/oss_fuzz/FuzzIncrementalImage.cpp b/fuzz/oss_fuzz/FuzzIncrementalImage.cpp
index 4086b3b..c57cbb9 100644
--- a/fuzz/oss_fuzz/FuzzIncrementalImage.cpp
+++ b/fuzz/oss_fuzz/FuzzIncrementalImage.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkCodec.h"
-#include "SkData.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkData.h"
 
 bool FuzzIncrementalImageDecode(sk_sp<SkData> bytes) {
     auto codec = SkCodec::MakeFromData(bytes);
diff --git a/fuzz/oss_fuzz/FuzzJPEGEncoder.cpp b/fuzz/oss_fuzz/FuzzJPEGEncoder.cpp
index 3d5ce41..cc4cb79 100644
--- a/fuzz/oss_fuzz/FuzzJPEGEncoder.cpp
+++ b/fuzz/oss_fuzz/FuzzJPEGEncoder.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "../Fuzz.h"
+#include "fuzz/Fuzz.h"
 
 void fuzz_JPEGEncoder(Fuzz* f);
 
diff --git a/fuzz/oss_fuzz/FuzzJSON.cpp b/fuzz/oss_fuzz/FuzzJSON.cpp
index d6d3cf8..cb8c5a2 100644
--- a/fuzz/oss_fuzz/FuzzJSON.cpp
+++ b/fuzz/oss_fuzz/FuzzJSON.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkData.h"
-#include "SkJSON.h"
-#include "SkStream.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
+#include "src/utils/SkJSON.h"
 
 void FuzzJSON(sk_sp<SkData> bytes) {
     skjson::DOM dom(static_cast<const char*>(bytes->data()), bytes->size());
diff --git a/fuzz/oss_fuzz/FuzzMockGPUCanvas.cpp b/fuzz/oss_fuzz/FuzzMockGPUCanvas.cpp
index e65467a..05d4d96 100644
--- a/fuzz/oss_fuzz/FuzzMockGPUCanvas.cpp
+++ b/fuzz/oss_fuzz/FuzzMockGPUCanvas.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "../Fuzz.h"
-#include "SkFontMgrPriv.h"
-#include "TestFontMgr.h"
+#include "fuzz/Fuzz.h"
+#include "src/core/SkFontMgrPriv.h"
+#include "tools/fonts/TestFontMgr.h"
 
 void fuzz_MockGPUCanvas(Fuzz* f);
 
diff --git a/fuzz/oss_fuzz/FuzzNullCanvas.cpp b/fuzz/oss_fuzz/FuzzNullCanvas.cpp
index a90f55a..a0483ba 100644
--- a/fuzz/oss_fuzz/FuzzNullCanvas.cpp
+++ b/fuzz/oss_fuzz/FuzzNullCanvas.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "../Fuzz.h"
-#include "SkFontMgrPriv.h"
-#include "TestFontMgr.h"
+#include "fuzz/Fuzz.h"
+#include "src/core/SkFontMgrPriv.h"
+#include "tools/fonts/TestFontMgr.h"
 
 void fuzz_NullCanvas(Fuzz* f);
 
diff --git a/fuzz/oss_fuzz/FuzzPNGEncoder.cpp b/fuzz/oss_fuzz/FuzzPNGEncoder.cpp
index 8e10416..d0eb09c 100644
--- a/fuzz/oss_fuzz/FuzzPNGEncoder.cpp
+++ b/fuzz/oss_fuzz/FuzzPNGEncoder.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "../Fuzz.h"
+#include "fuzz/Fuzz.h"
 
 void fuzz_PNGEncoder(Fuzz* f);
 
diff --git a/fuzz/oss_fuzz/FuzzPathDeserialize.cpp b/fuzz/oss_fuzz/FuzzPathDeserialize.cpp
index 0584d31..05d495c 100644
--- a/fuzz/oss_fuzz/FuzzPathDeserialize.cpp
+++ b/fuzz/oss_fuzz/FuzzPathDeserialize.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkReadBuffer.h"
-#include "SkSurface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkSurface.h"
+#include "src/core/SkReadBuffer.h"
 
 void FuzzPathDeserialize(SkReadBuffer& buf) {
     SkPath path;
diff --git a/fuzz/oss_fuzz/FuzzPathMeasure.cpp b/fuzz/oss_fuzz/FuzzPathMeasure.cpp
index 2713942..a6cebe6 100644
--- a/fuzz/oss_fuzz/FuzzPathMeasure.cpp
+++ b/fuzz/oss_fuzz/FuzzPathMeasure.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "../Fuzz.h"
+#include "fuzz/Fuzz.h"
 
 void fuzz_PathMeasure(Fuzz* f);
 
diff --git a/fuzz/oss_fuzz/FuzzPathop.cpp b/fuzz/oss_fuzz/FuzzPathop.cpp
index d4ddddb..a40d29b 100644
--- a/fuzz/oss_fuzz/FuzzPathop.cpp
+++ b/fuzz/oss_fuzz/FuzzPathop.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "../Fuzz.h"
+#include "fuzz/Fuzz.h"
 
 void fuzz_Pathop(Fuzz* f);
 
diff --git a/fuzz/oss_fuzz/FuzzPolyUtils.cpp b/fuzz/oss_fuzz/FuzzPolyUtils.cpp
index 166da7e..063aee7 100644
--- a/fuzz/oss_fuzz/FuzzPolyUtils.cpp
+++ b/fuzz/oss_fuzz/FuzzPolyUtils.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "../Fuzz.h"
+#include "fuzz/Fuzz.h"
 
 void fuzz_PolyUtils(Fuzz* f);
 
diff --git a/fuzz/oss_fuzz/FuzzRasterN32Canvas.cpp b/fuzz/oss_fuzz/FuzzRasterN32Canvas.cpp
index ed16131..ba56148 100644
--- a/fuzz/oss_fuzz/FuzzRasterN32Canvas.cpp
+++ b/fuzz/oss_fuzz/FuzzRasterN32Canvas.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "../Fuzz.h"
-#include "SkFontMgrPriv.h"
-#include "TestFontMgr.h"
+#include "fuzz/Fuzz.h"
+#include "src/core/SkFontMgrPriv.h"
+#include "tools/fonts/TestFontMgr.h"
 
 void fuzz_RasterN32Canvas(Fuzz* f);
 
diff --git a/fuzz/oss_fuzz/FuzzRegionDeserialize.cpp b/fuzz/oss_fuzz/FuzzRegionDeserialize.cpp
index 15cf786..da4615a 100644
--- a/fuzz/oss_fuzz/FuzzRegionDeserialize.cpp
+++ b/fuzz/oss_fuzz/FuzzRegionDeserialize.cpp
@@ -6,10 +6,10 @@
  */
 
 
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkRegionPriv.h"
-#include "SkSurface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkSurface.h"
+#include "src/core/SkRegionPriv.h"
 
 bool FuzzRegionDeserialize(sk_sp<SkData> bytes) {
     SkRegion region;
diff --git a/fuzz/oss_fuzz/FuzzRegionSetPath.cpp b/fuzz/oss_fuzz/FuzzRegionSetPath.cpp
index fa61d49..369b92b 100644
--- a/fuzz/oss_fuzz/FuzzRegionSetPath.cpp
+++ b/fuzz/oss_fuzz/FuzzRegionSetPath.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "../Fuzz.h"
-#include "../FuzzCommon.h"
-#include "SkData.h"
-#include "SkPath.h"
-#include "SkRegion.h"
+#include "fuzz/Fuzz.h"
+#include "fuzz/FuzzCommon.h"
+#include "include/core/SkData.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
 
 
 void FuzzRegionSetPath(Fuzz* fuzz) {
diff --git a/fuzz/oss_fuzz/FuzzSKSL2GLSL.cpp b/fuzz/oss_fuzz/FuzzSKSL2GLSL.cpp
index 9beca53..f0acc48 100644
--- a/fuzz/oss_fuzz/FuzzSKSL2GLSL.cpp
+++ b/fuzz/oss_fuzz/FuzzSKSL2GLSL.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrShaderCaps.h"
-#include "SkSLCompiler.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/sksl/SkSLCompiler.h"
 
-#include "../Fuzz.h"
+#include "fuzz/Fuzz.h"
 
 bool FuzzSKSL2GLSL(sk_sp<SkData> bytes) {
     SkSL::Compiler compiler;
diff --git a/fuzz/oss_fuzz/FuzzSKSL2Metal.cpp b/fuzz/oss_fuzz/FuzzSKSL2Metal.cpp
index 0f4ed1e..06730c3 100644
--- a/fuzz/oss_fuzz/FuzzSKSL2Metal.cpp
+++ b/fuzz/oss_fuzz/FuzzSKSL2Metal.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrShaderCaps.h"
-#include "SkSLCompiler.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/sksl/SkSLCompiler.h"
 
-#include "../Fuzz.h"
+#include "fuzz/Fuzz.h"
 
 bool FuzzSKSL2Metal(sk_sp<SkData> bytes) {
     SkSL::Compiler compiler;
diff --git a/fuzz/oss_fuzz/FuzzSKSL2Pipeline.cpp b/fuzz/oss_fuzz/FuzzSKSL2Pipeline.cpp
index cc980f7..d58474c 100644
--- a/fuzz/oss_fuzz/FuzzSKSL2Pipeline.cpp
+++ b/fuzz/oss_fuzz/FuzzSKSL2Pipeline.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrShaderCaps.h"
-#include "SkSLCompiler.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/sksl/SkSLCompiler.h"
 
-#include "../Fuzz.h"
+#include "fuzz/Fuzz.h"
 
 bool FuzzSKSL2Pipeline(sk_sp<SkData> bytes) {
     SkSL::Compiler compiler;
diff --git a/fuzz/oss_fuzz/FuzzSKSL2SPIRV.cpp b/fuzz/oss_fuzz/FuzzSKSL2SPIRV.cpp
index 59c4c71..dac6133 100644
--- a/fuzz/oss_fuzz/FuzzSKSL2SPIRV.cpp
+++ b/fuzz/oss_fuzz/FuzzSKSL2SPIRV.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrShaderCaps.h"
-#include "SkSLCompiler.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/sksl/SkSLCompiler.h"
 
-#include "../Fuzz.h"
+#include "fuzz/Fuzz.h"
 
 bool FuzzSKSL2SPIRV(sk_sp<SkData> bytes) {
     SkSL::Compiler compiler;
diff --git a/fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp b/fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp
index 6cd0ca9..975eeb8 100644
--- a/fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp
+++ b/fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkFontMgrPriv.h"
-#include "SkPaint.h"
-#include "SkReadBuffer.h"
-#include "SkSurface.h"
-#include "SkTextBlobPriv.h"
-#include "TestFontMgr.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkSurface.h"
+#include "src/core/SkFontMgrPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkTextBlobPriv.h"
+#include "tools/fonts/TestFontMgr.h"
 
 void FuzzTextBlobDeserialize(SkReadBuffer& buf) {
     auto tb = SkTextBlobPriv::MakeFromBuffer(buf);
diff --git a/fuzz/oss_fuzz/FuzzWEBPEncoder.cpp b/fuzz/oss_fuzz/FuzzWEBPEncoder.cpp
index f1da38d..40d84b7 100644
--- a/fuzz/oss_fuzz/FuzzWEBPEncoder.cpp
+++ b/fuzz/oss_fuzz/FuzzWEBPEncoder.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "../Fuzz.h"
+#include "fuzz/Fuzz.h"
 
 void fuzz_WEBPEncoder(Fuzz* f);
 
diff --git a/gm/3dgm.cpp b/gm/3dgm.cpp
index e530d09..5f605c7 100644
--- a/gm/3dgm.cpp
+++ b/gm/3dgm.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "Sk3D.h"
-#include "SkFont.h"
-#include "SkPath.h"
-#include "SkPoint3.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint3.h"
+#include "include/utils/Sk3D.h"
 
 #ifdef SK_ENABLE_SKOTTIE
 
-#include "AnimTimer.h"
-#include "Resources.h"
-#include "SkStream.h"
-#include "Skottie.h"
+#include "include/core/SkStream.h"
+#include "modules/skottie/include/Skottie.h"
+#include "tools/Resources.h"
+#include "tools/timer/AnimTimer.h"
 
 static SkMatrix operator*(const SkMatrix& a, const SkMatrix& b) {
     SkMatrix44 c;
diff --git a/gm/OverStroke.cpp b/gm/OverStroke.cpp
index 6827890..55fcc05 100644
--- a/gm/OverStroke.cpp
+++ b/gm/OverStroke.cpp
@@ -23,11 +23,11 @@
  */
 
 
-#include "gm.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPathMeasure.h"
-#include "SkPointPriv.h"
+#include "gm/gm.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPathMeasure.h"
+#include "src/core/SkPointPriv.h"
 
 const SkScalar OVERSTROKE_WIDTH = 500.0f;
 const SkScalar NORMALSTROKE_WIDTH = 3.0f;
diff --git a/gm/aaa.cpp b/gm/aaa.cpp
index 2ed5dc8..5c888d3 100644
--- a/gm/aaa.cpp
+++ b/gm/aaa.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkPath.h"
-#include "SkScan.h"
+#include "gm/gm.h"
+#include "include/core/SkPath.h"
+#include "src/core/SkScan.h"
 
 #define W   800
 #define H   800
diff --git a/gm/aaclip.cpp b/gm/aaclip.cpp
index 0260f27..e96d0fd 100644
--- a/gm/aaclip.cpp
+++ b/gm/aaclip.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvasPriv.h"
-#include "SkMakeUnique.h"
-#include "SkPath.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkPath.h"
+#include "src/core/SkCanvasPriv.h"
+#include "src/core/SkMakeUnique.h"
+#include "tools/ToolUtils.h"
 
 static void do_draw(SkCanvas* canvas, const SkRect& r) {
     SkPaint paint;
@@ -161,7 +161,7 @@
     }
 }
 
-#include "SkCGUtils.h"
+#include "include/utils/mac/SkCGUtils.h"
 static void test_image(SkCanvas* canvas, const SkImageInfo& info) {
     SkBitmap bm;
     bm.allocPixels(info);
diff --git a/gm/aarectmodes.cpp b/gm/aarectmodes.cpp
index 9a39d043..5cce2ae 100644
--- a/gm/aarectmodes.cpp
+++ b/gm/aarectmodes.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkPath.h"
-#include "SkShader.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkShader.h"
 
 static void test4(SkCanvas* canvas) {
     SkPaint paint;
diff --git a/gm/aaxfermodes.cpp b/gm/aaxfermodes.cpp
index 58b4c44..0c89d89 100644
--- a/gm/aaxfermodes.cpp
+++ b/gm/aaxfermodes.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorPriv.h"
-#include "SkPath.h"
-#include "SkShader.h"
-#include "SkTextUtils.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkShader.h"
+#include "include/utils/SkTextUtils.h"
+#include "tools/ToolUtils.h"
 
 enum {
     kXfermodeCount = (int)SkBlendMode::kLastMode + 1 + 1,   // extra for arith
diff --git a/gm/addarc.cpp b/gm/addarc.cpp
index c9b7633..d42692e 100644
--- a/gm/addarc.cpp
+++ b/gm/addarc.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "SkCanvas.h"
-#include "SkPathMeasure.h"
-#include "SkRandom.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPathMeasure.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
+#include "tools/timer/AnimTimer.h"
 
 class AddArcGM : public skiagm::GM {
 public:
diff --git a/gm/all_bitmap_configs.cpp b/gm/all_bitmap_configs.cpp
index 4435942..ada67dc 100644
--- a/gm/all_bitmap_configs.cpp
+++ b/gm/all_bitmap_configs.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkSurface.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
-#include "SkColorPriv.h"
-#include "SkFont.h"
-#include "SkMath.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkMath.h"
 
 static SkBitmap copy_bitmap(const SkBitmap& src, SkColorType colorType) {
     const SkBitmap* srcPtr = &src;
diff --git a/gm/alpha_image.cpp b/gm/alpha_image.cpp
index 8765726..e659c46 100644
--- a/gm/alpha_image.cpp
+++ b/gm/alpha_image.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "SkColorFilter.h"
-#include "SkImage.h"
-#include "SkMaskFilter.h"
-#include "SkShader.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkShader.h"
 
 static SkBitmap make_alpha_image(int w, int h) {
     SkBitmap bm;
diff --git a/gm/alphagradients.cpp b/gm/alphagradients.cpp
index f739f02..952ef0b 100644
--- a/gm/alphagradients.cpp
+++ b/gm/alphagradients.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/effects/SkGradientShader.h"
 
 class AlphaGradientsGM : public skiagm::GM {
 public:
diff --git a/gm/analytic_gradients.cpp b/gm/analytic_gradients.cpp
index aeb17f3..0223d75 100644
--- a/gm/analytic_gradients.cpp
+++ b/gm/analytic_gradients.cpp
@@ -34,9 +34,9 @@
  * compared to overall behavior.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "SkGradientShader.h"
+#include "include/effects/SkGradientShader.h"
 
 // All positions must be divided by the target interval count, which will produce the expected
 // normalized position array for that interval number (assuming an appropriate color count is
diff --git a/gm/androidblendmodes.cpp b/gm/androidblendmodes.cpp
index 0665ddf..0d61498 100644
--- a/gm/androidblendmodes.cpp
+++ b/gm/androidblendmodes.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkTextUtils.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkBitmap.h"
+#include "include/utils/SkTextUtils.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/animatedGif.cpp b/gm/animatedGif.cpp
index 77ef54b..a598c1f 100644
--- a/gm/animatedGif.cpp
+++ b/gm/animatedGif.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "CommandLineFlags.h"
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkCodec.h"
-#include "SkColor.h"
-#include "SkFont.h"
-#include "SkPaint.h"
-#include "SkString.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkString.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
+#include "tools/flags/CommandLineFlags.h"
+#include "tools/timer/AnimTimer.h"
 
 #include <vector>
 
@@ -169,9 +169,9 @@
 DEF_GM(return new AnimatedGifGM);
 
 
-#include "SkAnimCodecPlayer.h"
-#include "SkOSFile.h"
-#include "SkMakeUnique.h"
+#include "include/utils/SkAnimCodecPlayer.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkOSFile.h"
 
 static std::unique_ptr<SkCodec> load_codec(const char filename[]) {
     return SkCodec::MakeFromData(SkData::MakeFromFileName(filename));
diff --git a/gm/animatedimageblurs.cpp b/gm/animatedimageblurs.cpp
index e08f1d0..a22041b 100644
--- a/gm/animatedimageblurs.cpp
+++ b/gm/animatedimageblurs.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "SkBlurImageFilter.h"
-#include "SkRRect.h"
-#include "SkRandom.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkRRect.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/utils/SkRandom.h"
+#include "tools/timer/AnimTimer.h"
 
 static const SkScalar kBlurMax = 7.0f;
 static const int kNumNodes = 30;
diff --git a/gm/anisotropic.cpp b/gm/anisotropic.cpp
index ff88121..6e570c9 100644
--- a/gm/anisotropic.cpp
+++ b/gm/anisotropic.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
 namespace skiagm {
 
diff --git a/gm/annotated_text.cpp b/gm/annotated_text.cpp
index c501464..6618972 100644
--- a/gm/annotated_text.cpp
+++ b/gm/annotated_text.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkAnnotation.h"
-#include "SkData.h"
-#include "SkFont.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkAnnotation.h"
+#include "include/core/SkData.h"
+#include "include/core/SkFont.h"
 
 static void draw_url_annotated_text_with_box(
         SkCanvas* canvas, const void* text,
diff --git a/gm/arcofzorro.cpp b/gm/arcofzorro.cpp
index 296d98b..511746e 100644
--- a/gm/arcofzorro.cpp
+++ b/gm/arcofzorro.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkRandom.h"
+#include "gm/gm.h"
+#include "include/utils/SkRandom.h"
 
 namespace skiagm {
 
diff --git a/gm/arcto.cpp b/gm/arcto.cpp
index fcbc3d5..e2b8e7a 100644
--- a/gm/arcto.cpp
+++ b/gm/arcto.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkParsePath.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkPath.h"
+#include "include/utils/SkParsePath.h"
 
 /*
 The arcto test below should draw the same as this SVG:
@@ -103,8 +103,8 @@
     canvas->drawPath(path, paint);
 }
 
-#include "random_parse_path.h"
-#include "SkRandom.h"
+#include "include/utils/SkRandom.h"
+#include "tools/random_parse_path.h"
 
 /* The test below generates a reference image using SVG. To compare the result for correctness,
    enable the define below and then view the generated SVG in a browser.
@@ -112,7 +112,7 @@
 #define GENERATE_SVG_REFERENCE 0
 
 #if GENERATE_SVG_REFERENCE
-#include "SkOSFile.h"
+#include "src/core/SkOSFile.h"
 #endif
 
 enum {
@@ -206,8 +206,8 @@
     canvas->drawPath(p, paint);
 }
 
-#include "SkDashPathEffect.h"
-#include "SkPathMeasure.h"
+#include "include/core/SkPathMeasure.h"
+#include "include/effects/SkDashPathEffect.h"
 
 DEF_SIMPLE_GM(bug583299, canvas, 300, 300) {
   const char* d="M60,60 A50,50 0 0 0 160,60 A50,50 0 0 0 60,60z";
diff --git a/gm/arithmode.cpp b/gm/arithmode.cpp
index 002c629..59d72b8 100644
--- a/gm/arithmode.cpp
+++ b/gm/arithmode.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "SkArithmeticImageFilter.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkFont.h"
-#include "SkGradientShader.h"
-#include "SkImage.h"
-#include "SkImageSource.h"
-#include "SkShader.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkArithmeticImageFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/effects/SkImageSource.h"
+#include "tools/ToolUtils.h"
 
 #define WW  100
 #define HH  32
diff --git a/gm/atlastext.cpp b/gm/atlastext.cpp
index 1584ea4..f0171a9 100644
--- a/gm/atlastext.cpp
+++ b/gm/atlastext.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
 #if SK_SUPPORT_ATLAS_TEXT
-#include "GrContext.h"
+#include "include/gpu/GrContext.h"
 
-#include "SkAtlasTextContext.h"
-#include "SkAtlasTextFont.h"
-#include "SkAtlasTextTarget.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkTypeface.h"
-#include "SkUTF.h"
-#include "ToolUtils.h"
-#include "gpu/TestContext.h"
-#include "gpu/atlastext/GLTestAtlasTextRenderer.h"
-#include "gpu/atlastext/TestAtlasTextRenderer.h"
+#include "include/atlastext/SkAtlasTextContext.h"
+#include "include/atlastext/SkAtlasTextFont.h"
+#include "include/atlastext/SkAtlasTextTarget.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkTypeface.h"
+#include "src/utils/SkUTF.h"
+#include "tools/ToolUtils.h"
+#include "tools/gpu/TestContext.h"
+#include "tools/gpu/atlastext/GLTestAtlasTextRenderer.h"
+#include "tools/gpu/atlastext/TestAtlasTextRenderer.h"
 
 // GM that draws text using the Atlas Text interface offscreen and then blits that to the canvas.
 
diff --git a/gm/b_119394958.cpp b/gm/b_119394958.cpp
index 9a3f129..ff9b4f7 100644
--- a/gm/b_119394958.cpp
+++ b/gm/b_119394958.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
 DEF_SIMPLE_GM(b_119394958, canvas, 100, 100) {
     // The root cause of this bug was that a stroked arc with round caps was batched with a filled
diff --git a/gm/backdrop.cpp b/gm/backdrop.cpp
index 0b248b2..f057962 100644
--- a/gm/backdrop.cpp
+++ b/gm/backdrop.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkBlurImageFilter.h"
-#include "SkGradientShader.h"
-#include "SkLiteDL.h"
-#include "SkLiteRecorder.h"
-#include "SkPictureRecorder.h"
+#include "gm/gm.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "src/core/SkLiteDL.h"
+#include "src/core/SkLiteRecorder.h"
 
 // Make a noisy (with hard-edges) background, so we can see the effect of the blur
 //
diff --git a/gm/badpaint.cpp b/gm/badpaint.cpp
index c0e5317..6f286ba 100644
--- a/gm/badpaint.cpp
+++ b/gm/badpaint.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkShader.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkShader.h"
 
 /** This GM draws with invalid paints. It should draw nothing other than the background. */
 class BadPaintGM : public skiagm::GM {
diff --git a/gm/beziereffects.cpp b/gm/beziereffects.cpp
index 2e0e52c0..949174e 100644
--- a/gm/beziereffects.cpp
+++ b/gm/beziereffects.cpp
@@ -7,23 +7,23 @@
 
 // This test only works with the GPU backend.
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrMemoryPool.h"
-#include "GrOpFlushState.h"
-#include "GrPathUtils.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContextPriv.h"
-#include "SkColorPriv.h"
-#include "SkGeometry.h"
-#include "SkPoint3.h"
-#include "SkPointPriv.h"
-#include "effects/GrBezierEffect.h"
-#include "ops/GrMeshDrawOp.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkPoint3.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkPointPriv.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrPathUtils.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/effects/GrBezierEffect.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
 
 namespace skiagm {
 
diff --git a/gm/beziers.cpp b/gm/beziers.cpp
index f964217..7733ed5 100644
--- a/gm/beziers.cpp
+++ b/gm/beziers.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkPath.h"
-#include "SkRandom.h"
+#include "gm/gm.h"
+#include "include/core/SkPath.h"
+#include "include/utils/SkRandom.h"
 
 #define W   400
 #define H   400
diff --git a/gm/bigblurs.cpp b/gm/bigblurs.cpp
index 0a753dd..a78e1a5 100644
--- a/gm/bigblurs.cpp
+++ b/gm/bigblurs.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkBlurMask.h"
-#include "SkMaskFilter.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPath.h"
+#include "src/core/SkBlurMask.h"
 
 namespace skiagm {
 
diff --git a/gm/bigmatrix.cpp b/gm/bigmatrix.cpp
index e54e04b..51a0685 100644
--- a/gm/bigmatrix.cpp
+++ b/gm/bigmatrix.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "SkColorPriv.h"
-#include "SkPath.h"
-#include "SkShader.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkShader.h"
 
 DEF_SIMPLE_GM_BG(bigmatrix, canvas, 50, 50, ToolUtils::color_to_565(0xFF66AA99)) {
     SkMatrix m;
diff --git a/gm/bigrect.cpp b/gm/bigrect.cpp
index d2ba7fe..9508998 100644
--- a/gm/bigrect.cpp
+++ b/gm/bigrect.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
 // Draws big rects with clip (0, 0, 35, 35). The size of the rects is given by big.
 static void draw_big_rect(SkCanvas* canvas, SkScalar big, const SkPaint& rectPaint) {
diff --git a/gm/bigrrectaaeffect.cpp b/gm/bigrrectaaeffect.cpp
index 86e3daa..d916b95 100644
--- a/gm/bigrrectaaeffect.cpp
+++ b/gm/bigrrectaaeffect.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "SkRRect.h"
-#include "ToolUtils.h"
-#include "effects/GrRRectEffect.h"
-#include "gm.h"
-#include "ops/GrDrawOp.h"
-#include "ops/GrFillRectOp.h"
+#include "gm/gm.h"
+#include "include/core/SkRRect.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/effects/GrRRectEffect.h"
+#include "src/gpu/ops/GrDrawOp.h"
+#include "src/gpu/ops/GrFillRectOp.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/bigtext.cpp b/gm/bigtext.cpp
index f30c7b9..0468752 100644
--- a/gm/bigtext.cpp
+++ b/gm/bigtext.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkPath.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPath.h"
+#include "tools/ToolUtils.h"
 
 /**
  *  Skia may draw from outlines when the size is very large, so we exercise that
diff --git a/gm/bigtileimagefilter.cpp b/gm/bigtileimagefilter.cpp
index 429ef1e..e5fab66 100644
--- a/gm/bigtileimagefilter.cpp
+++ b/gm/bigtileimagefilter.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkImageSource.h"
-#include "SkSurface.h"
-#include "SkTileImageFilter.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkImageSource.h"
+#include "include/effects/SkTileImageFilter.h"
 
 static sk_sp<SkImage> create_circle_texture(int size, SkColor color) {
     auto surface(SkSurface::MakeRasterN32Premul(size, size));
diff --git a/gm/bitmapcopy.cpp b/gm/bitmapcopy.cpp
index 9c4fbb7..ecbf4b8 100644
--- a/gm/bitmapcopy.cpp
+++ b/gm/bitmapcopy.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkFont.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkFont.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/bitmapfilters.cpp b/gm/bitmapfilters.cpp
index 2ae7fc9..44da77f 100644
--- a/gm/bitmapfilters.cpp
+++ b/gm/bitmapfilters.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
 static void make_bm(SkBitmap* bm) {
     const SkColor colors[4] = {
diff --git a/gm/bitmapimage.cpp b/gm/bitmapimage.cpp
index 92883da..08c7fe5 100644
--- a/gm/bitmapimage.cpp
+++ b/gm/bitmapimage.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "Resources.h"
-#include "SkCodec.h"
-#include "SkImage.h"
+#include "gm/gm.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkImage.h"
+#include "tools/Resources.h"
 
 namespace skiagm {
 
diff --git a/gm/bitmappremul.cpp b/gm/bitmappremul.cpp
index a899510..489fed9 100644
--- a/gm/bitmappremul.cpp
+++ b/gm/bitmappremul.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColorData.h"
+#include "gm/gm.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/private/SkColorData.h"
 
 /**
  * This GM checks that bitmap pixels are unpremultiplied before being exported
diff --git a/gm/bitmaprect.cpp b/gm/bitmaprect.cpp
index 67fdd53..b23b02d 100644
--- a/gm/bitmaprect.cpp
+++ b/gm/bitmaprect.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkGraphics.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkShader.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/effects/SkGradientShader.h"
 
 static void make_bitmap(SkBitmap* bitmap) {
     bitmap->allocN32Pixels(64, 64);
diff --git a/gm/bitmaprecttest.cpp b/gm/bitmaprecttest.cpp
index b83279b..9cfac7d 100644
--- a/gm/bitmaprecttest.cpp
+++ b/gm/bitmaprecttest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
 
 static void make_bm(SkBitmap* bm) {
     bm->allocN32Pixels(60, 60);
diff --git a/gm/bitmapshader.cpp b/gm/bitmapshader.cpp
index 7143160..45e5b26 100644
--- a/gm/bitmapshader.cpp
+++ b/gm/bitmapshader.cpp
@@ -4,15 +4,15 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "SkBitmap.h"
-#include "SkPaint.h"
-#include "SkShader.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
 
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
 
 namespace skiagm {
 
diff --git a/gm/bitmaptiled.cpp b/gm/bitmaptiled.cpp
index 053a0b1b..e2a09ad 100644
--- a/gm/bitmaptiled.cpp
+++ b/gm/bitmaptiled.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "GrContext.h"
+#include "include/gpu/GrContext.h"
 
 // This test exercises Ganesh's drawing of tiled bitmaps. In particular, that the offsets and the
 // extents of the tiles don't causes gaps between tiles.
diff --git a/gm/bleed.cpp b/gm/bleed.cpp
index 485a3d8..84ab8fc 100644
--- a/gm/bleed.cpp
+++ b/gm/bleed.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkImage.h"
-#include "SkMaskFilter.h"
-#include "SkTDArray.h"
-#include "SkUTF.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/private/SkTDArray.h"
+#include "src/core/SkBlurMask.h"
+#include "src/utils/SkUTF.h"
+#include "tools/ToolUtils.h"
 
-#include "GrContext.h"
-#include "GrContextOptions.h"
-#include "SkGr.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrContextOptions.h"
+#include "src/gpu/SkGr.h"
 
 /** Holds either a bitmap or image to be rendered and a rect that indicates what part of the bitmap
     or image should be tested by the GM. The area outside of the rect is present to check
@@ -444,7 +444,7 @@
 DEF_GM( return new BleedGM(kUseAlphaImageShader_BleedTest); )
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
-#include "SkSurface.h"
+#include "include/core/SkSurface.h"
 
 // Construct an image and return the inner "src" rect. Build the image such that the interior is
 // blue, with a margin of blue (2px) but then an outer margin of red.
diff --git a/gm/blend.cpp b/gm/blend.cpp
index aaaeeeb..20583b7 100644
--- a/gm/blend.cpp
+++ b/gm/blend.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
 DEF_SIMPLE_GM(blend, canvas, 300, 100) {
     SkPaint p;
diff --git a/gm/blurcircles.cpp b/gm/blurcircles.cpp
index e0978c0c..748d8c0 100644
--- a/gm/blurcircles.cpp
+++ b/gm/blurcircles.cpp
@@ -5,12 +5,12 @@
 * found in the LICENSE file.
 */
 
-#include "gm.h"
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkMaskFilter.h"
-#include "SkPaint.h"
-#include "SkString.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkString.h"
+#include "src/core/SkBlurMask.h"
 
 class BlurCirclesGM : public skiagm::GM {
 public:
diff --git a/gm/blurcircles2.cpp b/gm/blurcircles2.cpp
index b28c932..18d4de2 100644
--- a/gm/blurcircles2.cpp
+++ b/gm/blurcircles2.cpp
@@ -5,15 +5,15 @@
 * found in the LICENSE file.
 */
 
-#include "AnimTimer.h"
-#include "SkBlurMask.h"
-#include "SkBlurMaskFilter.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkString.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkBlurMask.h"
+#include "tools/timer/AnimTimer.h"
 
 /**
  * In GM mode this draws an array of circles with different radii and different blur radii. Below
diff --git a/gm/blurignorexform.cpp b/gm/blurignorexform.cpp
index 9a68daf..6fd957b 100644
--- a/gm/blurignorexform.cpp
+++ b/gm/blurignorexform.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkMaskFilter.h"
-#include "SkPaint.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPaint.h"
+#include "src/core/SkBlurMask.h"
 
 // This GM tests out the SkBlurMaskFilter's kIgnoreTransform flag. That flag causes the blur mask
 // filter to not apply the CTM to the blur's radius.
diff --git a/gm/blurimagevmask.cpp b/gm/blurimagevmask.cpp
index 78524ca..046fa78 100644
--- a/gm/blurimagevmask.cpp
+++ b/gm/blurimagevmask.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurImageFilter.h"
-#include "SkMaskFilter.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "tools/ToolUtils.h"
 
 DEF_SIMPLE_GM(blurimagevmask, canvas, 700, 1200) {
     SkPaint paint;
@@ -50,7 +50,7 @@
 
 }
 
-#include "Resources.h"
+#include "tools/Resources.h"
 DEF_SIMPLE_GM_CAN_FAIL(blur_image, canvas, errorMsg, 500, 500) {
     auto image = GetResourceAsImage("images/mandrill_128.png");
     if (!image) {
diff --git a/gm/blurpositioning.cpp b/gm/blurpositioning.cpp
index 23bacdc..1e3c592 100644
--- a/gm/blurpositioning.cpp
+++ b/gm/blurpositioning.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkBlurImageFilter.h"
+#include "gm/gm.h"
+#include "include/effects/SkBlurImageFilter.h"
 
 // For all sigma, the black box should be centered in the red outline. For small sigma,
 // the rectangle is not blurred, but still must be centered properly.
diff --git a/gm/blurquickreject.cpp b/gm/blurquickreject.cpp
index 237c678..5a1de35 100644
--- a/gm/blurquickreject.cpp
+++ b/gm/blurquickreject.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkMaskFilter.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMaskFilter.h"
+#include "src/core/SkBlurMask.h"
 
 // This GM tests out the quick reject bounds of the blur mask filter. It draws
 // four blurred rects around a central clip. The blurred rect geometry outset
diff --git a/gm/blurrect.cpp b/gm/blurrect.cpp
index 2000f08..111c420 100644
--- a/gm/blurrect.cpp
+++ b/gm/blurrect.cpp
@@ -5,12 +5,12 @@
 * found in the LICENSE file.
 */
 
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkMaskFilter.h"
-#include "SkPath.h"
-#include "SkTo.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkBlurMask.h"
 
 #define STROKE_WIDTH    SkIntToScalar(10)
 
@@ -54,7 +54,7 @@
     canvas->drawPath(path, p);
 }
 
-#include "SkGradientShader.h"
+#include "include/effects/SkGradientShader.h"
 
 /*
  * Spits out a dummy gradient to test blur with shader on paint
diff --git a/gm/blurredclippedcircle.cpp b/gm/blurredclippedcircle.cpp
index 318e4a9..fe81e06 100644
--- a/gm/blurredclippedcircle.cpp
+++ b/gm/blurredclippedcircle.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkClipOpPriv.h"
-#include "SkColorFilter.h"
-#include "SkMaskFilter.h"
-#include "SkPaint.h"
-#include "SkRRect.h"
+#include "gm/gm.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkRRect.h"
+#include "src/core/SkClipOpPriv.h"
 
 namespace skiagm {
 
diff --git a/gm/blurroundrect.cpp b/gm/blurroundrect.cpp
index 05db485..450fdf6 100644
--- a/gm/blurroundrect.cpp
+++ b/gm/blurroundrect.cpp
@@ -5,18 +5,18 @@
 * found in the LICENSE file.
 */
 
-#include "gm.h"
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkLayerDrawLooper.h"
-#include "SkMaskFilter.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkRRect.h"
-#include "SkString.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkLayerDrawLooper.h"
+#include "src/core/SkBlurMask.h"
 
 // This GM mimics a blurred RR seen in the wild.
 class BlurRoundRectGM : public skiagm::GM {
@@ -82,7 +82,7 @@
     typedef skiagm::GM INHERITED;
 };
 
-#include "SkGradientShader.h"
+#include "include/effects/SkGradientShader.h"
 /*
  * Spits out a dummy gradient to test blur with shader on paint
  */
diff --git a/gm/blurs.cpp b/gm/blurs.cpp
index 23ef092..3ba6e4c 100644
--- a/gm/blurs.cpp
+++ b/gm/blurs.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkBlurMask.h"
-#include "SkImage.h"
-#include "SkMaskFilter.h"
-#include "SkPath.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPath.h"
+#include "src/core/SkBlurMask.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
 DEF_SIMPLE_GM_BG(blurs, canvas, 700, 500, 0xFFDDDDDD) {
     SkBlurStyle NONE = SkBlurStyle(-999);
diff --git a/gm/blurtextsmallradii.cpp b/gm/blurtextsmallradii.cpp
index e1e7aa1..7904cb3 100644
--- a/gm/blurtextsmallradii.cpp
+++ b/gm/blurtextsmallradii.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkColor.h"
-#include "SkFont.h"
-#include "SkMaskFilter.h"
+#include "gm/gm.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkMaskFilter.h"
 
 // GM to check the behavior from chrome bug:745290
 DEF_SIMPLE_GM(blurSmallRadii, canvas, 100, 100) {
diff --git a/gm/bmpfilterqualityrepeat.cpp b/gm/bmpfilterqualityrepeat.cpp
index 611420c..77c2499 100644
--- a/gm/bmpfilterqualityrepeat.cpp
+++ b/gm/bmpfilterqualityrepeat.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "SkShader.h"
+#include "include/core/SkShader.h"
 
 // Inspired by svg/as-border-image/svg-as-border-image.html. Draws a four-color checker board bitmap
 // such that it is stretched and repeat tiled with different filter qualities. It is testing whether
diff --git a/gm/bug5252.cpp b/gm/bug5252.cpp
index 981aab5..a7fa02f 100644
--- a/gm/bug5252.cpp
+++ b/gm/bug5252.cpp
@@ -5,10 +5,10 @@
 * found in the LICENSE file.
 */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkRect.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRect.h"
 
 DEF_SIMPLE_GM(bug5252, canvas, 500, 500) {
 	canvas->translate(SkIntToScalar(10), SkIntToScalar(20));
diff --git a/gm/bug530095.cpp b/gm/bug530095.cpp
index fa88c01..f10e0bb 100644
--- a/gm/bug530095.cpp
+++ b/gm/bug530095.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkPath.h"
-#include "SkDashPathEffect.h"
+#include "gm/gm.h"
+#include "include/core/SkPath.h"
+#include "include/effects/SkDashPathEffect.h"
 
 DEF_SIMPLE_GM(bug530095, canvas, 900, 1200) {
     SkPath path1, path2;
diff --git a/gm/bug615686.cpp b/gm/bug615686.cpp
index bd78b1a..35b2e2c 100644
--- a/gm/bug615686.cpp
+++ b/gm/bug615686.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkPath.h"
 
 DEF_SIMPLE_GM(bug615686, canvas, 250, 250) {
     SkPaint p;
diff --git a/gm/bug6643.cpp b/gm/bug6643.cpp
index c30d898..60a0bfe 100644
--- a/gm/bug6643.cpp
+++ b/gm/bug6643.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkGradientShader.h"
-#include "SkPictureRecorder.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/effects/SkGradientShader.h"
 
 DEF_SIMPLE_GM(bug6643, canvas, 200, 200) {
     SkColor colors[] = { SK_ColorTRANSPARENT, SK_ColorGREEN, SK_ColorTRANSPARENT };
diff --git a/gm/bug6783.cpp b/gm/bug6783.cpp
index ba8b77b..3d2541b 100644
--- a/gm/bug6783.cpp
+++ b/gm/bug6783.cpp
@@ -5,8 +5,8 @@
 * found in the LICENSE file.
 */
 
-#include "gm.h"
-#include "SkSurface.h"
+#include "gm/gm.h"
+#include "include/core/SkSurface.h"
 
 // This GM reproduces skia:6783, which demonstrated a bug in repeat and mirror
 // image sampling tiling modes as implemented in software.  We want to tile to
diff --git a/gm/cgm.c b/gm/cgm.c
index e9d2946..9448125 100644
--- a/gm/cgm.c
+++ b/gm/cgm.c
@@ -8,13 +8,13 @@
 // EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL
 // DO NOT USE -- FOR INTERNAL TESTING ONLY
 
-#include "sk_canvas.h"
-#include "sk_data.h"
-#include "sk_image.h"
-#include "sk_imageinfo.h"
-#include "sk_paint.h"
-#include "sk_shader.h"
-#include "sk_surface.h"
+#include "include/c/sk_canvas.h"
+#include "include/c/sk_data.h"
+#include "include/c/sk_image.h"
+#include "include/c/sk_imageinfo.h"
+#include "include/c/sk_paint.h"
+#include "include/c/sk_shader.h"
+#include "include/c/sk_surface.h"
 
 extern void sk_test_c_api(sk_canvas_t*);
 
diff --git a/gm/cgms.cpp b/gm/cgms.cpp
index 832a7b5..44ab443 100644
--- a/gm/cgms.cpp
+++ b/gm/cgms.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "sk_types.h"
+#include "gm/gm.h"
+#include "include/c/sk_types.h"
 
 extern "C" void sk_test_c_api(sk_canvas_t*);
 
diff --git a/gm/circle_sizes.cpp b/gm/circle_sizes.cpp
index 8ed95dd..99eb110 100644
--- a/gm/circle_sizes.cpp
+++ b/gm/circle_sizes.cpp
@@ -4,7 +4,7 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "gm.h"
+#include "gm/gm.h"
 // https://crbug.com/772953
 DEF_SIMPLE_GM(circle_sizes, canvas, 128, 128) {
     SkPaint p;
diff --git a/gm/circles.cpp b/gm/circles.cpp
index 01bf851..e8f8a1c 100644
--- a/gm/circles.cpp
+++ b/gm/circles.cpp
@@ -4,15 +4,15 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "gm.h"
-#include "SkBlurDrawLooper.h"
-#include "SkBlurMask.h"
-#include "SkColorFilter.h"
-#include "SkGradientShader.h"
-#include "SkMaskFilter.h"
-#include "SkMatrix.h"
-#include "SkRandom.h"
-#include "SkTArray.h"
+#include "gm/gm.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkMatrix.h"
+#include "include/effects/SkBlurDrawLooper.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/private/SkTArray.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkBlurMask.h"
 
 namespace skiagm {
 
diff --git a/gm/circulararcs.cpp b/gm/circulararcs.cpp
index 778193f..31e53e7 100644
--- a/gm/circulararcs.cpp
+++ b/gm/circulararcs.cpp
@@ -6,9 +6,9 @@
  */
 
 #include <functional>
-#include "SkCanvas.h"
-#include "SkDashPathEffect.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/effects/SkDashPathEffect.h"
 
 constexpr SkScalar kStarts[] = {0.f, 10.f, 30.f, 45.f, 90.f, 165.f, 180.f, 270.f};
 constexpr SkScalar kSweeps[] = {1.f, 45.f, 90.f, 130.f, 180.f, 184.f, 300.f, 355.f};
diff --git a/gm/circularclips.cpp b/gm/circularclips.cpp
index 9374f6f..1a5bffc 100644
--- a/gm/circularclips.cpp
+++ b/gm/circularclips.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
 
 class CircularClipsGM : public skiagm::GM {
     SkScalar fX1, fX2, fY, fR;
diff --git a/gm/clip_error.cpp b/gm/clip_error.cpp
index 43c00ec..b35d207 100644
--- a/gm/clip_error.cpp
+++ b/gm/clip_error.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkMaskFilter.h"
-#include "SkTextBlob.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkTextBlob.h"
+#include "src/core/SkBlurMask.h"
+#include "tools/ToolUtils.h"
 
 #define WIDTH 800
 #define HEIGHT 800
diff --git a/gm/clip_strokerect.cpp b/gm/clip_strokerect.cpp
index 34adf8a1..dfe435d 100644
--- a/gm/clip_strokerect.cpp
+++ b/gm/clip_strokerect.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
 
 class ClipStrokeRectGM : public skiagm::GM {
 public:
diff --git a/gm/clipdrawdraw.cpp b/gm/clipdrawdraw.cpp
index 38c3c4a..d230f3f 100644
--- a/gm/clipdrawdraw.cpp
+++ b/gm/clipdrawdraw.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkRegion.h"
+#include "gm/gm.h"
+#include "include/core/SkRegion.h"
 
 // This GM exercises the use case found in crbug.com/423834.
 // The following pattern:
diff --git a/gm/clippedbitmapshaders.cpp b/gm/clippedbitmapshaders.cpp
index 88499b1..cdb5f49 100644
--- a/gm/clippedbitmapshaders.cpp
+++ b/gm/clippedbitmapshaders.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkShader.h"
+#include "gm/gm.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkShader.h"
 
 namespace skiagm {
 
diff --git a/gm/clockwise.cpp b/gm/clockwise.cpp
index 7ad9fee..016e45b 100644
--- a/gm/clockwise.cpp
+++ b/gm/clockwise.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "GrClip.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpuCommandBuffer.h"
-#include "GrMemoryPool.h"
-#include "GrOpFlushState.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "GrRenderTarget.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLVarying.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 namespace skiagm {
 
diff --git a/gm/color4f.cpp b/gm/color4f.cpp
index 1d55618..2a35fbb 100644
--- a/gm/color4f.cpp
+++ b/gm/color4f.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkShader.h"
-#include "SkSurface.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSurface.h"
 
-#include "SkColorMatrixFilter.h"
-#include "SkGradientShader.h"
+#include "include/effects/SkColorMatrixFilter.h"
+#include "include/effects/SkGradientShader.h"
 
 static sk_sp<SkShader> make_opaque_color() {
     return SkShaders::Color(0xFFFF0000);
@@ -88,7 +88,7 @@
 }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
-#include "SkColorSpace.h"
+#include "include/core/SkColorSpace.h"
 
 DEF_SIMPLE_GM(color4shader, canvas, 360, 480) {
     canvas->translate(10, 10);
diff --git a/gm/coloremoji.cpp b/gm/coloremoji.cpp
index b34af0f..c02c9a6 100644
--- a/gm/coloremoji.cpp
+++ b/gm/coloremoji.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "Resources.h"
-#include "SkBlurImageFilter.h"
-#include "SkCanvas.h"
-#include "SkColorFilterImageFilter.h"
-#include "SkColorMatrixFilter.h"
-#include "SkFont.h"
-#include "SkFontMetrics.h"
-#include "SkGradientShader.h"
-#include "SkStream.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkColorFilterImageFilter.h"
+#include "include/effects/SkColorMatrixFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "tools/Resources.h"
 
 /*
  * Spits out a dummy gradient to test blur with shader on paint
diff --git a/gm/coloremoji_blendmodes.cpp b/gm/coloremoji_blendmodes.cpp
index dccf55a..791c493 100644
--- a/gm/coloremoji_blendmodes.cpp
+++ b/gm/coloremoji_blendmodes.cpp
@@ -5,27 +5,27 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkBlendMode.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkFontStyle.h"
-#include "SkGradientShader.h"
-#include "SkImageInfo.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkShader.h"
-#include "SkSize.h"
-#include "SkString.h"
-#include "SkTextUtils.h"
-#include "SkTypeface.h"
-#include "SkTypes.h"
-#include "SkUTF.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypeface.h"
+#include "include/core/SkTypes.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkTextUtils.h"
+#include "src/utils/SkUTF.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/colorfilteralpha8.cpp b/gm/colorfilteralpha8.cpp
index 37f2a91..4c116d5 100644
--- a/gm/colorfilteralpha8.cpp
+++ b/gm/colorfilteralpha8.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkBitmap.h"
-#include "SkColorFilter.h"
+#include "gm/gm.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkColorFilter.h"
 
 class ColorFilterAlpha8 : public skiagm::GM {
 public:
diff --git a/gm/colorfilterimagefilter.cpp b/gm/colorfilterimagefilter.cpp
index dca6486..38797a0 100644
--- a/gm/colorfilterimagefilter.cpp
+++ b/gm/colorfilterimagefilter.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkColorMatrixFilter.h"
-#include "SkColorPriv.h"
-#include "SkShader.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkShader.h"
+#include "include/effects/SkColorMatrixFilter.h"
 
-#include "SkBlurImageFilter.h"
-#include "SkColorFilterImageFilter.h"
-#include "SkTDArray.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkColorFilterImageFilter.h"
+#include "include/private/SkTDArray.h"
 
 #define FILTER_WIDTH    SkIntToScalar(30)
 #define FILTER_HEIGHT   SkIntToScalar(30)
@@ -51,9 +51,9 @@
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-#include "SkGradientShader.h"
-#include "SkImage.h"
-#include "Resources.h"
+#include "include/core/SkImage.h"
+#include "include/effects/SkGradientShader.h"
+#include "tools/Resources.h"
 
 static sk_sp<SkShader> sh_make_lineargradient0() {
     const SkPoint pts[] = { { 0, 0 }, { 100, 100 } };
@@ -187,7 +187,7 @@
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-#include "SkGradientShader.h"
+#include "include/effects/SkGradientShader.h"
 
 template <typename T> class SkTRefArray : public SkTDArray<T> {
 public:
diff --git a/gm/colorfilters.cpp b/gm/colorfilters.cpp
index b0d529a..82caff5 100644
--- a/gm/colorfilters.cpp
+++ b/gm/colorfilters.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkColorMatrixFilter.h"
-#include "SkGradientShader.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/effects/SkColorMatrixFilter.h"
+#include "include/effects/SkGradientShader.h"
 
 static sk_sp<SkShader> make_shader(const SkRect& bounds) {
     const SkPoint pts[] = {
diff --git a/gm/colormatrix.cpp b/gm/colormatrix.cpp
index 0fafdfe..21c14ca 100644
--- a/gm/colormatrix.cpp
+++ b/gm/colormatrix.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkColorMatrixFilter.h"
-#include "SkGradientShader.h"
-#include "SkImage.h"
+#include "gm/gm.h"
+#include "include/core/SkImage.h"
+#include "include/effects/SkColorMatrixFilter.h"
+#include "include/effects/SkGradientShader.h"
 
 #define WIDTH 500
 #define HEIGHT 500
diff --git a/gm/colorwheel.cpp b/gm/colorwheel.cpp
index 2f2d1a3..688251f 100644
--- a/gm/colorwheel.cpp
+++ b/gm/colorwheel.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkData.h"
-#include "SkImage.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
 static void draw_image(SkCanvas* canvas, const char* resource, int x, int y) {
     sk_sp<SkImage> image(GetResourceAsImage(resource));
diff --git a/gm/complexclip.cpp b/gm/complexclip.cpp
index c0a64c9..b3c4dc7 100644
--- a/gm/complexclip.cpp
+++ b/gm/complexclip.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkPath.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPath.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/complexclip2.cpp b/gm/complexclip2.cpp
index 71e07c9..c119341 100644
--- a/gm/complexclip2.cpp
+++ b/gm/complexclip2.cpp
@@ -6,12 +6,12 @@
  */
 
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkRect.h"
-#include "SkRRect.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRect.h"
+#include "include/utils/SkRandom.h"
 
 namespace skiagm {
 
diff --git a/gm/complexclip3.cpp b/gm/complexclip3.cpp
index b2b2a57..531f8d3 100644
--- a/gm/complexclip3.cpp
+++ b/gm/complexclip3.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "tools/ToolUtils.h"
 
 #include <utility>
 
diff --git a/gm/complexclip4.cpp b/gm/complexclip4.cpp
index 2765ceb5d..f8d324a 100644
--- a/gm/complexclip4.cpp
+++ b/gm/complexclip4.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkClipOpPriv.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "src/core/SkClipOpPriv.h"
 
 namespace skiagm {
 
diff --git a/gm/complexclip_blur_tiled.cpp b/gm/complexclip_blur_tiled.cpp
index f69c40d..8abb87d 100644
--- a/gm/complexclip_blur_tiled.cpp
+++ b/gm/complexclip_blur_tiled.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurImageFilter.h"
-#include "SkClipOpPriv.h"
-#include "SkRRect.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "src/core/SkClipOpPriv.h"
+#include "tools/ToolUtils.h"
 
 #define WIDTH 512
 #define HEIGHT 512
diff --git a/gm/composeshader.cpp b/gm/composeshader.cpp
index 46e3e4d..96843e8 100644
--- a/gm/composeshader.cpp
+++ b/gm/composeshader.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "SkColorPriv.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkGraphics.h"
-#include "SkImage.h"
-#include "SkShader.h"
-#include "SkString.h"
-#include "SkTDArray.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/private/SkTDArray.h"
 
 static sk_sp<SkShader> make_shader(SkBlendMode mode) {
     SkPoint pts[2];
diff --git a/gm/compositor_quads.cpp b/gm/compositor_quads.cpp
index 3cd0cad..db2202e 100644
--- a/gm/compositor_quads.cpp
+++ b/gm/compositor_quads.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
 #if SK_SUPPORT_GPU
 
-#include "Resources.h"
-#include "SkColorMatrixFilter.h"
-#include "SkFont.h"
-#include "SkGradientShader.h"
-#include "SkLineClipper.h"
-#include "SkMorphologyImageFilter.h"
-#include "SkPaintFilterCanvas.h"
-#include "SkShaderMaskFilter.h"
-#include "YUVUtils.h"
+#include "include/core/SkFont.h"
+#include "include/effects/SkColorMatrixFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/effects/SkMorphologyImageFilter.h"
+#include "include/effects/SkShaderMaskFilter.h"
+#include "include/utils/SkPaintFilterCanvas.h"
+#include "src/core/SkLineClipper.h"
+#include "tools/Resources.h"
+#include "tools/gpu/YUVUtils.h"
 
 #include <array>
 
diff --git a/gm/concavepaths.cpp b/gm/concavepaths.cpp
index adbc2c4..d0c3824 100644
--- a/gm/concavepaths.cpp
+++ b/gm/concavepaths.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
 
 namespace {
 // Concave test
diff --git a/gm/conicpaths.cpp b/gm/conicpaths.cpp
index 3f03bf0..c8c621c 100644
--- a/gm/conicpaths.cpp
+++ b/gm/conicpaths.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkTArray.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkTArray.h"
 
 class ConicPathsGM : public skiagm::GM {
 protected:
diff --git a/gm/constcolorprocessor.cpp b/gm/constcolorprocessor.cpp
index 0b572f1..ec0c7da 100644
--- a/gm/constcolorprocessor.cpp
+++ b/gm/constcolorprocessor.cpp
@@ -7,16 +7,16 @@
 
 // This test only works with the GPU backend.
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "GrContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "SkGr.h"
-#include "SkGradientShader.h"
-#include "effects/generated/GrConstColorProcessor.h"
-#include "ops/GrDrawOp.h"
-#include "ops/GrFillRectOp.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/effects/generated/GrConstColorProcessor.h"
+#include "src/gpu/ops/GrDrawOp.h"
+#include "src/gpu/ops/GrFillRectOp.h"
 
 namespace skiagm {
 /**
diff --git a/gm/convex_all_line_paths.cpp b/gm/convex_all_line_paths.cpp
index 38ee7b3..1f84c8f 100644
--- a/gm/convex_all_line_paths.cpp
+++ b/gm/convex_all_line_paths.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkPolyUtils.h"
-#include "SkPathPriv.h"
+#include "gm/gm.h"
+#include "src/core/SkPathPriv.h"
+#include "src/utils/SkPolyUtils.h"
 
 static void create_ngon(int n, SkPoint* pts, SkScalar width, SkScalar height) {
     float angleStep = 360.0f / n, angle = 0.0f;
diff --git a/gm/convexpaths.cpp b/gm/convexpaths.cpp
index ea0f690..b60e356 100644
--- a/gm/convexpaths.cpp
+++ b/gm/convexpaths.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "gm.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkTArray.h"
+#include "gm/gm.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkTArray.h"
+#include "include/utils/SkRandom.h"
 
 class SkDoOnce : SkNoncopyable {
 public:
diff --git a/gm/convexpolyclip.cpp b/gm/convexpolyclip.cpp
index d531b66..201943f 100644
--- a/gm/convexpolyclip.cpp
+++ b/gm/convexpolyclip.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "SkBitmap.h"
-#include "SkFont.h"
-#include "SkGradientShader.h"
-#include "SkPath.h"
-#include "SkTLList.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPath.h"
+#include "include/effects/SkGradientShader.h"
+#include "src/core/SkTLList.h"
 
 static SkBitmap make_bmp(int w, int h) {
     SkBitmap bmp;
diff --git a/gm/convexpolyeffect.cpp b/gm/convexpolyeffect.cpp
index 996a024..2526220 100644
--- a/gm/convexpolyeffect.cpp
+++ b/gm/convexpolyeffect.cpp
@@ -7,22 +7,22 @@
 
 // This test only works with the GPU backend.
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "GrContext.h"
-#include "GrDefaultGeoProcFactory.h"
-#include "GrMemoryPool.h"
-#include "GrOpFlushState.h"
-#include "GrPathUtils.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContextPriv.h"
-#include "SkColorPriv.h"
-#include "SkGeometry.h"
-#include "SkPointPriv.h"
-#include "SkTLList.h"
-#include "effects/GrConvexPolyEffect.h"
-#include "ops/GrMeshDrawOp.h"
+#include "include/core/SkColorPriv.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkPointPriv.h"
+#include "src/core/SkTLList.h"
+#include "src/gpu/GrDefaultGeoProcFactory.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrPathUtils.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/effects/GrConvexPolyEffect.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
 
 /** outset rendered rect to visualize anti-aliased poly edges */
 static SkRect outset(const SkRect& unsorted) {
diff --git a/gm/copyTo4444.cpp b/gm/copyTo4444.cpp
index 0f4a276..60c7b01 100644
--- a/gm/copyTo4444.cpp
+++ b/gm/copyTo4444.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkOSFile.h"
+#include "include/core/SkCanvas.h"
+#include "src/core/SkOSFile.h"
+#include "tools/Resources.h"
 
 namespace skiagm {
 
diff --git a/gm/crbug_691386.cpp b/gm/crbug_691386.cpp
index de7cfe6..a8c6189 100644
--- a/gm/crbug_691386.cpp
+++ b/gm/crbug_691386.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkParsePath.h"
+#include "gm/gm.h"
+#include "include/utils/SkParsePath.h"
 
 DEF_SIMPLE_GM_CAN_FAIL(crbug_691386, canvas, errorMsg, 256, 256) {
     SkPath path;
diff --git a/gm/crbug_788500.cpp b/gm/crbug_788500.cpp
index ba14673..9a35bfc 100644
--- a/gm/crbug_788500.cpp
+++ b/gm/crbug_788500.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
 
 DEF_SIMPLE_GM(crbug_788500, canvas, 300, 300) {
     SkPath path;
diff --git a/gm/crbug_847759.cpp b/gm/crbug_847759.cpp
index 855155e..2478028 100644
--- a/gm/crbug_847759.cpp
+++ b/gm/crbug_847759.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
 
 DEF_SIMPLE_GM(crbug_847759, canvas, 500, 500) {
     // This path exposed an issue in GrAAHairlinePathRenderer. When converting from cubics to quads
diff --git a/gm/crbug_884166.cpp b/gm/crbug_884166.cpp
index 409fb9a..618c641 100644
--- a/gm/crbug_884166.cpp
+++ b/gm/crbug_884166.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
 
 DEF_SIMPLE_GM(crbug_884166, canvas, 300, 300) {
     SkPaint paint;
diff --git a/gm/crbug_887103.cpp b/gm/crbug_887103.cpp
index 2e5223f..994b0a8 100644
--- a/gm/crbug_887103.cpp
+++ b/gm/crbug_887103.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
 
 DEF_SIMPLE_GM(crbug_887103, canvas, 520, 520) {
     SkPaint paint;
diff --git a/gm/crbug_892988.cpp b/gm/crbug_892988.cpp
index afe9a42..7466625 100644
--- a/gm/crbug_892988.cpp
+++ b/gm/crbug_892988.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
 
 // The root cause of this bug was that when dual source blending was not supported and we made a
 // copy of the destination to perform blending we would clip the copy bounds to the current clip.
diff --git a/gm/crbug_899512.cpp b/gm/crbug_899512.cpp
index 6498726..d3adea9 100644
--- a/gm/crbug_899512.cpp
+++ b/gm/crbug_899512.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurMaskFilter.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkLayerDrawLooper.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "include/effects/SkLayerDrawLooper.h"
 
 DEF_SIMPLE_GM(crbug_899512, canvas, 520, 520) {
     // comment this line below to solve the problem
diff --git a/gm/crbug_905548.cpp b/gm/crbug_905548.cpp
index da56213..64a9f33 100644
--- a/gm/crbug_905548.cpp
+++ b/gm/crbug_905548.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "SkArithmeticImageFilter.h"
-#include "SkBlurImageFilter.h"
-#include "SkImageSource.h"
-#include "SkMorphologyImageFilter.h"
-#include "SkSurface.h"
-#include "SkXfermodeImageFilter.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkArithmeticImageFilter.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkImageSource.h"
+#include "include/effects/SkMorphologyImageFilter.h"
+#include "include/effects/SkXfermodeImageFilter.h"
 
 DEF_SIMPLE_GM(crbug_905548, canvas, 100, 200) {
     auto surface = canvas->makeSurface(SkImageInfo::MakeN32Premul(100, 100));
diff --git a/gm/crbug_918512.cpp b/gm/crbug_918512.cpp
index cb91a00..64fc724 100644
--- a/gm/crbug_918512.cpp
+++ b/gm/crbug_918512.cpp
@@ -1,9 +1,9 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "SkLumaColorFilter.h"
+#include "include/effects/SkLumaColorFilter.h"
 
 // PDF backend should produce correct results.
 DEF_SIMPLE_GM(crbug_918512, canvas, 256, 256) {
diff --git a/gm/crbug_938592.cpp b/gm/crbug_938592.cpp
index 0284cd9..854f985 100644
--- a/gm/crbug_938592.cpp
+++ b/gm/crbug_938592.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkPaint.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/effects/SkGradientShader.h"
 
 // This draws a hard stop gradient applied to a rectangle. The hard stops fall at half pixel
 // boundaries in y. On some GPUs we've found that the winding of the two triangles that make up the
diff --git a/gm/crbug_946965.cpp b/gm/crbug_946965.cpp
index 9a36d9f..9947e42 100644
--- a/gm/crbug_946965.cpp
+++ b/gm/crbug_946965.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRRect.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
 
 // Exposed a bug in ellipse rendering where the radii were wrong under 90 degree rotation.
 DEF_SIMPLE_GM(crbug_946965, canvas, 75, 150) {
diff --git a/gm/crbug_947055.cpp b/gm/crbug_947055.cpp
index 20744e2..180e606 100644
--- a/gm/crbug_947055.cpp
+++ b/gm/crbug_947055.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
 
 DEF_SIMPLE_GM_BG(crbug_947055, canvas, 200, 50, SK_ColorBLUE) {
     // Green 2D rectangle to highlight the red rectangle. Isn't necessary
diff --git a/gm/croppedrects.cpp b/gm/croppedrects.cpp
index d6002d3..8135fdb 100644
--- a/gm/croppedrects.cpp
+++ b/gm/croppedrects.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkRRect.h"
-#include "SkSurface.h"
+#include "gm/gm.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkSurface.h"
+#include "include/utils/SkRandom.h"
 
 namespace skiagm {
 
diff --git a/gm/crosscontextimage.cpp b/gm/crosscontextimage.cpp
index 3515891..e1fe4ba 100644
--- a/gm/crosscontextimage.cpp
+++ b/gm/crosscontextimage.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "Resources.h"
+#include "gm/gm.h"
+#include "tools/Resources.h"
 
-#include "GrContext.h"
-#include "SkImage.h"
+#include "include/core/SkImage.h"
+#include "include/gpu/GrContext.h"
 
 DEF_SIMPLE_GPU_GM_CAN_FAIL(cross_context_image, context, rtc, canvas, errorMsg,
                            5 * 256 + 60, 256 + 128 + 30) {
diff --git a/gm/cubicpaths.cpp b/gm/cubicpaths.cpp
index d4bf225..9bee582 100644
--- a/gm/cubicpaths.cpp
+++ b/gm/cubicpaths.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 // https://bug.skia.org/1316 shows that this cubic, when slightly clipped, creates big
 // (incorrect) changes to its control points.
diff --git a/gm/daa.cpp b/gm/daa.cpp
index 6338a48..4ef78e8 100644
--- a/gm/daa.cpp
+++ b/gm/daa.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkFont.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPath.h"
 
 // This GM shows off a flaw in delta-based rasterizers (DAA, CCPR, etc.).
 // See also the bottom of dashing4 and skia:6886.
diff --git a/gm/dashcircle.cpp b/gm/dashcircle.cpp
index f92404f..57adf3f 100644
--- a/gm/dashcircle.cpp
+++ b/gm/dashcircle.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "SkDashPathEffect.h"
-#include "SkPath.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkPath.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "tools/timer/AnimTimer.h"
 
 int dash1[] = { 1, 1 };
 int dash2[] = { 1, 3 };
diff --git a/gm/dashcubics.cpp b/gm/dashcubics.cpp
index 0e24cf9..676b5a3 100644
--- a/gm/dashcubics.cpp
+++ b/gm/dashcubics.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "SkCanvas.h"
-#include "SkDashPathEffect.h"
-#include "SkParsePath.h"
-#include "SkPath.h"
-#include "SkTArray.h"
-#include "SkTrimPathEffect.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "include/effects/SkTrimPathEffect.h"
+#include "include/private/SkTArray.h"
+#include "include/utils/SkParsePath.h"
+#include "tools/timer/AnimTimer.h"
 
 #include <utility>
 
diff --git a/gm/dashing.cpp b/gm/dashing.cpp
index bcfa1cc..068afa1 100644
--- a/gm/dashing.cpp
+++ b/gm/dashing.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkDashPathEffect.h"
-#include "SkPaint.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "tools/ToolUtils.h"
 
 static void drawline(SkCanvas* canvas, int on, int off, const SkPaint& paint,
                      SkScalar finalX = SkIntToScalar(600), SkScalar finalY = SkIntToScalar(0),
diff --git a/gm/degeneratesegments.cpp b/gm/degeneratesegments.cpp
index 17de581..c3fa952 100644
--- a/gm/degeneratesegments.cpp
+++ b/gm/degeneratesegments.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/dftext.cpp b/gm/dftext.cpp
index 37f8b84..486ba99 100644
--- a/gm/dftext.cpp
+++ b/gm/dftext.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkStream.h"
-#include "SkSurface.h"
-#include "SkTextBlob.h"
-#include "SkTo.h"
-#include "SkTypeface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkTo.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
 class DFTextGM : public skiagm::GM {
 public:
diff --git a/gm/dftext_blob_persp.cpp b/gm/dftext_blob_persp.cpp
index 70111e4..64d6042 100644
--- a/gm/dftext_blob_persp.cpp
+++ b/gm/dftext_blob_persp.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkSurface.h"
-#include "SkTextBlob.h"
-#include "SkTypeface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
 /**
  * This GM tests reusing the same text blobs with distance fields rendering using various
diff --git a/gm/discard.cpp b/gm/discard.cpp
index 12d4ee0..d2c0e28 100644
--- a/gm/discard.cpp
+++ b/gm/discard.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkRandom.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkSurface.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/displacement.cpp b/gm/displacement.cpp
index 83a5085..624041a 100644
--- a/gm/displacement.cpp
+++ b/gm/displacement.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkDisplacementMapEffect.h"
-#include "SkImage.h"
-#include "SkImageSource.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkImage.h"
+#include "include/effects/SkDisplacementMapEffect.h"
+#include "include/effects/SkImageSource.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/distantclip.cpp b/gm/distantclip.cpp
index eb963f8..d650415 100644
--- a/gm/distantclip.cpp
+++ b/gm/distantclip.cpp
@@ -6,11 +6,11 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkPicture.h"
-#include "SkPictureRecorder.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
 
 namespace skiagm {
 
diff --git a/gm/downsamplebitmap.cpp b/gm/downsamplebitmap.cpp
index e0dde1b..f578310 100644
--- a/gm/downsamplebitmap.cpp
+++ b/gm/downsamplebitmap.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
 static const char* kFilterQualityNames[] = { "none", "low", "medium", "high" };
 
diff --git a/gm/draw_bitmap_rect_skbug4374.cpp b/gm/draw_bitmap_rect_skbug4374.cpp
index bf26049..2e09a3a 100644
--- a/gm/draw_bitmap_rect_skbug4374.cpp
+++ b/gm/draw_bitmap_rect_skbug4374.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Resources.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/Resources.h"
 // https://bug.skia.org/4374
 DEF_SIMPLE_GM(draw_bitmap_rect_skbug4734, canvas, 64, 64) {
     SkBitmap source;
diff --git a/gm/drawable.cpp b/gm/drawable.cpp
index 9428e32..2ef2abf 100644
--- a/gm/drawable.cpp
+++ b/gm/drawable.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkDrawable.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkDrawable.h"
+#include "include/core/SkPath.h"
 
 struct MyDrawable : public SkDrawable {
     SkRect onGetBounds() override { return SkRect::MakeWH(50, 100);  }
diff --git a/gm/drawatlas.cpp b/gm/drawatlas.cpp
index 5dafab4..7a3c7e9 100644
--- a/gm/drawatlas.cpp
+++ b/gm/drawatlas.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "SkAutoMalloc.h"
-#include "SkCanvas.h"
-#include "SkRSXform.h"
-#include "SkSurface.h"
-#include "SkTextBlob.h"
-#include "ToolUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkRSXform.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTextBlob.h"
+#include "src/core/SkAutoMalloc.h"
+#include "tools/ToolUtils.h"
 
 class DrawAtlasGM : public skiagm::GM {
     static sk_sp<SkImage> MakeAtlas(SkCanvas* caller, const SkRect& target) {
@@ -99,10 +99,10 @@
 DEF_GM( return new DrawAtlasGM; )
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
-#include "SkFont.h"
-#include "SkFontPriv.h"
-#include "SkPath.h"
-#include "SkPathMeasure.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPathMeasure.h"
+#include "src/core/SkFontPriv.h"
 
 static void draw_text_on_path(SkCanvas* canvas, const void* text, size_t length,
                               const SkPoint xy[], const SkPath& path, const SkFont& font, const SkPaint& paint,
@@ -153,7 +153,7 @@
     }
 }
 
-#include "SkGradientShader.h"
+#include "include/effects/SkGradientShader.h"
 static sk_sp<SkShader> make_shader() {
     SkPoint pts[2] = {{0, 0}, {220, 0}};
     SkColor colors[2] = {SK_ColorRED, SK_ColorBLUE};
@@ -237,9 +237,9 @@
     canvas->drawTextBlob(blob, offset.fX, offset.fY, paint);
 }
 
-#include "Resources.h"
-#include "SkColorFilter.h"
-#include "SkVertices.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkVertices.h"
+#include "tools/Resources.h"
 
 static sk_sp<SkVertices> make_vertices(sk_sp<SkImage> image, const SkRect& r,
                                        SkColor color) {
diff --git a/gm/drawatlascolor.cpp b/gm/drawatlascolor.cpp
index 532b771..c6f1da0 100644
--- a/gm/drawatlascolor.cpp
+++ b/gm/drawatlascolor.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkRSXform.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkRSXform.h"
+#include "include/core/SkSurface.h"
+#include "tools/ToolUtils.h"
 
 // Create a square atlas of:
 //   opaque white  |     opaque red
diff --git a/gm/drawbitmaprect.cpp b/gm/drawbitmaprect.cpp
index ebc768e..29e9f1a 100644
--- a/gm/drawbitmaprect.cpp
+++ b/gm/drawbitmaprect.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurMask.h"
-#include "SkBlurMaskFilter.h"
-#include "SkColorPriv.h"
-#include "SkGradientShader.h"
-#include "SkImage.h"
-#include "SkImage_Base.h"
-#include "SkMathPriv.h"
-#include "SkShader.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "src/core/SkBlurMask.h"
+#include "src/core/SkMathPriv.h"
+#include "src/image/SkImage_Base.h"
+#include "tools/ToolUtils.h"
 
 static SkBitmap make_chessbm(int w, int h) {
     SkBitmap bm;
diff --git a/gm/drawimageset.cpp b/gm/drawimageset.cpp
index e204cbb..bd00b63 100644
--- a/gm/drawimageset.cpp
+++ b/gm/drawimageset.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
 #include <algorithm>
-#include "SkGradientShader.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkGradientShader.h"
+#include "tools/ToolUtils.h"
 
 // Makes a set of m x n tiled images to be drawn with SkCanvas::experimental_drawImageSetV1().
 static void make_image_tiles(int tileW, int tileH, int m, int n, const SkColor colors[4],
diff --git a/gm/drawlooper.cpp b/gm/drawlooper.cpp
index cb1bf9c..4168ab8 100644
--- a/gm/drawlooper.cpp
+++ b/gm/drawlooper.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkGraphics.h"
-#include "SkLayerDrawLooper.h"
-#include "SkMaskFilter.h"
-#include "SkRandom.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/effects/SkLayerDrawLooper.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkBlurMask.h"
+#include "tools/ToolUtils.h"
 
 #define WIDTH   200
 #define HEIGHT  200
diff --git a/gm/drawminibitmaprect.cpp b/gm/drawminibitmaprect.cpp
index c8a875d..7052dee 100644
--- a/gm/drawminibitmaprect.cpp
+++ b/gm/drawminibitmaprect.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkColorPriv.h"
-#include "SkGradientShader.h"
-#include "SkImage.h"
-#include "SkMathPriv.h"
-#include "SkRandom.h"
-#include "SkShader.h"
-#include "SkSurface.h"
+#include "gm/gm.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkMathPriv.h"
 
 static sk_sp<SkImage> makebm(int w, int h) {
     SkImageInfo info = SkImageInfo::MakeN32Premul(w, h);
diff --git a/gm/drawquadset.cpp b/gm/drawquadset.cpp
index 8b22fc5..6d6fc2a 100644
--- a/gm/drawquadset.cpp
+++ b/gm/drawquadset.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "GrClip.h"
-#include "GrContext.h"
-#include "GrRenderTargetContext.h"
-#include "GrSurfaceContextPriv.h"
-#include "SkGr.h"
-#include "SkGradientShader.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceContextPriv.h"
+#include "src/gpu/SkGr.h"
 
 static constexpr SkScalar kTileWidth = 40;
 static constexpr SkScalar kTileHeight = 30;
diff --git a/gm/drawregion.cpp b/gm/drawregion.cpp
index 2230f09..ff06d1f 100644
--- a/gm/drawregion.cpp
+++ b/gm/drawregion.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkRegion.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkRegion.h"
 
 /**
  *  This is very similar to the RectGrid macrobench in Android.
diff --git a/gm/drawregionmodes.cpp b/gm/drawregionmodes.cpp
index d0ecfb4..3e6ad92 100644
--- a/gm/drawregionmodes.cpp
+++ b/gm/drawregionmodes.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkBlurImageFilter.h"
-#include "SkCanvas.h"
-#include "SkDashPathEffect.h"
-#include "SkGradientShader.h"
-#include "SkMaskFilter.h"
-#include "SkRegion.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkRegion.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "include/effects/SkGradientShader.h"
 
 class DrawRegionModesGM : public skiagm::GM {
 public:
diff --git a/gm/dropshadowimagefilter.cpp b/gm/dropshadowimagefilter.cpp
index e14844d..38d5716 100644
--- a/gm/dropshadowimagefilter.cpp
+++ b/gm/dropshadowimagefilter.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorFilter.h"
-#include "SkColorFilterImageFilter.h"
-#include "SkDropShadowImageFilter.h"
-#include "SkTextUtils.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkColorFilter.h"
+#include "include/effects/SkColorFilterImageFilter.h"
+#include "include/effects/SkDropShadowImageFilter.h"
+#include "include/utils/SkTextUtils.h"
+#include "tools/ToolUtils.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 
diff --git a/gm/drrect.cpp b/gm/drrect.cpp
index e3d3e6e..ea2a72b 100644
--- a/gm/drrect.cpp
+++ b/gm/drrect.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkRRect.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
 
 class DRRectGM : public skiagm::GM {
 public:
diff --git a/gm/drrect_small_inner.cpp b/gm/drrect_small_inner.cpp
index 1c7a743..d62b693 100644
--- a/gm/drrect_small_inner.cpp
+++ b/gm/drrect_small_inner.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkRRect.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkRRect.h"
 
 DEF_SIMPLE_GM(drrect_small_inner, canvas, 170, 610) {
     SkPaint paint;
diff --git a/gm/dstreadshuffle.cpp b/gm/dstreadshuffle.cpp
index a73b71c..4fba80f 100644
--- a/gm/dstreadshuffle.cpp
+++ b/gm/dstreadshuffle.cpp
@@ -4,13 +4,13 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkBitmap.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkShader.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSurface.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/emboss.cpp b/gm/emboss.cpp
index 04e0a36..883471d 100644
--- a/gm/emboss.cpp
+++ b/gm/emboss.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkEmbossMaskFilter.h"
-#include "SkFont.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkFont.h"
+#include "src/core/SkBlurMask.h"
+#include "src/effects/SkEmbossMaskFilter.h"
 
 static SkBitmap make_bm() {
     SkBitmap bm;
diff --git a/gm/emptypath.cpp b/gm/emptypath.cpp
index 4f77bfe..0a81dd1 100644
--- a/gm/emptypath.cpp
+++ b/gm/emptypath.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/encode-alpha-jpeg.cpp b/gm/encode-alpha-jpeg.cpp
index 673283d..fbca742 100644
--- a/gm/encode-alpha-jpeg.cpp
+++ b/gm/encode-alpha-jpeg.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkImage.h"
-#include "SkImageInfoPriv.h"
-#include "SkJpegEncoder.h"
+#include "gm/gm.h"
+#include "include/core/SkImage.h"
+#include "include/encode/SkJpegEncoder.h"
+#include "include/private/SkImageInfoPriv.h"
 
-#include "Resources.h"
+#include "tools/Resources.h"
 
 namespace skiagm {
 
diff --git a/gm/encode-platform.cpp b/gm/encode-platform.cpp
index 6f7b301..ecfd331 100644
--- a/gm/encode-platform.cpp
+++ b/gm/encode-platform.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkData.h"
-#include "SkImage.h"
-#include "SkImageEncoderPriv.h"
-#include "SkJpegEncoder.h"
-#include "SkPngEncoder.h"
-#include "SkWebpEncoder.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
+#include "include/encode/SkJpegEncoder.h"
+#include "include/encode/SkPngEncoder.h"
+#include "include/encode/SkWebpEncoder.h"
+#include "src/images/SkImageEncoderPriv.h"
+#include "tools/Resources.h"
 
 namespace skiagm {
 
diff --git a/gm/encode-srgb.cpp b/gm/encode-srgb.cpp
index 23f36e4..12a0ee3 100644
--- a/gm/encode-srgb.cpp
+++ b/gm/encode-srgb.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkCodec.h"
-#include "SkData.h"
-#include "SkImage.h"
-#include "SkImageEncoderPriv.h"
-#include "SkJpegEncoder.h"
-#include "SkPngEncoder.h"
-#include "SkWebpEncoder.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
+#include "include/encode/SkJpegEncoder.h"
+#include "include/encode/SkPngEncoder.h"
+#include "include/encode/SkWebpEncoder.h"
+#include "src/images/SkImageEncoderPriv.h"
+#include "tools/Resources.h"
 
 namespace skiagm {
 
diff --git a/gm/encode.cpp b/gm/encode.cpp
index 1201cf9..3e97c85 100644
--- a/gm/encode.cpp
+++ b/gm/encode.cpp
@@ -4,14 +4,14 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkData.h"
-#include "SkFont.h"
-#include "SkImage.h"
-#include "SkImageEncoder.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageEncoder.h"
+#include "tools/Resources.h"
 
 namespace skiagm {
 
diff --git a/gm/etc1.cpp b/gm/etc1.cpp
index a1bc415..552fa28 100644
--- a/gm/etc1.cpp
+++ b/gm/etc1.cpp
@@ -5,21 +5,21 @@
  * found in the LICENSE file.
  */
 
-#include "SkImage.h"
-#include "SkRandom.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkImage.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 #if SK_SUPPORT_GPU && !defined(SK_BUILD_FOR_GOOGLE3)
 #include "etc1.h"
 
-#include "GrContext.h"
-#include "GrGpu.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "GrTextureProxy.h"
-#include "effects/generated/GrSimpleTextureEffect.h"
-#include "ops/GrFillRectOp.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/effects/generated/GrSimpleTextureEffect.h"
+#include "src/gpu/ops/GrFillRectOp.h"
 
 // Basic test of Ganesh's ETC1 support
 class ETC1GM : public skiagm::GpuGM {
diff --git a/gm/extractbitmap.cpp b/gm/extractbitmap.cpp
index 41eacce..6726f27 100644
--- a/gm/extractbitmap.cpp
+++ b/gm/extractbitmap.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkString.h"
-#include "SkSurface.h"
+#include "gm/gm.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkString.h"
+#include "include/core/SkSurface.h"
 
 namespace skiagm {
 
diff --git a/gm/fadefilter.cpp b/gm/fadefilter.cpp
index f7fb9c9..fe31033 100644
--- a/gm/fadefilter.cpp
+++ b/gm/fadefilter.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkColorMatrixFilter.h"
-#include "SkColorFilterImageFilter.h"
+#include "gm/gm.h"
+#include "include/effects/SkColorFilterImageFilter.h"
+#include "include/effects/SkColorMatrixFilter.h"
 
 // This GM renders correctly in 8888, but fails in PDF
 DEF_SIMPLE_GM(fadefilter, canvas, 256, 256) {
diff --git a/gm/fatpathfill.cpp b/gm/fatpathfill.cpp
index 3b842a2..1952fd9 100644
--- a/gm/fatpathfill.cpp
+++ b/gm/fatpathfill.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkSurface.h"
+#include "tools/ToolUtils.h"
 
 #define ZOOM    32
 #define SMALL_W 9
diff --git a/gm/filltypes.cpp b/gm/filltypes.cpp
index c1e0526..96ef374 100644
--- a/gm/filltypes.cpp
+++ b/gm/filltypes.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkPath.h"
 
 namespace skiagm {
 
diff --git a/gm/filltypespersp.cpp b/gm/filltypespersp.cpp
index 10ca319..a9f0f12 100644
--- a/gm/filltypespersp.cpp
+++ b/gm/filltypespersp.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkGradientShader.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkPath.h"
+#include "include/effects/SkGradientShader.h"
 
 namespace skiagm {
 
diff --git a/gm/filterbitmap.cpp b/gm/filterbitmap.cpp
index 0deb828..5dae169 100644
--- a/gm/filterbitmap.cpp
+++ b/gm/filterbitmap.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "Resources.h"
-#include "SkGradientShader.h"
-#include "SkStream.h"
-#include "SkTypeface.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkGradientShader.h"
+#include "tools/Resources.h"
 
 static void setTypeface(SkFont* font, const char name[], SkFontStyle style) {
     font->setTypeface(ToolUtils::create_portable_typeface(name, style));
diff --git a/gm/filterbug.cpp b/gm/filterbug.cpp
index bd413b3..1da33e4 100644
--- a/gm/filterbug.cpp
+++ b/gm/filterbug.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkColorPriv.h"
-#include "SkImage.h"
+#include "gm/gm.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkImage.h"
 
 static const sk_sp<SkImage> make_image(int firstBlackRow, int lastBlackRow) {
     static const int kWidth = 25;
diff --git a/gm/filterfastbounds.cpp b/gm/filterfastbounds.cpp
index 908e00c..8b1366e 100644
--- a/gm/filterfastbounds.cpp
+++ b/gm/filterfastbounds.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkBlurImageFilter.h"
-#include "SkDropShadowImageFilter.h"
-#include "SkImageSource.h"
-#include "SkOffsetImageFilter.h"
-#include "SkPath.h"
-#include "SkPictureImageFilter.h"
-#include "SkPictureRecorder.h"
-#include "SkRandom.h"
-#include "SkSurface.h"
-#include "SkTileImageFilter.h"
+#include "gm/gm.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkDropShadowImageFilter.h"
+#include "include/effects/SkImageSource.h"
+#include "include/effects/SkOffsetImageFilter.h"
+#include "include/effects/SkPictureImageFilter.h"
+#include "include/effects/SkTileImageFilter.h"
+#include "include/utils/SkRandom.h"
 
 namespace skiagm {
 
diff --git a/gm/filterindiabox.cpp b/gm/filterindiabox.cpp
index fe4f31f..ead2a8d 100644
--- a/gm/filterindiabox.cpp
+++ b/gm/filterindiabox.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "Resources.h"
-#include "SkBitmapProcState.h"
-#include "SkGradientShader.h"
-#include "SkImageEncoder.h"
-#include "SkStream.h"
-#include "SkTypeface.h"
+#include "include/core/SkImageEncoder.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkGradientShader.h"
+#include "src/core/SkBitmapProcState.h"
+#include "tools/Resources.h"
 
 static SkSize computeSize(const SkBitmap& bm, const SkMatrix& mat) {
     SkRect bounds = SkRect::MakeWH(SkIntToScalar(bm.width()),
diff --git a/gm/flippity.cpp b/gm/flippity.cpp
index 4a8696e..7c595d6 100644
--- a/gm/flippity.cpp
+++ b/gm/flippity.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "SkSurface.h"
+#include "include/core/SkSurface.h"
 
-#include "GrContextPriv.h"
-#include "ProxyUtils.h"
-#include "SkImage_Gpu.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/image/SkImage_Gpu.h"
+#include "tools/gpu/ProxyUtils.h"
 
 static const int kNumMatrices = 6;
 static const int kImageSize = 128;
diff --git a/gm/fontcache.cpp b/gm/fontcache.cpp
index a96e944..7223860 100644
--- a/gm/fontcache.cpp
+++ b/gm/fontcache.cpp
@@ -8,17 +8,17 @@
 // GM to stress the GPU font cache
 // It's not necessary to run this with CPU configs
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "GrContext.h"
-#include "GrContextOptions.h"
-#include "GrContextPriv.h"
-#include "SkCanvas.h"
-#include "SkGraphics.h"
-#include "SkImage.h"
-#include "SkTypeface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkTypeface.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrContextOptions.h"
+#include "src/gpu/GrContextPriv.h"
+#include "tools/ToolUtils.h"
 
 static SkScalar draw_string(SkCanvas* canvas, const SkString& text, SkScalar x,
                            SkScalar y, const SkFont& font) {
diff --git a/gm/fontmgr.cpp b/gm/fontmgr.cpp
index efa9ad1..76c93a64 100644
--- a/gm/fontmgr.cpp
+++ b/gm/fontmgr.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "CommandLineFlags.h"
-#include "SkCanvas.h"
-#include "SkFontMetrics.h"
-#include "SkFontMgr.h"
-#include "SkFontPriv.h"
-#include "SkGraphics.h"
-#include "SkMetaData.h"
-#include "SkPath.h"
-#include "SkTypeface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkTypeface.h"
+#include "src/core/SkFontPriv.h"
+#include "src/utils/SkMetaData.h"
+#include "tools/ToolUtils.h"
+#include "tools/flags/CommandLineFlags.h"
 
 // limit this just so we don't take too long to draw
 #define MAX_FAMILIES    30
diff --git a/gm/fontregen.cpp b/gm/fontregen.cpp
index 7f1d697..7124c97 100644
--- a/gm/fontregen.cpp
+++ b/gm/fontregen.cpp
@@ -13,18 +13,18 @@
 // and then enough new large text to spill the entire atlas. What *should* happen is that
 // the Plot with the first set of text will not get overwritten by the new large text.
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrContextOptions.h"
-#include "SkCanvas.h"
-#include "SkGraphics.h"
-#include "SkImage.h"
-#include "SkTypeface.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkTypeface.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrContextOptions.h"
+#include "src/gpu/GrContextPriv.h"
 
-#include "ToolUtils.h"
+#include "tools/ToolUtils.h"
 
 static sk_sp<SkTextBlob> make_blob(const SkString& text, const SkFont& font) {
     size_t len = text.size();
diff --git a/gm/fontscaler.cpp b/gm/fontscaler.cpp
index 63a989d..a650d2f 100644
--- a/gm/fontscaler.cpp
+++ b/gm/fontscaler.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkFont.h"
-#include "SkTypeface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkTypeface.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/fontscalerdistortable.cpp b/gm/fontscalerdistortable.cpp
index c95d6e3..f3e6cb5 100644
--- a/gm/fontscalerdistortable.cpp
+++ b/gm/fontscalerdistortable.cpp
@@ -4,13 +4,13 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Resources.h"
-#include "SkFixed.h"
-#include "SkFont.h"
-#include "SkFontDescriptor.h"
-#include "SkFontMgr.h"
-#include "SkTypeface.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkFixed.h"
+#include "src/core/SkFontDescriptor.h"
+#include "tools/Resources.h"
 
 namespace skiagm {
 
diff --git a/gm/fwidth_squircle.cpp b/gm/fwidth_squircle.cpp
index 829c3d9..1448e48 100644
--- a/gm/fwidth_squircle.cpp
+++ b/gm/fwidth_squircle.cpp
@@ -5,25 +5,25 @@
  * found in the LICENSE file.
  */
 
-#include "SkTextUtils.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/utils/SkTextUtils.h"
+#include "tools/ToolUtils.h"
 
 #if SK_SUPPORT_GPU
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpuCommandBuffer.h"
-#include "GrMemoryPool.h"
-#include "GrOpFlushState.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLVarying.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 /**
  * This test ensures that fwidth() works properly on GPU configs by drawing a squircle.
diff --git a/gm/gamma.cpp b/gm/gamma.cpp
index 9cdd870..99e73f8 100644
--- a/gm/gamma.cpp
+++ b/gm/gamma.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "Resources.h"
-#include "SkBlendModePriv.h"
-#include "SkGradientShader.h"
+#include "include/effects/SkGradientShader.h"
+#include "src/core/SkBlendModePriv.h"
+#include "tools/Resources.h"
 
 DEF_SIMPLE_GM(gamma, canvas, 850, 200) {
     SkPaint p;
diff --git a/gm/gammatext.cpp b/gm/gammatext.cpp
index 17c795f..fc1ca4a 100644
--- a/gm/gammatext.cpp
+++ b/gm/gammatext.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkPath.h"
-#include "SkTypeface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkGradientShader.h"
+#include "tools/ToolUtils.h"
 
 static sk_sp<SkShader> make_heatGradient(const SkPoint pts[2]) {
     const SkColor bw[] = { SK_ColorBLACK, SK_ColorWHITE };
diff --git a/gm/getpostextpath.cpp b/gm/getpostextpath.cpp
index f61aad6..c0911ec 100644
--- a/gm/getpostextpath.cpp
+++ b/gm/getpostextpath.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "SkCanvas.h"
-#include "SkFontPriv.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkTemplates.h"
-#include "SkTextBlob.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkTextBlob.h"
+#include "include/private/SkTemplates.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkFontPriv.h"
 
 static void strokePath(SkCanvas* canvas, const SkPath& path) {
     SkPaint paint;
diff --git a/gm/giantbitmap.cpp b/gm/giantbitmap.cpp
index 17b6063..fe8237d 100644
--- a/gm/giantbitmap.cpp
+++ b/gm/giantbitmap.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkShader.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkShader.h"
 
 /*
  *  Want to ensure that our bitmap sampler (in bitmap shader) keeps plenty of
diff --git a/gm/glyph_pos.cpp b/gm/glyph_pos.cpp
index 54d5ff8..a0ef297 100644
--- a/gm/glyph_pos.cpp
+++ b/gm/glyph_pos.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkTypeface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkTypeface.h"
+#include "tools/ToolUtils.h"
 
 /* This test tries to define the effect of using hairline strokes on text.
  * Provides non-hairline images for reference and consistency checks.
diff --git a/gm/gm.cpp b/gm/gm.cpp
index 1831aaa..7d52f1d 100644
--- a/gm/gm.cpp
+++ b/gm/gm.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "GrContext.h"
-#include "SkShader.h"
-#include "SkTraceEvent.h"
-#include "ToolUtils.h"
+#include "include/core/SkShader.h"
+#include "include/gpu/GrContext.h"
+#include "src/core/SkTraceEvent.h"
+#include "tools/ToolUtils.h"
 using namespace skiagm;
 
 constexpr char GM::kErrorMsg_DrawSkippedGpuOnly[];
diff --git a/gm/gm.h b/gm/gm.h
index e7dee35..b391a9c 100644
--- a/gm/gm.h
+++ b/gm/gm.h
@@ -8,14 +8,14 @@
 #ifndef skiagm_DEFINED
 #define skiagm_DEFINED
 
-#include "../tools/Registry.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkClipOpPriv.h"
-#include "SkMacros.h"
-#include "SkPaint.h"
-#include "SkSize.h"
-#include "SkString.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkString.h"
+#include "include/private/SkMacros.h"
+#include "src/core/SkClipOpPriv.h"
+#include "tools/Registry.h"
 
 class AnimTimer;
 class SkMetaData;
diff --git a/gm/gradientDirtyLaundry.cpp b/gm/gradientDirtyLaundry.cpp
index f2e17fb..fa712e9 100644
--- a/gm/gradientDirtyLaundry.cpp
+++ b/gm/gradientDirtyLaundry.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "gm.h"
-#include "SkGradientShader.h"
+#include "gm/gm.h"
+#include "include/effects/SkGradientShader.h"
 
 using namespace skiagm;
 
diff --git a/gm/gradient_matrix.cpp b/gm/gradient_matrix.cpp
index 6f33502..f45ad8c 100644
--- a/gm/gradient_matrix.cpp
+++ b/gm/gradient_matrix.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkGradientShader.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkSize.h"
-#include "SkString.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkGradientShader.h"
 
-#include "gm.h"
+#include "gm/gm.h"
 
 constexpr SkColor gColors[] = {
     SK_ColorRED, SK_ColorYELLOW
diff --git a/gm/gradients.cpp b/gm/gradients.cpp
index 3be8e77..09de0e8 100644
--- a/gm/gradients.cpp
+++ b/gm/gradients.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkGradientShader.h"
+#include "gm/gm.h"
+#include "include/effects/SkGradientShader.h"
 
 namespace skiagm {
 
@@ -914,7 +914,7 @@
     draw_many_stops(canvas);
 }
 
-#include "SkPictureRecorder.h"
+#include "include/core/SkPictureRecorder.h"
 
 static void draw_circle_shader(SkCanvas* canvas, SkScalar cx, SkScalar cy, SkScalar r,
                                sk_sp<SkShader> (*shaderFunc)()) {
diff --git a/gm/gradients_2pt_conical.cpp b/gm/gradients_2pt_conical.cpp
index 27a1eef..5e33e1d 100644
--- a/gm/gradients_2pt_conical.cpp
+++ b/gm/gradients_2pt_conical.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkGradientShader.h"
+#include "gm/gm.h"
+#include "include/effects/SkGradientShader.h"
 
 namespace skiagm {
 
diff --git a/gm/gradients_degenerate.cpp b/gm/gradients_degenerate.cpp
index 97ccc49..3f16f8b 100644
--- a/gm/gradients_degenerate.cpp
+++ b/gm/gradients_degenerate.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkFont.h"
-#include "SkGradientShader.h"
+#include "gm/gm.h"
+#include "include/core/SkFont.h"
+#include "include/effects/SkGradientShader.h"
 
 // NOTE: The positions define hardstops for the red and green borders. For the repeating degenerate
 // gradients, that means the red and green are never visible, so the average color used should only
diff --git a/gm/gradients_no_texture.cpp b/gm/gradients_no_texture.cpp
index 2814f3c..3515db9 100644
--- a/gm/gradients_no_texture.cpp
+++ b/gm/gradients_no_texture.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "gm.h"
-#include "SkGradientShader.h"
+#include "gm/gm.h"
+#include "include/effects/SkGradientShader.h"
 
 using namespace skiagm;
 
diff --git a/gm/gradtext.cpp b/gm/gradtext.cpp
index a4fd0b4..60e2df5 100644
--- a/gm/gradtext.cpp
+++ b/gm/gradtext.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkTypeface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkGradientShader.h"
+#include "tools/ToolUtils.h"
 
 // test shader w/ transparency
 static sk_sp<SkShader> make_grad(SkScalar width) {
diff --git a/gm/grayscalejpg.cpp b/gm/grayscalejpg.cpp
index 851c8d0..38b18ac 100644
--- a/gm/grayscalejpg.cpp
+++ b/gm/grayscalejpg.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkImage.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkImage.h"
+#include "tools/Resources.h"
 
 /*
  *  Test decoding grayscale JPEG
diff --git a/gm/hairlines.cpp b/gm/hairlines.cpp
index 6d4b8d4..b4e2f92 100644
--- a/gm/hairlines.cpp
+++ b/gm/hairlines.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkTArray.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkTArray.h"
 
 namespace skiagm {
 
diff --git a/gm/hairmodes.cpp b/gm/hairmodes.cpp
index 9793e93..9e46c1b 100644
--- a/gm/hairmodes.cpp
+++ b/gm/hairmodes.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkShader.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkShader.h"
 
 constexpr SkBlendMode gModes[] = {
     SkBlendMode::kClear,
diff --git a/gm/hardstop_gradients.cpp b/gm/hardstop_gradients.cpp
index 64d42e8..9ac3086 100644
--- a/gm/hardstop_gradients.cpp
+++ b/gm/hardstop_gradients.cpp
@@ -36,9 +36,9 @@
  * 0, 0, 1 and 0, 1, 1). The final row has a single off-center hard stop.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "SkGradientShader.h"
+#include "include/effects/SkGradientShader.h"
 
 const int WIDTH  = 500;
 const int HEIGHT = 500;
diff --git a/gm/highcontrastfilter.cpp b/gm/highcontrastfilter.cpp
index cc7ef28..e0d7779 100644
--- a/gm/highcontrastfilter.cpp
+++ b/gm/highcontrastfilter.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkGradientShader.h"
-#include "SkHighContrastFilter.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/effects/SkHighContrastFilter.h"
+#include "tools/ToolUtils.h"
 
 using InvertStyle = SkHighContrastConfig::InvertStyle;
 
diff --git a/gm/hittestpath.cpp b/gm/hittestpath.cpp
index 5d0d1fc..6fbb5fa 100644
--- a/gm/hittestpath.cpp
+++ b/gm/hittestpath.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkRandom.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/utils/SkRandom.h"
 
 static void test_hittest(SkCanvas* canvas, const SkPath& path) {
     SkPaint paint;
diff --git a/gm/hsl.cpp b/gm/hsl.cpp
index 6839811..bee02c8 100644
--- a/gm/hsl.cpp
+++ b/gm/hsl.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
 // Hue, Saturation, Color, and Luminosity blend modes are oddballs.
 // They nominally convert their inputs to unpremul, then to HSL, then
diff --git a/gm/hugepath.cpp b/gm/hugepath.cpp
index 4a691b8..157111f 100644
--- a/gm/hugepath.cpp
+++ b/gm/hugepath.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkSurface.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkSurface.h"
 
 DEF_SIMPLE_GM(path_huge_crbug_800804, canvas, 50, 600) {
     SkPaint paint;
diff --git a/gm/image.cpp b/gm/image.cpp
index b6e438c..bc09b1c 100644
--- a/gm/image.cpp
+++ b/gm/image.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "GrContext.h"
-#include "SkAutoPixmapStorage.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkData.h"
-#include "SkRandom.h"
-#include "SkStream.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkAutoPixmapStorage.h"
+#include "tools/ToolUtils.h"
 
 #include <functional>
 
@@ -154,7 +154,7 @@
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-#include "SkPictureRecorder.h"
+#include "include/core/SkPictureRecorder.h"
 
 static void draw_pixmap(SkCanvas* canvas, const SkPixmap& pmap) {
     SkBitmap bitmap;
@@ -383,8 +383,8 @@
     return SkImage::MakeFromEncoded(std::move(data));
 }
 
-#include "SkWriteBuffer.h"
-#include "SkReadBuffer.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 static sk_sp<SkImage> serial_deserial(SkImage* img) {
     SkBinaryWriteBuffer writer;
     writer.writeImage(img);
diff --git a/gm/image_pict.cpp b/gm/image_pict.cpp
index 6614c99..43a100f 100644
--- a/gm/image_pict.cpp
+++ b/gm/image_pict.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkImage.h"
-#include "SkImageGenerator.h"
-#include "SkImage_Base.h"
-#include "SkMakeUnique.h"
-#include "SkPictureRecorder.h"
-#include "SkSurface.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageGenerator.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkSurface.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/image/SkImage_Base.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrSurfaceContext.h"
-#include "GrTextureProxy.h"
-#include "../src/image/SkImage_Gpu.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrSurfaceContext.h"
+#include "src/image/SkImage_Gpu.h"
 
 static void draw_something(SkCanvas* canvas, const SkRect& bounds) {
     SkPaint paint;
diff --git a/gm/image_shader.cpp b/gm/image_shader.cpp
index 37242d5..abac563 100644
--- a/gm/image_shader.cpp
+++ b/gm/image_shader.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkData.h"
-#include "SkImage.h"
-#include "SkPictureRecorder.h"
-#include "SkSurface.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkSurface.h"
 
 static void draw_something(SkCanvas* canvas, const SkRect& bounds) {
     SkPaint paint;
diff --git a/gm/imagealphathreshold.cpp b/gm/imagealphathreshold.cpp
index 1fe4dad..d4e7b27 100644
--- a/gm/imagealphathreshold.cpp
+++ b/gm/imagealphathreshold.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkAlphaThresholdFilter.h"
-#include "SkImageSource.h"
-#include "SkOffsetImageFilter.h"
-#include "SkRandom.h"
-#include "SkRegion.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkAlphaThresholdFilter.h"
+#include "include/effects/SkImageSource.h"
+#include "include/effects/SkOffsetImageFilter.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 #define WIDTH 500
 #define HEIGHT 500
diff --git a/gm/imageblur.cpp b/gm/imageblur.cpp
index 5aca868..9bbfa1a 100644
--- a/gm/imageblur.cpp
+++ b/gm/imageblur.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurImageFilter.h"
-#include "SkRandom.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 #define WIDTH 500
 #define HEIGHT 500
diff --git a/gm/imageblur2.cpp b/gm/imageblur2.cpp
index 1bed94c..dfdb295 100644
--- a/gm/imageblur2.cpp
+++ b/gm/imageblur2.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurImageFilter.h"
-#include "SkRandom.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 // TODO deprecate imageblur
 
diff --git a/gm/imageblurclampmode.cpp b/gm/imageblurclampmode.cpp
index 2cd1723..f2dbbda 100644
--- a/gm/imageblurclampmode.cpp
+++ b/gm/imageblurclampmode.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurImageFilter.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "tools/ToolUtils.h"
 
 static sk_sp<SkImage> make_image(SkCanvas* canvas) {
     SkImageInfo info = SkImageInfo::MakeN32Premul(250, 200);
diff --git a/gm/imageblurrepeatmode.cpp b/gm/imageblurrepeatmode.cpp
index 9dafd1d..01835da 100644
--- a/gm/imageblurrepeatmode.cpp
+++ b/gm/imageblurrepeatmode.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurImageFilter.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "tools/ToolUtils.h"
 
 static sk_sp<SkImage> make_image(SkCanvas* canvas, int direction) {
     SkImageInfo info = SkImageInfo::MakeN32Premul(250, 200);
diff --git a/gm/imageblurtiled.cpp b/gm/imageblurtiled.cpp
index f1d15d0..46677c6 100644
--- a/gm/imageblurtiled.cpp
+++ b/gm/imageblurtiled.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurImageFilter.h"
-#include "SkRandom.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 #define WIDTH 640
 #define HEIGHT 480
diff --git a/gm/imagefilters.cpp b/gm/imagefilters.cpp
index db11c18..dd5ef400 100644
--- a/gm/imagefilters.cpp
+++ b/gm/imagefilters.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurImageFilter.h"
-#include "SkColorMatrixFilter.h"
-#include "SkImage.h"
-#include "SkImageFilter.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkColorMatrixFilter.h"
+#include "tools/ToolUtils.h"
 
 /**
  *  Test drawing a primitive w/ an imagefilter (in this case, just matrix w/ identity) to see
@@ -104,13 +104,13 @@
 }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
-#include "Resources.h"
-#include "SkBlurImageFilter.h"
-#include "SkMatrixConvolutionImageFilter.h"
-#include "SkMorphologyImageFilter.h"
-#include "SkColorMatrixFilter.h"
-#include "SkColorFilterImageFilter.h"
-#include "SkRRect.h"
+#include "include/core/SkRRect.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkColorFilterImageFilter.h"
+#include "include/effects/SkColorMatrixFilter.h"
+#include "include/effects/SkMatrixConvolutionImageFilter.h"
+#include "include/effects/SkMorphologyImageFilter.h"
+#include "tools/Resources.h"
 
 static void draw_set(SkCanvas* canvas, sk_sp<SkImageFilter> filters[], int count) {
     const SkRect r = SkRect::MakeXYWH(30, 30, 200, 200);
diff --git a/gm/imagefiltersbase.cpp b/gm/imagefiltersbase.cpp
index cd5f9d2..02f85f8 100644
--- a/gm/imagefiltersbase.cpp
+++ b/gm/imagefiltersbase.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkColorPriv.h"
-#include "SkImageFilterPriv.h"
-#include "SkShader.h"
-#include "SkTextUtils.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkShader.h"
+#include "include/utils/SkTextUtils.h"
+#include "src/core/SkImageFilterPriv.h"
+#include "tools/ToolUtils.h"
 
-#include "SkBlurImageFilter.h"
-#include "SkColorFilterImageFilter.h"
-#include "SkDropShadowImageFilter.h"
-#include "SkSpecialImage.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkColorFilterImageFilter.h"
+#include "include/effects/SkDropShadowImageFilter.h"
+#include "src/core/SkSpecialImage.h"
 
 class FailImageFilter : public SkImageFilter {
 public:
diff --git a/gm/imagefiltersclipped.cpp b/gm/imagefiltersclipped.cpp
index 16a7fc6..5afcb8c 100644
--- a/gm/imagefiltersclipped.cpp
+++ b/gm/imagefiltersclipped.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurImageFilter.h"
-#include "SkColor.h"
-#include "SkDisplacementMapEffect.h"
-#include "SkDropShadowImageFilter.h"
-#include "SkGradientShader.h"
-#include "SkImage.h"
-#include "SkImageSource.h"
-#include "SkLightingImageFilter.h"
-#include "SkMorphologyImageFilter.h"
-#include "SkOffsetImageFilter.h"
-#include "SkPaintImageFilter.h"
-#include "SkPerlinNoiseShader.h"
-#include "SkPoint3.h"
-#include "SkScalar.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPoint3.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkDisplacementMapEffect.h"
+#include "include/effects/SkDropShadowImageFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/effects/SkImageSource.h"
+#include "include/effects/SkLightingImageFilter.h"
+#include "include/effects/SkMorphologyImageFilter.h"
+#include "include/effects/SkOffsetImageFilter.h"
+#include "include/effects/SkPaintImageFilter.h"
+#include "include/effects/SkPerlinNoiseShader.h"
+#include "tools/ToolUtils.h"
 
 #define RESIZE_FACTOR_X SkIntToScalar(2)
 #define RESIZE_FACTOR_Y SkIntToScalar(5)
diff --git a/gm/imagefilterscropexpand.cpp b/gm/imagefilterscropexpand.cpp
index 94b301f..5274304 100644
--- a/gm/imagefilterscropexpand.cpp
+++ b/gm/imagefilterscropexpand.cpp
@@ -5,25 +5,25 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkColorPriv.h"
-#include "SkShader.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkShader.h"
 
-#include "SkBlurImageFilter.h"
-#include "SkColorMatrixFilter.h"
-#include "SkDisplacementMapEffect.h"
-#include "SkDropShadowImageFilter.h"
-#include "SkGradientShader.h"
-#include "SkImageSource.h"
-#include "SkMorphologyImageFilter.h"
-#include "SkColorFilterImageFilter.h"
-#include "SkLightingImageFilter.h"
-#include "SkMergeImageFilter.h"
-#include "SkOffsetImageFilter.h"
-#include "SkPoint3.h"
-#include "SkSurface.h"
+#include "include/core/SkPoint3.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkColorFilterImageFilter.h"
+#include "include/effects/SkColorMatrixFilter.h"
+#include "include/effects/SkDisplacementMapEffect.h"
+#include "include/effects/SkDropShadowImageFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/effects/SkImageSource.h"
+#include "include/effects/SkLightingImageFilter.h"
+#include "include/effects/SkMergeImageFilter.h"
+#include "include/effects/SkMorphologyImageFilter.h"
+#include "include/effects/SkOffsetImageFilter.h"
 
 namespace {
 
diff --git a/gm/imagefilterscropped.cpp b/gm/imagefilterscropped.cpp
index 2338aff..9c595af 100644
--- a/gm/imagefilterscropped.cpp
+++ b/gm/imagefilterscropped.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkColorPriv.h"
-#include "SkShader.h"
-#include "SkTextUtils.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkShader.h"
+#include "include/utils/SkTextUtils.h"
+#include "tools/ToolUtils.h"
 
-#include "SkBlurImageFilter.h"
-#include "SkMorphologyImageFilter.h"
-#include "SkColorFilterImageFilter.h"
-#include "SkMergeImageFilter.h"
-#include "SkOffsetImageFilter.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkColorFilterImageFilter.h"
+#include "include/effects/SkMergeImageFilter.h"
+#include "include/effects/SkMorphologyImageFilter.h"
+#include "include/effects/SkOffsetImageFilter.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 
diff --git a/gm/imagefiltersgraph.cpp b/gm/imagefiltersgraph.cpp
index 7955b52..f41be74 100644
--- a/gm/imagefiltersgraph.cpp
+++ b/gm/imagefiltersgraph.cpp
@@ -5,25 +5,25 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "SkArithmeticImageFilter.h"
-#include "SkBlurImageFilter.h"
-#include "SkColorFilter.h"
-#include "SkColorFilterImageFilter.h"
-#include "SkColorMatrixFilter.h"
-#include "SkImage.h"
-#include "SkImageSource.h"
-#include "SkMatrixConvolutionImageFilter.h"
-#include "SkMergeImageFilter.h"
-#include "SkMorphologyImageFilter.h"
-#include "SkOffsetImageFilter.h"
-#include "SkReadBuffer.h"
-#include "SkSpecialImage.h"
-#include "SkSpecialSurface.h"
-#include "SkWriteBuffer.h"
-#include "SkXfermodeImageFilter.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkImage.h"
+#include "include/effects/SkArithmeticImageFilter.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkColorFilterImageFilter.h"
+#include "include/effects/SkColorMatrixFilter.h"
+#include "include/effects/SkImageSource.h"
+#include "include/effects/SkMatrixConvolutionImageFilter.h"
+#include "include/effects/SkMergeImageFilter.h"
+#include "include/effects/SkMorphologyImageFilter.h"
+#include "include/effects/SkOffsetImageFilter.h"
+#include "include/effects/SkXfermodeImageFilter.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkSpecialSurface.h"
+#include "src/core/SkWriteBuffer.h"
 
 class ImageFiltersGraphGM : public skiagm::GM {
 public:
diff --git a/gm/imagefiltersscaled.cpp b/gm/imagefiltersscaled.cpp
index f3d354a..eee336c 100644
--- a/gm/imagefiltersscaled.cpp
+++ b/gm/imagefiltersscaled.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurImageFilter.h"
-#include "SkColor.h"
-#include "SkDisplacementMapEffect.h"
-#include "SkDropShadowImageFilter.h"
-#include "SkGradientShader.h"
-#include "SkImage.h"
-#include "SkImageSource.h"
-#include "SkLightingImageFilter.h"
-#include "SkMorphologyImageFilter.h"
-#include "SkOffsetImageFilter.h"
-#include "SkPaintImageFilter.h"
-#include "SkPerlinNoiseShader.h"
-#include "SkPoint3.h"
-#include "SkScalar.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPoint3.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkDisplacementMapEffect.h"
+#include "include/effects/SkDropShadowImageFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/effects/SkImageSource.h"
+#include "include/effects/SkLightingImageFilter.h"
+#include "include/effects/SkMorphologyImageFilter.h"
+#include "include/effects/SkOffsetImageFilter.h"
+#include "include/effects/SkPaintImageFilter.h"
+#include "include/effects/SkPerlinNoiseShader.h"
+#include "tools/ToolUtils.h"
 
 #define RESIZE_FACTOR SkIntToScalar(4)
 
diff --git a/gm/imagefiltersstroked.cpp b/gm/imagefiltersstroked.cpp
index d69d486..0bebfd9 100644
--- a/gm/imagefiltersstroked.cpp
+++ b/gm/imagefiltersstroked.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurImageFilter.h"
-#include "SkColor.h"
-#include "SkDropShadowImageFilter.h"
-#include "SkOffsetImageFilter.h"
-#include "SkScalar.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkScalar.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkDropShadowImageFilter.h"
+#include "include/effects/SkOffsetImageFilter.h"
 
 #define RESIZE_FACTOR_X SkIntToScalar(2)
 #define RESIZE_FACTOR_Y SkIntToScalar(5)
diff --git a/gm/imagefilterstransformed.cpp b/gm/imagefilterstransformed.cpp
index 9d2ed28..292e68f 100644
--- a/gm/imagefilterstransformed.cpp
+++ b/gm/imagefilterstransformed.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurImageFilter.h"
-#include "SkColor.h"
-#include "SkDisplacementMapEffect.h"
-#include "SkDropShadowImageFilter.h"
-#include "SkGradientShader.h"
-#include "SkImage.h"
-#include "SkImageSource.h"
-#include "SkMorphologyImageFilter.h"
-#include "SkScalar.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkDisplacementMapEffect.h"
+#include "include/effects/SkDropShadowImageFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/effects/SkImageSource.h"
+#include "include/effects/SkMorphologyImageFilter.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
@@ -117,7 +117,7 @@
 }
 
 //////////////////////////////////////////////////////////////////////////////
-#include "SkXfermodeImageFilter.h"
+#include "include/effects/SkXfermodeImageFilter.h"
 
 DEF_SIMPLE_GM(rotate_imagefilter, canvas, 500, 500) {
     SkPaint paint;
diff --git a/gm/imagefromyuvtextures.cpp b/gm/imagefromyuvtextures.cpp
index 47f86c6..72f4278 100644
--- a/gm/imagefromyuvtextures.cpp
+++ b/gm/imagefromyuvtextures.cpp
@@ -7,16 +7,16 @@
 
 // This test only works with the GPU backend.
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "GrBackendSurface.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "SkBitmap.h"
-#include "SkGradientShader.h"
-#include "SkImage.h"
-#include "SkTo.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkImage.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/SkTo.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
 
 static sk_sp<SkColorFilter> yuv_to_rgb_colorfilter() {
     static const float kJPEGConversionMatrix[20] = {
diff --git a/gm/imagemagnifier.cpp b/gm/imagemagnifier.cpp
index b34dfb6..a9110bf 100644
--- a/gm/imagemagnifier.cpp
+++ b/gm/imagemagnifier.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkImageSource.h"
-#include "SkMagnifierImageFilter.h"
-#include "SkPixelRef.h"
-#include "SkRandom.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkPixelRef.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkImageSource.h"
+#include "include/effects/SkMagnifierImageFilter.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 #define WIDTH 500
 #define HEIGHT 500
diff --git a/gm/imagemakewithfilter.cpp b/gm/imagemakewithfilter.cpp
index ef90f17..3ad2fd5 100644
--- a/gm/imagemakewithfilter.cpp
+++ b/gm/imagemakewithfilter.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurImageFilter.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkColorFilterImageFilter.h"
-#include "SkDropShadowImageFilter.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkColorFilterImageFilter.h"
+#include "include/effects/SkDropShadowImageFilter.h"
+#include "tools/ToolUtils.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 
diff --git a/gm/imagemasksubset.cpp b/gm/imagemasksubset.cpp
index 6998055..6e03f1e 100644
--- a/gm/imagemasksubset.cpp
+++ b/gm/imagemasksubset.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkImage.h"
-#include "SkImageGenerator.h"
-#include "SkMakeUnique.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageGenerator.h"
+#include "include/core/SkSurface.h"
+#include "src/core/SkMakeUnique.h"
+#include "tools/ToolUtils.h"
 
 namespace {
 
diff --git a/gm/imageresizetiled.cpp b/gm/imageresizetiled.cpp
index f85afd8..95c2d32 100644
--- a/gm/imageresizetiled.cpp
+++ b/gm/imageresizetiled.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkImageFilter.h"
-#include "SkRandom.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkImageFilter.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 #define WIDTH 640
 #define HEIGHT 480
diff --git a/gm/imagescalealigned.cpp b/gm/imagescalealigned.cpp
index a1f6741..e519082 100644
--- a/gm/imagescalealigned.cpp
+++ b/gm/imagescalealigned.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "SkImage.h"
-#include "SkSurface.h"
-#include "SkTArray.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkSurface.h"
+#include "include/private/SkTArray.h"
 
 class ImageScaleAlignedGM : public skiagm::GM {
 protected:
diff --git a/gm/imagesource.cpp b/gm/imagesource.cpp
index ea323e6..44dd71a 100644
--- a/gm/imagesource.cpp
+++ b/gm/imagesource.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "SkImage.h"
-#include "SkImageSource.h"
+#include "include/core/SkImage.h"
+#include "include/effects/SkImageSource.h"
 
 // This GM exercises the SkImageSource ImageFilter class.
 
diff --git a/gm/imagesource2.cpp b/gm/imagesource2.cpp
index 70a91da..61b9086 100644
--- a/gm/imagesource2.cpp
+++ b/gm/imagesource2.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkImage.h"
-#include "SkImageSource.h"
-#include "SkSurface.h"
+#include "gm/gm.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkImageSource.h"
 
 namespace skiagm {
 
diff --git a/gm/internal_links.cpp b/gm/internal_links.cpp
index fc710a8..e71b488 100644
--- a/gm/internal_links.cpp
+++ b/gm/internal_links.cpp
@@ -4,11 +4,11 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "SkAnnotation.h"
-#include "SkData.h"
+#include "include/core/SkAnnotation.h"
+#include "include/core/SkData.h"
 
 namespace skiagm {
 
diff --git a/gm/inversepaths.cpp b/gm/inversepaths.cpp
index f9d3ac7..b6848d9 100644
--- a/gm/inversepaths.cpp
+++ b/gm/inversepaths.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkDashPathEffect.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/effects/SkDashPathEffect.h"
 
 static SkPath generate_square(SkScalar cx, SkScalar cy, SkScalar w) {
     SkRect rect = SkRect::MakeXYWH(cx - w / 2, cy - w / 2, w, w);
diff --git a/gm/jpg_color_cube.cpp b/gm/jpg_color_cube.cpp
index 240259e..afe6eeb 100644
--- a/gm/jpg_color_cube.cpp
+++ b/gm/jpg_color_cube.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkData.h"
-#include "SkImage.h"
-#include "SkImageEncoder.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageEncoder.h"
 
 namespace skiagm {
 
diff --git a/gm/largeglyphblur.cpp b/gm/largeglyphblur.cpp
index f1fe1d1..1041cb6 100644
--- a/gm/largeglyphblur.cpp
+++ b/gm/largeglyphblur.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkMaskFilter.h"
-#include "SkTextBlob.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkTextBlob.h"
+#include "src/core/SkBlurMask.h"
 
 // This test ensures that glyphs whose point size is less than the SkStrike's maxmium, but
 // who have a large blur, are still handled correctly
diff --git a/gm/lattice.cpp b/gm/lattice.cpp
index b56e980..c3f73b6 100644
--- a/gm/lattice.cpp
+++ b/gm/lattice.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkSurface.h"
+#include "tools/ToolUtils.h"
 
 static sk_sp<SkSurface> make_surface(SkCanvas* root, int N, int padLeft, int padTop,
                                      int padRight, int padBottom) {
diff --git a/gm/lcdblendmodes.cpp b/gm/lcdblendmodes.cpp
index d875a00..ad56231 100644
--- a/gm/lcdblendmodes.cpp
+++ b/gm/lcdblendmodes.cpp
@@ -10,11 +10,11 @@
  * Tests text rendering with LCD and the various blend modes.
  */
 
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkGradientShader.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/lcdoverlap.cpp b/gm/lcdoverlap.cpp
index 19e69f1..5bb6f18 100644
--- a/gm/lcdoverlap.cpp
+++ b/gm/lcdoverlap.cpp
@@ -10,11 +10,11 @@
  * Tests overlapping LCD text
  */
 
-#include "SkCanvas.h"
-#include "SkSurface.h"
-#include "SkTextBlob.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTextBlob.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/lcdtext.cpp b/gm/lcdtext.cpp
index 0f7304e..e4ee3ba 100644
--- a/gm/lcdtext.cpp
+++ b/gm/lcdtext.cpp
@@ -9,13 +9,13 @@
 /* Tests text rendering with LCD and subpixel rendering turned on and off.
  */
 
-#include "SkCanvas.h"
-#include "SkPicture.h"
-#include "SkPictureImageFilter.h"
-#include "SkPictureRecorder.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkPictureImageFilter.h"
+#include "tools/ToolUtils.h"
 
 class LcdTextGM : public skiagm::GM {
 public:
diff --git a/gm/lighting.cpp b/gm/lighting.cpp
index 285cab7..26521e2 100644
--- a/gm/lighting.cpp
+++ b/gm/lighting.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "SkLightingImageFilter.h"
-#include "SkOffsetImageFilter.h"
-#include "SkPoint3.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkPoint3.h"
+#include "include/effects/SkLightingImageFilter.h"
+#include "include/effects/SkOffsetImageFilter.h"
+#include "tools/ToolUtils.h"
+#include "tools/timer/AnimTimer.h"
 
 #define WIDTH 330
 #define HEIGHT 660
diff --git a/gm/lightingshader.cpp b/gm/lightingshader.cpp
index a9c4383..eb012e8 100644
--- a/gm/lightingshader.cpp
+++ b/gm/lightingshader.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkLightingShader.h"
-#include "SkNormalSource.h"
-#include "SkPoint3.h"
-#include "SkShader.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkPoint3.h"
+#include "include/core/SkShader.h"
+#include "src/core/SkNormalSource.h"
+#include "src/shaders/SkLightingShader.h"
+#include "tools/ToolUtils.h"
 
 // Create a hemispherical normal map
 static SkBitmap make_hemi_normalmap(int texSize) {
diff --git a/gm/lightingshader2.cpp b/gm/lightingshader2.cpp
index 883fbbf..2ce7e28 100644
--- a/gm/lightingshader2.cpp
+++ b/gm/lightingshader2.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkLightingShader.h"
-#include "SkNormalSource.h"
-#include "SkPoint3.h"
-#include "SkShader.h"
-#include "SkTypeface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkPoint3.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkTypeface.h"
+#include "src/core/SkNormalSource.h"
+#include "src/shaders/SkLightingShader.h"
+#include "tools/ToolUtils.h"
 
 // Create a truncated pyramid normal map
 static SkBitmap make_frustum_normalmap(int texSize) {
diff --git a/gm/linepaths.cpp b/gm/linepaths.cpp
index f6424a7..d1d3304 100644
--- a/gm/linepaths.cpp
+++ b/gm/linepaths.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 static void drawPath(SkPath& path,SkCanvas* canvas,SkColor color,
                      const SkRect& clip,SkPaint::Cap cap, SkPaint::Join join,
diff --git a/gm/localmatriximagefilter.cpp b/gm/localmatriximagefilter.cpp
index 4bb433c..a754748 100644
--- a/gm/localmatriximagefilter.cpp
+++ b/gm/localmatriximagefilter.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurImageFilter.h"
-#include "SkCanvas.h"
-#include "SkColorFilterImageFilter.h"
-#include "SkModeColorFilter.h"
-#include "SkMorphologyImageFilter.h"
-#include "SkOffsetImageFilter.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkColorFilterImageFilter.h"
+#include "include/effects/SkMorphologyImageFilter.h"
+#include "include/effects/SkOffsetImageFilter.h"
+#include "src/core/SkModeColorFilter.h"
+#include "tools/ToolUtils.h"
 
 static sk_sp<SkImage> make_image(SkCanvas* rootCanvas) {
     SkImageInfo info = SkImageInfo::MakeN32Premul(100, 100);
diff --git a/gm/localmatriximageshader.cpp b/gm/localmatriximageshader.cpp
index fc5f0f2..006f150 100644
--- a/gm/localmatriximageshader.cpp
+++ b/gm/localmatriximageshader.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
 static sk_sp<SkImage> make_image(SkCanvas* rootCanvas, SkColor color) {
     SkImageInfo info = SkImageInfo::MakeN32Premul(100, 100);
diff --git a/gm/localmatrixshader.cpp b/gm/localmatrixshader.cpp
index ebb6997..deb762d 100644
--- a/gm/localmatrixshader.cpp
+++ b/gm/localmatrixshader.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkShader.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSurface.h"
+#include "tools/ToolUtils.h"
 
 static sk_sp<SkImage> make_image(SkCanvas* rootCanvas) {
     static constexpr SkScalar kSize = 50;
diff --git a/gm/lumafilter.cpp b/gm/lumafilter.cpp
index 441986a..52f07a8 100644
--- a/gm/lumafilter.cpp
+++ b/gm/lumafilter.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlendModePriv.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkLumaColorFilter.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/effects/SkLumaColorFilter.h"
+#include "src/core/SkBlendModePriv.h"
+#include "tools/ToolUtils.h"
 
 static SkScalar kSize   = 80;
 static SkScalar kInset  = 10;
diff --git a/gm/mac_aa_explorer.cpp b/gm/mac_aa_explorer.cpp
index 463aa72..e95e5c9 100644
--- a/gm/mac_aa_explorer.cpp
+++ b/gm/mac_aa_explorer.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkFont.h"
-#include "SkSurface.h"
+#include "gm/gm.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkSurface.h"
 
 #ifdef SK_BUILD_FOR_MAC
 
diff --git a/gm/makeRasterImage.cpp b/gm/makeRasterImage.cpp
index 34a8cd2f..72491a3 100644
--- a/gm/makeRasterImage.cpp
+++ b/gm/makeRasterImage.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkSurface.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkSurface.h"
+#include "tools/Resources.h"
 
 DEF_SIMPLE_GM(makeRasterImage, canvas, 128,128) {
     if (auto img = GetResourceAsImage("images/color_wheel.png")) {
diff --git a/gm/makecolorspace.cpp b/gm/makecolorspace.cpp
index 3b8a5ae..82ece0c 100644
--- a/gm/makecolorspace.cpp
+++ b/gm/makecolorspace.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "Resources.h"
-#include "SkCodec.h"
-#include "SkColorSpace.h"
-#include "SkImage.h"
-#include "SkImagePriv.h"
+#include "gm/gm.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkImage.h"
+#include "src/core/SkImagePriv.h"
+#include "tools/Resources.h"
 
 sk_sp<SkImage> make_raster_image(const char* path) {
     sk_sp<SkData> resourceData = GetResourceAsData(path);
diff --git a/gm/mandoline.cpp b/gm/mandoline.cpp
index 2a024dd..4b4a344 100644
--- a/gm/mandoline.cpp
+++ b/gm/mandoline.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkGeometry.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPoint.h"
-#include "SkRandom.h"
+#include "gm/gm.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkGeometry.h"
 
 #include <math.h>
 
diff --git a/gm/manypaths.cpp b/gm/manypaths.cpp
index 00bdfad..845349a 100644
--- a/gm/manypaths.cpp
+++ b/gm/manypaths.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkRRect.h"
-#include "SkRandom.h"
-#include "SkRect.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRect.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/matrixconvolution.cpp b/gm/matrixconvolution.cpp
index a729e3f..9b4633b 100644
--- a/gm/matrixconvolution.cpp
+++ b/gm/matrixconvolution.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkColor.h"
-#include "SkGradientShader.h"
-#include "SkMatrixConvolutionImageFilter.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkColor.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/effects/SkMatrixConvolutionImageFilter.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/matriximagefilter.cpp b/gm/matriximagefilter.cpp
index 6439de7..fb15a1f 100644
--- a/gm/matriximagefilter.cpp
+++ b/gm/matriximagefilter.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkColor.h"
-#include "SkImageFilter.h"
+#include "gm/gm.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkImageFilter.h"
 
 static void draw(SkCanvas* canvas, const SkRect& rect, const SkBitmap& bitmap,
                  const SkMatrix& matrix, SkFilterQuality filter) {
diff --git a/gm/megalooper.cpp b/gm/megalooper.cpp
index 640fcfe..0660a6a 100644
--- a/gm/megalooper.cpp
+++ b/gm/megalooper.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkLayerDrawLooper.h"
-#include "SkMaskFilter.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/effects/SkLayerDrawLooper.h"
+#include "src/core/SkBlurMask.h"
 
 // This GM tests 3 different ways of drawing four shadows around a square:
 //      just using 4 blurred rects
diff --git a/gm/mipmap.cpp b/gm/mipmap.cpp
index 7188cd30..5f1f5c8 100644
--- a/gm/mipmap.cpp
+++ b/gm/mipmap.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkImage.h"
-#include "SkRandom.h"
-#include "SkSurface.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkSurface.h"
+#include "include/utils/SkRandom.h"
 
 static sk_sp<SkImage> make_image() {
     const SkImageInfo info = SkImageInfo::MakeN32Premul(319, 52);
diff --git a/gm/mixedtextblobs.cpp b/gm/mixedtextblobs.cpp
index 788a98a..1c8ef35 100644
--- a/gm/mixedtextblobs.cpp
+++ b/gm/mixedtextblobs.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkStream.h"
-#include "SkTextBlob.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkGradientShader.h"
+#include "tools/Resources.h"
 
 namespace skiagm {
 
diff --git a/gm/mixercolorfilter.cpp b/gm/mixercolorfilter.cpp
index 63fef70..603159a 100644
--- a/gm/mixercolorfilter.cpp
+++ b/gm/mixercolorfilter.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "AnimTimer.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkGradientShader.h"
-#include "SkLumaColorFilter.h"
-#include "SkTableColorFilter.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/effects/SkLumaColorFilter.h"
+#include "include/effects/SkTableColorFilter.h"
+#include "tools/timer/AnimTimer.h"
 
 // A tint filter maps colors to a given range (gradient), based on the input luminance:
 //
@@ -111,7 +111,7 @@
 } // namespace
 DEF_GM( return new MixerCFGM(SkSize::Make(200, 250), 5); )
 
-#include "Resources.h"
+#include "tools/Resources.h"
 
 static sk_sp<SkShader> make_resource_shader(const char path[], int size) {
     auto img = GetResourceAsImage(path);
diff --git a/gm/modecolorfilters.cpp b/gm/modecolorfilters.cpp
index 3950f1a..b062882 100644
--- a/gm/modecolorfilters.cpp
+++ b/gm/modecolorfilters.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorFilter.h"
-#include "SkGradientShader.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkColorFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "tools/ToolUtils.h"
 
 #define WIDTH 512
 #define HEIGHT 1024
diff --git a/gm/morphology.cpp b/gm/morphology.cpp
index 063508c..b0759bd 100644
--- a/gm/morphology.cpp
+++ b/gm/morphology.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkMorphologyImageFilter.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/effects/SkMorphologyImageFilter.h"
+#include "tools/ToolUtils.h"
 
 #define WIDTH 700
 #define HEIGHT 560
diff --git a/gm/multipicturedraw.cpp b/gm/multipicturedraw.cpp
index cba275f..40e204b 100644
--- a/gm/multipicturedraw.cpp
+++ b/gm/multipicturedraw.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "SkColorFilter.h"
-#include "SkMultiPictureDraw.h"
-#include "SkPath.h"
-#include "SkPictureRecorder.h"
-#include "SkSurface.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkMultiPictureDraw.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkSurface.h"
 
 constexpr SkScalar kRoot3Over2 = 0.86602545f;  // sin(60)
 constexpr SkScalar kRoot3      = 1.73205081f;
diff --git a/gm/nested.cpp b/gm/nested.cpp
index 1b234f2..2da4d3c 100644
--- a/gm/nested.cpp
+++ b/gm/nested.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkRRect.h"
+#include "gm/gm.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "include/utils/SkRandom.h"
 
 namespace skiagm {
 
diff --git a/gm/ninepatchstretch.cpp b/gm/ninepatchstretch.cpp
index c2b51f8..b366852 100644
--- a/gm/ninepatchstretch.cpp
+++ b/gm/ninepatchstretch.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkSurface.h"
+#include "tools/ToolUtils.h"
 
 static sk_sp<SkSurface> make_surface(SkCanvas* root, int N) {
     SkImageInfo info = SkImageInfo::MakeN32Premul(N, N);
diff --git a/gm/nonclosedpaths.cpp b/gm/nonclosedpaths.cpp
index dc806f3..7698a20 100644
--- a/gm/nonclosedpaths.cpp
+++ b/gm/nonclosedpaths.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
 
 namespace skiagm {
 
diff --git a/gm/offsetimagefilter.cpp b/gm/offsetimagefilter.cpp
index 4706157..f264eb7 100644
--- a/gm/offsetimagefilter.cpp
+++ b/gm/offsetimagefilter.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkImage.h"
-#include "SkImageSource.h"
-#include "SkOffsetImageFilter.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkImageSource.h"
+#include "include/effects/SkOffsetImageFilter.h"
+#include "tools/ToolUtils.h"
 
 #define WIDTH 600
 #define HEIGHT 100
diff --git a/gm/orientation.cpp b/gm/orientation.cpp
index aed07cc..9744c0e 100644
--- a/gm/orientation.cpp
+++ b/gm/orientation.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkImage.h"
-#include "Resources.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkImage.h"
+#include "tools/Resources.h"
 
 // This gm draws 8 images that are mostly the same when respecting the
 // EXIF orientation tag. Each one has four quadrants (red, blue, green,
diff --git a/gm/ovals.cpp b/gm/ovals.cpp
index d8f93ef..74f0d4e 100644
--- a/gm/ovals.cpp
+++ b/gm/ovals.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurDrawLooper.h"
-#include "SkBlurMaskFilter.h"
-#include "SkColorFilter.h"
-#include "SkGradientShader.h"
-#include "SkMatrix.h"
-#include "SkRandom.h"
-#include "SkRect.h"
-#include "SkTArray.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkRect.h"
+#include "include/effects/SkBlurDrawLooper.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/private/SkTArray.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/overdrawcanvas.cpp b/gm/overdrawcanvas.cpp
index 0b8fef0..1e75e8d 100644
--- a/gm/overdrawcanvas.cpp
+++ b/gm/overdrawcanvas.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkOverdrawCanvas.h"
-#include "SkOverdrawColorFilter.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkOverdrawCanvas.h"
+#include "include/effects/SkOverdrawColorFilter.h"
+#include "tools/ToolUtils.h"
 
 #define WIDTH 500
 #define HEIGHT 500
diff --git a/gm/overdrawcolorfilter.cpp b/gm/overdrawcolorfilter.cpp
index 73036cf..ba92bce 100644
--- a/gm/overdrawcolorfilter.cpp
+++ b/gm/overdrawcolorfilter.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkOverdrawColorFilter.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/effects/SkOverdrawColorFilter.h"
 
 static inline void set_bitmap(SkBitmap* bitmap, uint8_t alpha) {
     for (int y = 0; y < bitmap->height(); y++) {
diff --git a/gm/p3.cpp b/gm/p3.cpp
index 297a870..c8eae66 100644
--- a/gm/p3.cpp
+++ b/gm/p3.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "SkColorSpace.h"
-#include "SkColorSpaceXformSteps.h"
-#include "SkDashPathEffect.h"
-#include "SkFont.h"
-#include "SkGradientShader.h"
-#include "SkString.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "include/effects/SkGradientShader.h"
+#include "src/core/SkColorSpaceXformSteps.h"
 
 static bool nearly_equal(SkColor4f x, SkColor4f y) {
     const float K = 0.01f;
diff --git a/gm/patch.cpp b/gm/patch.cpp
index 6f05142..1631c8f 100644
--- a/gm/patch.cpp
+++ b/gm/patch.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkGradientShader.h"
-#include "SkImage.h"
-#include "SkPatchUtils.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPath.h"
+#include "include/effects/SkGradientShader.h"
+#include "src/utils/SkPatchUtils.h"
 
 static sk_sp<SkShader> make_shader() {
     const SkColor colors[] = {
@@ -147,7 +147,7 @@
     };
     dopatch(canvas, colors);
 }
-#include "Resources.h"
+#include "tools/Resources.h"
 DEF_SIMPLE_GM(patch_image, canvas, 1500, 1100) {
     const SkColor colors[SkPatchUtils::kNumCorners] = {
         SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, SK_ColorCYAN
diff --git a/gm/path_stroke_with_zero_length.cpp b/gm/path_stroke_with_zero_length.cpp
index 3cb789f..48f54d2 100644
--- a/gm/path_stroke_with_zero_length.cpp
+++ b/gm/path_stroke_with_zero_length.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkAutoPixmapStorage.h"
-#include "SkColorPriv.h"
-#include "SkImage.h"
-#include "SkParsePath.h"
-#include "SkPath.h"
-#include "SkSurface.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkSurface.h"
+#include "include/utils/SkParsePath.h"
+#include "src/core/SkAutoPixmapStorage.h"
 
 // GM to test combinations of stroking zero length paths with different caps and other settings
 // Variables:
diff --git a/gm/pathcontourstart.cpp b/gm/pathcontourstart.cpp
index 0e85e38..e3c568a 100644
--- a/gm/pathcontourstart.cpp
+++ b/gm/pathcontourstart.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "SkDashPathEffect.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRRect.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "include/effects/SkDashPathEffect.h"
 
 namespace skiagm {
 
diff --git a/gm/patheffects.cpp b/gm/patheffects.cpp
index 79e90d7..8669c3e 100644
--- a/gm/patheffects.cpp
+++ b/gm/patheffects.cpp
@@ -4,14 +4,14 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "Sk1DPathEffect.h"
-#include "Sk2DPathEffect.h"
-#include "SkCornerPathEffect.h"
-#include "SkDashPathEffect.h"
-#include "SkDiscretePathEffect.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/effects/Sk1DPathEffect.h"
+#include "include/effects/Sk2DPathEffect.h"
+#include "include/effects/SkCornerPathEffect.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "include/effects/SkDiscretePathEffect.h"
 
 namespace skiagm {
 
@@ -165,7 +165,7 @@
 }
 
 //////////////////////////////////////////////////////////////////////////////
-#include "SkOpPathEffect.h"
+#include "include/effects/SkOpPathEffect.h"
 
 class ComboPathEfectsGM : public skiagm::GM {
 public:
diff --git a/gm/pathfill.cpp b/gm/pathfill.cpp
index 7626bd6..17caae5 100644
--- a/gm/pathfill.cpp
+++ b/gm/pathfill.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkPath.h"
 
 typedef SkScalar (*MakePathProc)(SkPath*);
 
diff --git a/gm/pathinterior.cpp b/gm/pathinterior.cpp
index d53cffb..06feb53 100644
--- a/gm/pathinterior.cpp
+++ b/gm/pathinterior.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurMaskFilter.h"
-#include "SkCanvas.h"
-#include "SkGraphics.h"
-#include "SkLayerDrawLooper.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "include/effects/SkLayerDrawLooper.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 static SkRect inset(const SkRect& r) {
     SkRect rect = r;
diff --git a/gm/pathmaskcache.cpp b/gm/pathmaskcache.cpp
index 0952033..a6d60b4 100644
--- a/gm/pathmaskcache.cpp
+++ b/gm/pathmaskcache.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "GrContext.h"
-#include "GrContextOptions.h"
-#include "SkPath.h"
+#include "include/core/SkPath.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrContextOptions.h"
 
 /** This tests the GPU backend's caching of path coverage masks */
 class PathMaskCache : public skiagm::GM {
diff --git a/gm/pathmeasure.cpp b/gm/pathmeasure.cpp
index aa7de87..7402a73 100644
--- a/gm/pathmeasure.cpp
+++ b/gm/pathmeasure.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkDashPathEffect.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/effects/SkDashPathEffect.h"
 
 // Repro case for skia:7674.  Requires lots of RAM to run, and currently triggers UB:
 // ../include/private/SkTDArray.h:382:26:
diff --git a/gm/pathopsinverse.cpp b/gm/pathopsinverse.cpp
index 3e2d08c..a09237c 100644
--- a/gm/pathopsinverse.cpp
+++ b/gm/pathopsinverse.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkPath.h"
-#include "SkPathOps.h"
-#include "SkRect.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRect.h"
+#include "include/pathops/SkPathOps.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/pathopsskpclip.cpp b/gm/pathopsskpclip.cpp
index e6ebc9b..74846df 100644
--- a/gm/pathopsskpclip.cpp
+++ b/gm/pathopsskpclip.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkClipStack.h"
-#include "SkPath.h"
-#include "SkPathOps.h"
-#include "SkPicture.h"
-#include "SkPictureRecorder.h"
-#include "SkRect.h"
+#include "gm/gm.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkRect.h"
+#include "include/pathops/SkPathOps.h"
+#include "src/core/SkClipStack.h"
 
 namespace skiagm {
 
diff --git a/gm/pathreverse.cpp b/gm/pathreverse.cpp
index f0ce051..de8bcc0 100644
--- a/gm/pathreverse.cpp
+++ b/gm/pathreverse.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkTypeface.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkTypeface.h"
 
 /* The hiragino_maru_goth_pro_e path was generated with Mac-specific code:
  *
diff --git a/gm/pdf_never_embed.cpp b/gm/pdf_never_embed.cpp
index 9c5188f..e54f9df 100644
--- a/gm/pdf_never_embed.cpp
+++ b/gm/pdf_never_embed.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkTextBlob.h"
-#include "SkTo.h"
-#include "SkTypeface.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkTo.h"
+#include "tools/Resources.h"
 
 static void excercise_draw_pos_text(SkCanvas* canvas,
                                     const char* text,
diff --git a/gm/perlinnoise.cpp b/gm/perlinnoise.cpp
index d8a3abc..4261faa 100644
--- a/gm/perlinnoise.cpp
+++ b/gm/perlinnoise.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkPerlinNoiseShader.h"
-#include "SkShader.h"
+#include "gm/gm.h"
+#include "include/core/SkShader.h"
+#include "include/effects/SkPerlinNoiseShader.h"
 
 namespace {
 
diff --git a/gm/perspimages.cpp b/gm/perspimages.cpp
index ebce9e91..7bada24 100644
--- a/gm/perspimages.cpp
+++ b/gm/perspimages.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkGradientShader.h"
-#include "SkImage.h"
-#include "SkPath.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkGradientShader.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
 static sk_sp<SkImage> make_image1() { return GetResourceAsImage("images/mandrill_128.png"); }
 
diff --git a/gm/perspshaders.cpp b/gm/perspshaders.cpp
index aaecad8..8a5786d 100644
--- a/gm/perspshaders.cpp
+++ b/gm/perspshaders.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkGradientShader.h"
-#include "SkImage.h"
-#include "SkPath.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkGradientShader.h"
+#include "tools/ToolUtils.h"
 
 static sk_sp<SkImage> make_image(SkCanvas* origCanvas, int w, int h) {
     SkImageInfo info = SkImageInfo::MakeN32Premul(w, h);
diff --git a/gm/picture.cpp b/gm/picture.cpp
index 2ffdcc5..0fdec1c 100644
--- a/gm/picture.cpp
+++ b/gm/picture.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPictureRecorder.h"
+#include "gm/gm.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPictureRecorder.h"
 
 static sk_sp<SkPicture> make_picture() {
     SkPictureRecorder rec;
diff --git a/gm/pictureimagefilter.cpp b/gm/pictureimagefilter.cpp
index 7e5210e..6324714 100644
--- a/gm/pictureimagefilter.cpp
+++ b/gm/pictureimagefilter.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "SkPictureImageFilter.h"
-#include "SkPictureRecorder.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/effects/SkPictureImageFilter.h"
 
-#include "SkImage.h"
-#include "SkImageSource.h"
+#include "include/core/SkImage.h"
+#include "include/effects/SkImageSource.h"
 
 // This GM exercises the SkPictureImageFilter ImageFilter class.
 
diff --git a/gm/pictureimagegenerator.cpp b/gm/pictureimagegenerator.cpp
index 70076e0..2cc2d6d 100644
--- a/gm/pictureimagegenerator.cpp
+++ b/gm/pictureimagegenerator.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkFontPriv.h"
-#include "SkGradientShader.h"
-#include "SkImageGenerator.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPathOps.h"
-#include "SkPicture.h"
-#include "SkPictureRecorder.h"
-#include "SkTextUtils.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImageGenerator.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/pathops/SkPathOps.h"
+#include "include/utils/SkTextUtils.h"
+#include "src/core/SkFontPriv.h"
+#include "tools/ToolUtils.h"
 
 static void draw_vector_logo(SkCanvas* canvas, const SkRect& viewBox) {
     constexpr char kSkiaStr[] = "SKIA";
diff --git a/gm/pictureshader.cpp b/gm/pictureshader.cpp
index bfadac1..2f72979 100644
--- a/gm/pictureshader.cpp
+++ b/gm/pictureshader.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "SkBitmap.h"
-#include "SkPaint.h"
-#include "SkPicture.h"
-#include "SkPictureRecorder.h"
-#include "SkShader.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkShader.h"
 
 static struct {
     SkTileMode tmx;
diff --git a/gm/pictureshadercache.cpp b/gm/pictureshadercache.cpp
index f847732..3273a4a 100644
--- a/gm/pictureshadercache.cpp
+++ b/gm/pictureshadercache.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "SkPaint.h"
-#include "SkPicture.h"
-#include "SkPictureRecorder.h"
-#include "SkShader.h"
-#include "SkSurface.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSurface.h"
 
 class PictureShaderCacheGM : public skiagm::GM {
 public:
diff --git a/gm/pictureshadertile.cpp b/gm/pictureshadertile.cpp
index 753a67b..94abf8d 100644
--- a/gm/pictureshadertile.cpp
+++ b/gm/pictureshadertile.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "SkPaint.h"
-#include "SkPicture.h"
-#include "SkPictureRecorder.h"
-#include "SkShader.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkShader.h"
 
 constexpr SkScalar kPictureSize = SK_Scalar1;
 constexpr SkScalar kFillSize = 100;
diff --git a/gm/pixelsnap.cpp b/gm/pixelsnap.cpp
index 671045f..01a3272 100644
--- a/gm/pixelsnap.cpp
+++ b/gm/pixelsnap.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "SkShader.h"
+#include "include/core/SkShader.h"
 
 // This class of GMs test how edges/verts snap near rounding boundaries in device space without
 // anti-aliaing.
diff --git a/gm/plus.cpp b/gm/plus.cpp
index 51ac2cb..94c5d7f 100644
--- a/gm/plus.cpp
+++ b/gm/plus.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkPath.h"
 
 DEF_SIMPLE_GM(PlusMergesAA, canvas, 256, 256) {
     SkPaint p;
diff --git a/gm/points.cpp b/gm/points.cpp
index 8315a2a..c9d52c8 100644
--- a/gm/points.cpp
+++ b/gm/points.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "gm.h"
-#include "SkRandom.h"
+#include "gm/gm.h"
+#include "include/utils/SkRandom.h"
 
 namespace skiagm {
 
diff --git a/gm/poly2poly.cpp b/gm/poly2poly.cpp
index 4f1dae9..f5f5db3 100644
--- a/gm/poly2poly.cpp
+++ b/gm/poly2poly.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkFontMetrics.h"
-#include "SkPath.h"
-#include "SkTextUtils.h"
-#include "SkTypeface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkTypeface.h"
+#include "include/utils/SkTextUtils.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
 class Poly2PolyGM : public skiagm::GM {
 public:
diff --git a/gm/polygonoffset.cpp b/gm/polygonoffset.cpp
index 2775215..909dddc 100644
--- a/gm/polygonoffset.cpp
+++ b/gm/polygonoffset.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkPathPriv.h"
-#include "SkPolyUtils.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "src/core/SkPathPriv.h"
+#include "src/utils/SkPolyUtils.h"
+#include "tools/ToolUtils.h"
 
 static void create_ngon(int n, SkPoint* pts, SkScalar w, SkScalar h, SkPath::Direction dir) {
     float angleStep = 360.0f / n, angle = 0.0f;
diff --git a/gm/polygons.cpp b/gm/polygons.cpp
index 00fe336..876b17d 100644
--- a/gm/polygons.cpp
+++ b/gm/polygons.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkScalar.h"
-#include "SkTArray.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkScalar.h"
+#include "include/private/SkTArray.h"
+#include "include/utils/SkRandom.h"
 
 namespace skiagm {
 
diff --git a/gm/quadpaths.cpp b/gm/quadpaths.cpp
index 3f3d861..46763a9 100644
--- a/gm/quadpaths.cpp
+++ b/gm/quadpaths.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/radial_gradient_precision.cpp b/gm/radial_gradient_precision.cpp
index bb4e155..e51370d 100644
--- a/gm/radial_gradient_precision.cpp
+++ b/gm/radial_gradient_precision.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkGradientShader.h"
+#include "gm/gm.h"
+#include "include/effects/SkGradientShader.h"
 
 // All we're looking for here is that we see a smooth gradient.
 DEF_SIMPLE_GM(radial_gradient_precision, canvas, 200, 200) {
diff --git a/gm/readpixels.cpp b/gm/readpixels.cpp
index ac53784..44bda99 100644
--- a/gm/readpixels.cpp
+++ b/gm/readpixels.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "Resources.h"
-#include "SkCodec.h"
-#include "SkColorSpace.h"
-#include "SkColorSpacePriv.h"
-#include "SkHalf.h"
-#include "SkImage.h"
-#include "SkImageInfoPriv.h"
-#include "SkPictureRecorder.h"
+#include "gm/gm.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/private/SkHalf.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "tools/Resources.h"
 
 static const int kWidth = 64;
 static const int kHeight = 64;
diff --git a/gm/recordopts.cpp b/gm/recordopts.cpp
index c860620..db553f9 100644
--- a/gm/recordopts.cpp
+++ b/gm/recordopts.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "GrContext.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkPictureRecorder.h"
-#include "SkTableColorFilter.h"
-#include "SkColorFilterImageFilter.h"
-#include "SkPictureImageFilter.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/effects/SkColorFilterImageFilter.h"
+#include "include/effects/SkPictureImageFilter.h"
+#include "include/effects/SkTableColorFilter.h"
+#include "include/gpu/GrContext.h"
 
 constexpr int kTestRectSize = 50;
 constexpr int kDetectorGreenValue = 50;
diff --git a/gm/rectangletexture.cpp b/gm/rectangletexture.cpp
index fa92d5f..c32b3f9 100644
--- a/gm/rectangletexture.cpp
+++ b/gm/rectangletexture.cpp
@@ -7,16 +7,16 @@
 
 // This test only works with the GPU backend.
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "GrBackendSurface.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "gl/GrGLContext.h"
-#include "SkBitmap.h"
-#include "SkGradientShader.h"
-#include "SkImage.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkImage.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/gl/GrGLContext.h"
 
 namespace skiagm {
 class RectangleTexture : public GpuGM {
diff --git a/gm/rects.cpp b/gm/rects.cpp
index b875d83..2bf3e7b 100644
--- a/gm/rects.cpp
+++ b/gm/rects.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkBlurDrawLooper.h"
-#include "SkBlurMask.h"
-#include "SkBlurMaskFilter.h"
-#include "SkColorFilter.h"
-#include "SkGradientShader.h"
-#include "SkMatrix.h"
-#include "SkTArray.h"
+#include "gm/gm.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkMatrix.h"
+#include "include/effects/SkBlurDrawLooper.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/private/SkTArray.h"
+#include "src/core/SkBlurMask.h"
 
 namespace skiagm {
 
diff --git a/gm/repeated_bitmap.cpp b/gm/repeated_bitmap.cpp
index 154810d..cc95266 100644
--- a/gm/repeated_bitmap.cpp
+++ b/gm/repeated_bitmap.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkImage.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkImage.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
 static skiagm::DrawResult draw_rotated_image(SkCanvas* canvas, const SkImage* image,
                                              SkString* errorMsg) {
diff --git a/gm/resizeimagefilter.cpp b/gm/resizeimagefilter.cpp
index 625e098..7d64f4c 100644
--- a/gm/resizeimagefilter.cpp
+++ b/gm/resizeimagefilter.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkColor.h"
-#include "SkImageSource.h"
-#include "SkRefCnt.h"
-#include "SkSurface.h"
+#include "gm/gm.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkImageSource.h"
 
 namespace skiagm {
 
diff --git a/gm/roundrects.cpp b/gm/roundrects.cpp
index dccfd36..61cf2c9 100644
--- a/gm/roundrects.cpp
+++ b/gm/roundrects.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurDrawLooper.h"
-#include "SkBlurMaskFilter.h"
-#include "SkColorFilter.h"
-#include "SkGradientShader.h"
-#include "SkMatrix.h"
-#include "SkRRect.h"
-#include "SkRandom.h"
-#include "SkRect.h"
-#include "SkTArray.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRect.h"
+#include "include/effects/SkBlurDrawLooper.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/private/SkTArray.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/rrect.cpp b/gm/rrect.cpp
index c7d9cca..51dd501 100644
--- a/gm/rrect.cpp
+++ b/gm/rrect.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkRRect.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "tools/ToolUtils.h"
 
 typedef void (*InsetProc)(const SkRRect&, SkScalar dx, SkScalar dy, SkRRect*);
 
diff --git a/gm/rrectclipdrawpaint.cpp b/gm/rrectclipdrawpaint.cpp
index 0636a2b..86b2c5f 100644
--- a/gm/rrectclipdrawpaint.cpp
+++ b/gm/rrectclipdrawpaint.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkPath.h"
-#include "SkGradientShader.h"
+#include "gm/gm.h"
+#include "include/core/SkPath.h"
+#include "include/effects/SkGradientShader.h"
 
 // Exercises code in GrRenderTargetContext that attempts to replace a rrect clip/draw paint with
 // draw rrect.
diff --git a/gm/rrects.cpp b/gm/rrects.cpp
index 52df12a..a0b56ce 100644
--- a/gm/rrects.cpp
+++ b/gm/rrects.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "effects/GrRRectEffect.h"
-#include "ops/GrDrawOp.h"
-#include "ops/GrFillRectOp.h"
-#include "SkRRect.h"
+#include "gm/gm.h"
+#include "include/core/SkRRect.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/effects/GrRRectEffect.h"
+#include "src/gpu/ops/GrDrawOp.h"
+#include "src/gpu/ops/GrFillRectOp.h"
 
 namespace skiagm {
 
diff --git a/gm/runtimecolorfilter.cpp b/gm/runtimecolorfilter.cpp
index 70b7ee9..a15dcc9 100644
--- a/gm/runtimecolorfilter.cpp
+++ b/gm/runtimecolorfilter.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkColorFilterPriv.h"
-#include "SkImage.h"
-#include "SkReadBuffer.h"
-#include "ToolUtils.h"
-#include "effects/GrSkSLFP.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "src/core/SkColorFilterPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/gpu/effects/GrSkSLFP.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
 const char* SKSL_TEST_SRC = R"(
     layout(ctype=float) in uniform half b;
diff --git a/gm/samplelocations.cpp b/gm/samplelocations.cpp
index a9a787a..017a1c3 100644
--- a/gm/samplelocations.cpp
+++ b/gm/samplelocations.cpp
@@ -5,24 +5,24 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
 #if SK_SUPPORT_GPU
 
-#include "GrClip.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrMemoryPool.h"
-#include "GrOpFlushState.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "glsl/GrGLSLVarying.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 namespace skiagm {
 
diff --git a/gm/samplerstress.cpp b/gm/samplerstress.cpp
index 3653bfd..ed829df 100644
--- a/gm/samplerstress.cpp
+++ b/gm/samplerstress.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkMaskFilter.h"
-#include "SkPath.h"
-#include "SkShader.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkShader.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/savelayer.cpp b/gm/savelayer.cpp
index 2707422..43bf0c9 100644
--- a/gm/savelayer.cpp
+++ b/gm/savelayer.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvasPriv.h"
-#include "SkShaderMaskFilter.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/effects/SkShaderMaskFilter.h"
+#include "src/core/SkCanvasPriv.h"
+#include "tools/ToolUtils.h"
 
 // This GM tests out the deprecated Android-specific unclipped saveLayer "feature".
 // In particular, it attempts to compare the performance of unclipped saveLayers with alternatives.
@@ -103,7 +103,7 @@
     }
 };
 
-#include "Resources.h"
+#include "tools/Resources.h"
 
 // Test kInitWithPrevious_SaveLayerFlag by drawing an image, save a layer with the flag, which
 // should seed the layer with the image (from below). Then we punch a hole in the layer and
@@ -123,11 +123,11 @@
     canvas->restore();
 };
 
-#include "SkBlurImageFilter.h"
-#include "SkGradientShader.h"
-#include "SkPicture.h"
-#include "SkPictureRecorder.h"
-#include "SkSurface.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkGradientShader.h"
 
 static void draw_mask(SkCanvas* canvas, int size) {
     const SkScalar cx = size * SK_ScalarHalf,
@@ -334,9 +334,9 @@
     canvas->restore();
 }
 
-#include "SkFont.h"
-#include "SkGradientShader.h"
-#include "SkTextBlob.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkTextBlob.h"
+#include "include/effects/SkGradientShader.h"
 
 static void draw_cell(SkCanvas* canvas, sk_sp<SkTextBlob> blob, SkColor c, SkScalar w, SkScalar h,
                       bool useDrawBehind) {
diff --git a/gm/scaledemoji.cpp b/gm/scaledemoji.cpp
index c082dcd..365d915 100644
--- a/gm/scaledemoji.cpp
+++ b/gm/scaledemoji.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkFontMetrics.h"
-#include "SkStream.h"
-#include "SkTextBlob.h"
-#include "SkTo.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkTo.h"
+#include "tools/Resources.h"
 
 static sk_sp<SkTextBlob> make_hpos_test_blob_utf8(const char* text, const SkFont& font) {
     constexpr SkTextEncoding enc = SkTextEncoding::kUTF8;
diff --git a/gm/scaledemoji_rendering.cpp b/gm/scaledemoji_rendering.cpp
index 3440bc6..f64e7cc 100644
--- a/gm/scaledemoji_rendering.cpp
+++ b/gm/scaledemoji_rendering.cpp
@@ -5,15 +5,15 @@
 * found in the LICENSE file.
 */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkFontMetrics.h"
-#include "SkStream.h"
-#include "SkTo.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkTo.h"
+#include "tools/Resources.h"
 
 namespace skiagm {
 class ScaledEmojiRenderingGM : public GM {
diff --git a/gm/scaledstrokes.cpp b/gm/scaledstrokes.cpp
index 1096fcb..e83ec4f 100644
--- a/gm/scaledstrokes.cpp
+++ b/gm/scaledstrokes.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkRRect.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
 
 class ScaledStrokesGM : public skiagm::GM {
 public:
diff --git a/gm/shadermaskfilter.cpp b/gm/shadermaskfilter.cpp
index 362a46a..5ea72b4 100644
--- a/gm/shadermaskfilter.cpp
+++ b/gm/shadermaskfilter.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlendModePriv.h"
-#include "SkCanvas.h"
-#include "SkImage.h"
-#include "SkMaskFilter.h"
-#include "SkPictureRecorder.h"
-#include "SkShaderMaskFilter.h"
-#include "SkTextUtils.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/effects/SkShaderMaskFilter.h"
+#include "include/utils/SkTextUtils.h"
+#include "src/core/SkBlendModePriv.h"
+#include "tools/ToolUtils.h"
 
 static void draw_masked_image(SkCanvas* canvas, const SkImage* image, SkScalar x, SkScalar y,
                               const SkImage* mask, sk_sp<SkMaskFilter> outer, SkBlendMode mode) {
@@ -33,7 +33,7 @@
     canvas->drawImage(image, x, y, &paint);
 }
 
-#include "SkGradientShader.h"
+#include "include/effects/SkGradientShader.h"
 static sk_sp<SkShader> make_shader(const SkRect& r) {
     const SkPoint pts[] = {
         { r.fLeft, r.fTop }, { r.fRight, r.fBottom },
@@ -57,7 +57,7 @@
     canvas->drawOval(r, paint);
 }
 
-#include "Resources.h"
+#include "tools/Resources.h"
 DEF_SIMPLE_GM_CAN_FAIL(shadermaskfilter_image, canvas, errorMsg, 560, 370) {
     canvas->scale(1.25f, 1.25f);
 
@@ -86,8 +86,8 @@
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-#include "SkPictureRecorder.h"
-#include "SkPath.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPictureRecorder.h"
 
 static sk_sp<SkMaskFilter> make_path_mf(const SkPath& path, unsigned alpha) {
     SkPaint paint;
@@ -172,9 +172,9 @@
     canvas->restore();
 }
 
-#include "SkSurface.h"
-#include "SkBlurImageFilter.h"
-#include "SkMaskFilter.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkBlurImageFilter.h"
 static sk_sp<SkImage> make_circle_image(SkCanvas* canvas, SkScalar radius, int margin) {
     const int n = SkScalarCeilToInt(radius) * 2 + margin * 2;
     auto      surf = ToolUtils::makeSurface(canvas, SkImageInfo::MakeN32Premul(n, n));
diff --git a/gm/shadertext3.cpp b/gm/shadertext3.cpp
index 1e54adc..37b6485 100644
--- a/gm/shadertext3.cpp
+++ b/gm/shadertext3.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/effects/SkGradientShader.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/shadows.cpp b/gm/shadows.cpp
index 4cd1076..f1ef671 100644
--- a/gm/shadows.cpp
+++ b/gm/shadows.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkBlurDrawLooper.h"
-#include "SkBlurMask.h"
-#include "SkColorFilter.h"
-#include "SkMaskFilter.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPath.h"
+#include "include/effects/SkBlurDrawLooper.h"
+#include "src/core/SkBlurMask.h"
 
 namespace skiagm {
 
diff --git a/gm/shadowutils.cpp b/gm/shadowutils.cpp
index b623acb..0c7bbc1 100644
--- a/gm/shadowutils.cpp
+++ b/gm/shadowutils.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkResourceCache.h"
-#include "SkShadowUtils.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/utils/SkShadowUtils.h"
+#include "src/core/SkResourceCache.h"
 
 void draw_shadow(SkCanvas* canvas, const SkPath& path, SkScalar height, SkColor color,
                  SkPoint3 lightPos, SkScalar lightR, bool isAmbient, uint32_t flags) {
diff --git a/gm/shallowgradient.cpp b/gm/shallowgradient.cpp
index 2cca3c1..bc565c8 100644
--- a/gm/shallowgradient.cpp
+++ b/gm/shallowgradient.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkGradientShader.h"
+#include "gm/gm.h"
+#include "include/effects/SkGradientShader.h"
 
 typedef sk_sp<SkShader> (*MakeShaderProc)(const SkColor[], int count, const SkSize&);
 
diff --git a/gm/shapes.cpp b/gm/shapes.cpp
index 63ddf2a..55afb62 100644
--- a/gm/shapes.cpp
+++ b/gm/shapes.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkRandom.h"
-#include "SkRRect.h"
+#include "gm/gm.h"
+#include "include/core/SkRRect.h"
+#include "include/utils/SkRandom.h"
 
 namespace skiagm {
 
diff --git a/gm/sharedcorners.cpp b/gm/sharedcorners.cpp
index 8d0e434..64b74d7 100644
--- a/gm/sharedcorners.cpp
+++ b/gm/sharedcorners.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPoint.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint.h"
+#include "tools/ToolUtils.h"
 
 #include <array>
 #include <vector>
diff --git a/gm/showmiplevels.cpp b/gm/showmiplevels.cpp
index ce3c119..7d072b2 100644
--- a/gm/showmiplevels.cpp
+++ b/gm/showmiplevels.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "Resources.h"
-#include "SkColorPriv.h"
-#include "SkGradientShader.h"
-#include "SkTypeface.h"
-#include "SkStream.h"
-#include "SkPaint.h"
-#include "SkMipMap.h"
-#include "Resources.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkGradientShader.h"
+#include "src/core/SkMipMap.h"
+#include "tools/Resources.h"
+#include "tools/Resources.h"
 
 #define SHOW_MIP_COLOR  0xFF000000
 
@@ -51,7 +51,7 @@
     return bm;
 }
 
-#include "SkNx.h"
+#include "include/private/SkNx.h"
 static SkBitmap make_bitmap3(int w, int h) {
     SkBitmap bm;
     bm.allocN32Pixels(w, h);
diff --git a/gm/simple_magnification.cpp b/gm/simple_magnification.cpp
index 3311f85..b942632 100644
--- a/gm/simple_magnification.cpp
+++ b/gm/simple_magnification.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkColorPriv.h"
-#include "SkImageSource.h"
-#include "SkMagnifierImageFilter.h"
-#include "SkSurface.h"
+#include "gm/gm.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkImageSource.h"
+#include "include/effects/SkMagnifierImageFilter.h"
 
 static sk_sp<SkImage> make_image(GrContext* context, int size, GrSurfaceOrigin origin) {
     if (context) {
diff --git a/gm/simpleaaclip.cpp b/gm/simpleaaclip.cpp
index b534b84..b9fc5bf 100644
--- a/gm/simpleaaclip.cpp
+++ b/gm/simpleaaclip.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkAAClip.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "src/core/SkAAClip.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/simplerect.cpp b/gm/simplerect.cpp
index 8076bc9..6e7550d 100644
--- a/gm/simplerect.cpp
+++ b/gm/simplerect.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurMask.h"
-#include "SkBlurMaskFilter.h"
-#include "SkPath.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkPath.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "src/core/SkBlurMask.h"
+#include "tools/ToolUtils.h"
 
 class SimpleRectGM : public skiagm::GM {
 public:
diff --git a/gm/skbug1719.cpp b/gm/skbug1719.cpp
index 0d0b3f2..1c09e57 100644
--- a/gm/skbug1719.cpp
+++ b/gm/skbug1719.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorFilter.h"
-#include "SkMaskFilter.h"
-#include "SkPath.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPath.h"
+#include "tools/ToolUtils.h"
 
 /**
  * This test exercises bug 1719. An anti-aliased blurred path is rendered through a soft clip. On
diff --git a/gm/skbug_257.cpp b/gm/skbug_257.cpp
index 296babf..c70ccc1 100644
--- a/gm/skbug_257.cpp
+++ b/gm/skbug_257.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkImage.h"
-#include "SkRRect.h"
-#include "SkTextBlob.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkTextBlob.h"
+#include "tools/ToolUtils.h"
 
 static void rotated_checkerboard_shader(SkPaint* paint,
                                         SkColor c1,
diff --git a/gm/skbug_4868.cpp b/gm/skbug_4868.cpp
index 4f33715..89eb4c2 100644
--- a/gm/skbug_4868.cpp
+++ b/gm/skbug_4868.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
 // clipRect and drawLine should line up exactly when they use the same point.
 // When SkPDF rounds large floats, this doesn't always happen.
diff --git a/gm/skbug_5321.cpp b/gm/skbug_5321.cpp
index 00021c8..73fb268 100644
--- a/gm/skbug_5321.cpp
+++ b/gm/skbug_5321.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkTextBlob.h"
+#include "gm/gm.h"
+#include "include/core/SkTextBlob.h"
 
 // https://bugs.skia.org/5321
 // two strings should draw the same.  PDF did not.
diff --git a/gm/skbug_8664.cpp b/gm/skbug_8664.cpp
index 4feba4b..4b24b80 100644
--- a/gm/skbug_8664.cpp
+++ b/gm/skbug_8664.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "Resources.h"
+#include "tools/Resources.h"
 
 DEF_SIMPLE_GM(skbug_8664, canvas, 830, 550) {
     const struct {
diff --git a/gm/skbug_8955.cpp b/gm/skbug_8955.cpp
index 82c94c2..a3c33f7 100644
--- a/gm/skbug_8955.cpp
+++ b/gm/skbug_8955.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "SkFont.h"
-#include "SkPaint.h"
-#include "SkTextBlob.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkTextBlob.h"
 
 DEF_SIMPLE_GM(skbug_8955, canvas, 100, 100) {
     SkPaint p;
diff --git a/gm/skinning.cpp b/gm/skinning.cpp
index a3eb71b..7b98653 100644
--- a/gm/skinning.cpp
+++ b/gm/skinning.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkVertices.h"
-#include "SkPoint.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkVertices.h"
 
 #include <iostream>
 #include <vector>
diff --git a/gm/smallarc.cpp b/gm/smallarc.cpp
index 25755ac..c81120d 100644
--- a/gm/smallarc.cpp
+++ b/gm/smallarc.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkPath.h"
 
 // this draws a small arc scaled up
 // see https://code.google.com/p/chromium/issues/detail?id=102411
diff --git a/gm/smallpaths.cpp b/gm/smallpaths.cpp
index 69d7c08..430c1b2 100644
--- a/gm/smallpaths.cpp
+++ b/gm/smallpaths.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkPath.h"
 
 typedef SkScalar (*MakePathProc)(SkPath*);
 
diff --git a/gm/spritebitmap.cpp b/gm/spritebitmap.cpp
index 38fe9f4..5459943 100644
--- a/gm/spritebitmap.cpp
+++ b/gm/spritebitmap.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkBlurImageFilter.h"
-#include "SkRSXform.h"
-#include "SkSurface.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkRSXform.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkBlurImageFilter.h"
 
 static void make_bm(SkBitmap* bm) {
     bm->allocN32Pixels(100, 100);
diff --git a/gm/srcmode.cpp b/gm/srcmode.cpp
index fb9b434..2ba977f 100644
--- a/gm/srcmode.cpp
+++ b/gm/srcmode.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkPath.h"
-#include "SkSurface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkGradientShader.h"
+#include "tools/ToolUtils.h"
 
 #define W   SkIntToScalar(80)
 #define H   SkIntToScalar(60)
diff --git a/gm/srgb.cpp b/gm/srgb.cpp
index 3808563..4968a67 100644
--- a/gm/srgb.cpp
+++ b/gm/srgb.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkImage.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkImage.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
 DEF_SIMPLE_GM(srgb_colorfilter, canvas, 512, 256*3) {
     auto img = GetResourceAsImage("images/mandrill_256.png");
diff --git a/gm/stlouisarch.cpp b/gm/stlouisarch.cpp
index 80d6a4a..931af55 100644
--- a/gm/stlouisarch.cpp
+++ b/gm/stlouisarch.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkTArray.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkTArray.h"
 
 namespace skiagm {
 
diff --git a/gm/stringart.cpp b/gm/stringart.cpp
index ccd84f8..850298b 100644
--- a/gm/stringart.cpp
+++ b/gm/stringart.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "tools/ToolUtils.h"
+#include "tools/timer/AnimTimer.h"
 
 // Reproduces https://code.google.com/p/chromium/issues/detail?id=279014
 
@@ -87,7 +87,7 @@
 /////////////////////////////////////////////////////////////////////////////////////////////////
 
 #if 0
-#include "Skottie.h"
+#include "modules/skottie/include/Skottie.h"
 
 class SkottieGM : public skiagm::GM {
     enum {
diff --git a/gm/stroke_rect_shader.cpp b/gm/stroke_rect_shader.cpp
index 4833741..a648c98 100644
--- a/gm/stroke_rect_shader.cpp
+++ b/gm/stroke_rect_shader.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkGradientShader.h"
+#include "gm/gm.h"
+#include "include/effects/SkGradientShader.h"
 
 namespace skiagm {
 
diff --git a/gm/strokedlines.cpp b/gm/strokedlines.cpp
index 13862bc..7d35138 100644
--- a/gm/strokedlines.cpp
+++ b/gm/strokedlines.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkDashPathEffect.h"
-#include "SkGradientShader.h"
-#include "SkMaskFilter.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPoint3.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint3.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "include/effects/SkGradientShader.h"
+#include "tools/ToolUtils.h"
 
 constexpr int kNumColumns = 6;
 constexpr int kNumRows = 8;
diff --git a/gm/strokefill.cpp b/gm/strokefill.cpp
index afce0c4..abf0d8e 100644
--- a/gm/strokefill.cpp
+++ b/gm/strokefill.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkPathPriv.h"
-#include "SkTextFormatParams.h"
-#include "SkTypeface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkTypeface.h"
+#include "src/core/SkPathPriv.h"
+#include "src/core/SkTextFormatParams.h"
+#include "tools/ToolUtils.h"
 
 /* Generated on a Mac with:
  * paint.setTypeface(SkTypeface::CreateByName("Papyrus"));
diff --git a/gm/strokerect.cpp b/gm/strokerect.cpp
index 7978f66..3511664 100644
--- a/gm/strokerect.cpp
+++ b/gm/strokerect.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
 
 #define STROKE_WIDTH    SkIntToScalar(20)
 
diff --git a/gm/strokerects.cpp b/gm/strokerects.cpp
index 3b1db5e..1415a1d 100644
--- a/gm/strokerects.cpp
+++ b/gm/strokerects.cpp
@@ -7,8 +7,8 @@
 
 
 
-#include "gm.h"
-#include "SkRandom.h"
+#include "gm/gm.h"
+#include "include/utils/SkRandom.h"
 
 namespace skiagm {
 
diff --git a/gm/strokes.cpp b/gm/strokes.cpp
index 588ea06..2f5339d 100644
--- a/gm/strokes.cpp
+++ b/gm/strokes.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkDashPathEffect.h"
-#include "SkParsePath.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkPath.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "include/utils/SkParsePath.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 #define W   400
 #define H   400
diff --git a/gm/stroketext.cpp b/gm/stroketext.cpp
index bff1228..15fb798 100644
--- a/gm/stroketext.cpp
+++ b/gm/stroketext.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkDashPathEffect.h"
-#include "SkTextBlob.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkTextBlob.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "tools/ToolUtils.h"
 
 static void test_nulldev(SkCanvas* canvas) {
     SkBitmap bm;
diff --git a/gm/subsetshader.cpp b/gm/subsetshader.cpp
index aa27c79..a54234e 100644
--- a/gm/subsetshader.cpp
+++ b/gm/subsetshader.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkBitmap.h"
-#include "SkShader.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkShader.h"
+#include "tools/Resources.h"
 
 DEF_SIMPLE_GM_CAN_FAIL(bitmap_subset_shader, canvas, errorMsg, 256, 256) {
     canvas->clear(SK_ColorWHITE);
diff --git a/gm/surface.cpp b/gm/surface.cpp
index 8606206..f39e1a4 100644
--- a/gm/surface.cpp
+++ b/gm/surface.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkGradientShader.h"
-#include "SkSurface.h"
-#include "SkSurfaceProps.h"
-#include "SkTextUtils.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkSurfaceProps.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkTextUtils.h"
+#include "tools/ToolUtils.h"
 
 #define W 200
 #define H 100
diff --git a/gm/tablecolorfilter.cpp b/gm/tablecolorfilter.cpp
index 6fe2aeb..1b47936 100644
--- a/gm/tablecolorfilter.cpp
+++ b/gm/tablecolorfilter.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkColorFilterImageFilter.h"
-#include "SkGradientShader.h"
-#include "SkTableColorFilter.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/effects/SkColorFilterImageFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/effects/SkTableColorFilter.h"
 
 static sk_sp<SkShader> make_shader0(int w, int h) {
     SkPoint pts[] = { {0, 0}, {SkIntToScalar(w), SkIntToScalar(h)} };
diff --git a/gm/tallstretchedbitmaps.cpp b/gm/tallstretchedbitmaps.cpp
index a16f54a..550efed 100644
--- a/gm/tallstretchedbitmaps.cpp
+++ b/gm/tallstretchedbitmaps.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkTo.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkRandom.h"
 
 int make_bm(SkBitmap* bm, int height) {
     constexpr int kRadius = 22;
diff --git a/gm/testgradient.cpp b/gm/testgradient.cpp
index b2a4508..3d1c4d1 100644
--- a/gm/testgradient.cpp
+++ b/gm/testgradient.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkRRect.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkRRect.h"
+#include "include/effects/SkGradientShader.h"
 
 class TestGradientGM : public skiagm::GM {
 public:
diff --git a/gm/text_scale_skew.cpp b/gm/text_scale_skew.cpp
index 977f9e3..36711fd 100644
--- a/gm/text_scale_skew.cpp
+++ b/gm/text_scale_skew.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkTextUtils.h"
+#include "gm/gm.h"
+#include "include/utils/SkTextUtils.h"
 
 // http://bug.skia.org/7315
 DEF_SIMPLE_GM(text_scale_skew, canvas, 256, 128) {
diff --git a/gm/textblob.cpp b/gm/textblob.cpp
index 6d6bfab..22cad6d 100644
--- a/gm/textblob.cpp
+++ b/gm/textblob.cpp
@@ -5,22 +5,22 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkFontStyle.h"
-#include "SkPaint.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkSize.h"
-#include "SkString.h"
-#include "SkTDArray.h"
-#include "SkTextBlob.h"
-#include "SkTypeface.h"
-#include "SkTypes.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTDArray.h"
+#include "tools/ToolUtils.h"
 
 #include <cstring>
 
diff --git a/gm/textblobblockreordering.cpp b/gm/textblobblockreordering.cpp
index b847c29..e0a1778 100644
--- a/gm/textblobblockreordering.cpp
+++ b/gm/textblobblockreordering.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "SkCanvas.h"
-#include "SkTextBlob.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkTextBlob.h"
 
 namespace skiagm {
 class TextBlobBlockReordering : public GM {
diff --git a/gm/textblobcolortrans.cpp b/gm/textblobcolortrans.cpp
index faaf936..6bd0903 100644
--- a/gm/textblobcolortrans.cpp
+++ b/gm/textblobcolortrans.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkStream.h"
-#include "SkTextBlob.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkGradientShader.h"
+#include "tools/Resources.h"
 
 namespace skiagm {
 class TextBlobColorTrans : public GM {
diff --git a/gm/textblobgeometrychange.cpp b/gm/textblobgeometrychange.cpp
index 97dc6fc..7d6c94e 100644
--- a/gm/textblobgeometrychange.cpp
+++ b/gm/textblobgeometrychange.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "SkCanvas.h"
-#include "SkSurface.h"
-#include "SkTextBlob.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTextBlob.h"
 
 // This tests that we don't try to reuse textblobs from the GPU textblob cache across pixel geometry
 // changes when we have LCD.  crbug/486744
diff --git a/gm/textbloblooper.cpp b/gm/textbloblooper.cpp
index 23b726c..9b082ba 100644
--- a/gm/textbloblooper.cpp
+++ b/gm/textbloblooper.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "Sk2DPathEffect.h"
-#include "SkBlurMask.h"
-#include "SkColorMatrixFilter.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkGraphics.h"
-#include "SkLayerDrawLooper.h"
-#include "SkMaskFilter.h"
-#include "SkRandom.h"
-#include "SkTextBlob.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkTextBlob.h"
+#include "include/effects/Sk2DPathEffect.h"
+#include "include/effects/SkColorMatrixFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/effects/SkLayerDrawLooper.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkBlurMask.h"
 
 namespace skiagm {
 
diff --git a/gm/textblobmixedsizes.cpp b/gm/textblobmixedsizes.cpp
index 51e560d..704b063 100644
--- a/gm/textblobmixedsizes.cpp
+++ b/gm/textblobmixedsizes.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "Resources.h"
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkImage.h"
-#include "SkMaskFilter.h"
-#include "SkRandom.h"
-#include "SkStream.h"
-#include "SkSurface.h"
-#include "SkTextBlob.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkBlurMask.h"
+#include "tools/Resources.h"
 
 namespace skiagm {
 class TextBlobMixedSizes : public GM {
diff --git a/gm/textblobrandomfont.cpp b/gm/textblobrandomfont.cpp
index cebc0bf..2963997 100644
--- a/gm/textblobrandomfont.cpp
+++ b/gm/textblobrandomfont.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "RandomScalerContext.h"
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkStream.h"
-#include "SkSurface.h"
-#include "SkTextBlob.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkGradientShader.h"
+#include "tools/Resources.h"
+#include "tools/fonts/RandomScalerContext.h"
 
-#include "GrContext.h"
+#include "include/gpu/GrContext.h"
 
 namespace skiagm {
 class TextBlobRandomFont : public GpuGM {
diff --git a/gm/textblobshader.cpp b/gm/textblobshader.cpp
index 358005a..49e98c3 100644
--- a/gm/textblobshader.cpp
+++ b/gm/textblobshader.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkPoint.h"
-#include "SkShader.h"
-#include "SkTextBlob.h"
-#include "SkTDArray.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/private/SkTDArray.h"
 
 // This GM exercises drawTextBlob offset vs. shader space behavior.
 class TextBlobShaderGM : public skiagm::GM {
diff --git a/gm/textblobtransforms.cpp b/gm/textblobtransforms.cpp
index 6977070..10e21c9 100644
--- a/gm/textblobtransforms.cpp
+++ b/gm/textblobtransforms.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkStream.h"
-#include "SkTextBlob.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkGradientShader.h"
+#include "tools/Resources.h"
 
 namespace skiagm {
 class TextBlobTransforms : public GM {
diff --git a/gm/textblobuseaftergpufree.cpp b/gm/textblobuseaftergpufree.cpp
index 4c70561..fd3f36f 100644
--- a/gm/textblobuseaftergpufree.cpp
+++ b/gm/textblobuseaftergpufree.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "SkCanvas.h"
-#include "SkSurface.h"
-#include "SkTextBlob.h"
-#include "GrContext.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTextBlob.h"
+#include "include/gpu/GrContext.h"
 
 // This tests that we correctly regenerate textblobs after freeing all gpu resources crbug/491350
 namespace skiagm {
diff --git a/gm/texteffects.cpp b/gm/texteffects.cpp
index eafa0cf..1570d0d 100644
--- a/gm/texteffects.cpp
+++ b/gm/texteffects.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "SkBlurMask.h"
-#include "SkBlurMaskFilter.h"
-#include "SkReadBuffer.h"
-#include "SkTextBlob.h"
-#include "SkTo.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkTextBlob.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkBlurMask.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 
-#include "Sk2DPathEffect.h"
+#include "include/effects/Sk2DPathEffect.h"
 
 static SkPath create_underline(const SkTDArray<SkScalar>& intersections,
         SkScalar last, SkScalar finalPos,
diff --git a/gm/texturedomaineffect.cpp b/gm/texturedomaineffect.cpp
index 0a6361a..86794eb 100644
--- a/gm/texturedomaineffect.cpp
+++ b/gm/texturedomaineffect.cpp
@@ -7,18 +7,18 @@
 
 // This test only works with the GPU backend.
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrProxyProvider.h"
-#include "GrRenderTargetContextPriv.h"
-#include "SkBitmap.h"
-#include "SkGradientShader.h"
-#include "SkSurface.h"
-#include "effects/GrTextureDomain.h"
-#include "ops/GrDrawOp.h"
-#include "ops/GrFillRectOp.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/effects/GrTextureDomain.h"
+#include "src/gpu/ops/GrDrawOp.h"
+#include "src/gpu/ops/GrFillRectOp.h"
 
 namespace skiagm {
 /**
diff --git a/gm/thinconcavepaths.cpp b/gm/thinconcavepaths.cpp
index 161333e..7494bb0 100644
--- a/gm/thinconcavepaths.cpp
+++ b/gm/thinconcavepaths.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
 
 namespace {
 // Test thin stroked rect (stroked "by hand", not by stroking).
diff --git a/gm/thinrects.cpp b/gm/thinrects.cpp
index e3d25fe..e66b71f 100644
--- a/gm/thinrects.cpp
+++ b/gm/thinrects.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
 namespace skiagm {
 
diff --git a/gm/thinstrokedrects.cpp b/gm/thinstrokedrects.cpp
index a4f2f13..3d243d6 100644
--- a/gm/thinstrokedrects.cpp
+++ b/gm/thinstrokedrects.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
 namespace skiagm {
 
diff --git a/gm/tiledscaledbitmap.cpp b/gm/tiledscaledbitmap.cpp
index 4bf827f..89430e0 100644
--- a/gm/tiledscaledbitmap.cpp
+++ b/gm/tiledscaledbitmap.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "Resources.h"
-#include "SkBitmap.h"
-#include "SkPaint.h"
-#include "SkShader.h"
-#include "SkStream.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkStream.h"
+#include "tools/Resources.h"
 
  /***
   *
diff --git a/gm/tileimagefilter.cpp b/gm/tileimagefilter.cpp
index c61b655..a3f4f1e 100644
--- a/gm/tileimagefilter.cpp
+++ b/gm/tileimagefilter.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorFilterImageFilter.h"
-#include "SkColorMatrixFilter.h"
-#include "SkImage.h"
-#include "SkImageSource.h"
-#include "SkTileImageFilter.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkImage.h"
+#include "include/effects/SkColorFilterImageFilter.h"
+#include "include/effects/SkColorMatrixFilter.h"
+#include "include/effects/SkImageSource.h"
+#include "include/effects/SkTileImageFilter.h"
+#include "tools/ToolUtils.h"
 
 #define WIDTH 400
 #define HEIGHT 200
diff --git a/gm/tilemodes.cpp b/gm/tilemodes.cpp
index e9af37b..79e9f20 100644
--- a/gm/tilemodes.cpp
+++ b/gm/tilemodes.cpp
@@ -4,20 +4,20 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkColorFilter.h"
-#include "SkMaskFilter.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkTextUtils.h"
-#include "SkUTF.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/utils/SkTextUtils.h"
+#include "src/utils/SkUTF.h"
+#include "tools/ToolUtils.h"
 // effects
-#include "SkGradientShader.h"
-#include "SkBlurDrawLooper.h"
+#include "include/effects/SkBlurDrawLooper.h"
+#include "include/effects/SkGradientShader.h"
 
-#include "Resources.h"
+#include "tools/Resources.h"
 
 static void makebm(SkBitmap* bm, SkColorType ct, int w, int h) {
     bm->allocPixels(SkImageInfo::Make(w, h, ct, kPremul_SkAlphaType));
@@ -258,7 +258,7 @@
 
 ////////////////////
 
-#include "SkGradientShader.h"
+#include "include/effects/SkGradientShader.h"
 
 DEF_SIMPLE_GM(tilemode_decal, canvas, 720, 1100) {
     auto img = GetResourceAsImage("images/mandrill_128.png");
diff --git a/gm/tilemodes_scaled.cpp b/gm/tilemodes_scaled.cpp
index 21d4754..720ba00 100644
--- a/gm/tilemodes_scaled.cpp
+++ b/gm/tilemodes_scaled.cpp
@@ -4,19 +4,19 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkColorFilter.h"
-#include "SkMaskFilter.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkTextUtils.h"
-#include "SkUTF.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/utils/SkTextUtils.h"
+#include "src/utils/SkUTF.h"
+#include "tools/ToolUtils.h"
 
 // effects
-#include "SkGradientShader.h"
-#include "SkBlurDrawLooper.h"
+#include "include/effects/SkBlurDrawLooper.h"
+#include "include/effects/SkGradientShader.h"
 
 static void makebm(SkBitmap* bm, SkColorType ct, int w, int h) {
     bm->allocPixels(SkImageInfo::Make(w, h, ct, kPremul_SkAlphaType));
diff --git a/gm/tinybitmap.cpp b/gm/tinybitmap.cpp
index 0d99f9e..c8ee8b3 100644
--- a/gm/tinybitmap.cpp
+++ b/gm/tinybitmap.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkShader.h"
-#include "SkUTF.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkShader.h"
+#include "src/utils/SkUTF.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/transparency.cpp b/gm/transparency.cpp
index 645dfb9..a2f5f81 100644
--- a/gm/transparency.cpp
+++ b/gm/transparency.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkGradientShader.h"
-#include "SkSurface.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkGradientShader.h"
 
 static void make_transparency(SkCanvas* canvas, SkScalar width, SkScalar height) {
     SkPoint pts[2];
diff --git a/gm/trickycubicstrokes.cpp b/gm/trickycubicstrokes.cpp
index 636aaf1..781601f 100644
--- a/gm/trickycubicstrokes.cpp
+++ b/gm/trickycubicstrokes.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkGeometry.h"
-#include "SkPath.h"
-#include "SkPaint.h"
-#include "SkStrokeRec.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkStrokeRec.h"
+#include "src/core/SkGeometry.h"
 
 static constexpr float kStrokeWidth = 40;
 static constexpr int kCellSize = 200;
diff --git a/gm/typeface.cpp b/gm/typeface.cpp
index 35aec97..d9a702f 100644
--- a/gm/typeface.cpp
+++ b/gm/typeface.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkBlurTypes.h"
-#include "SkCanvas.h"
-#include "SkFontStyle.h"
-#include "SkMaskFilter.h"
-#include "SkString.h"
-#include "SkSurfaceProps.h"
-#include "SkTextBlob.h"
-#include "SkTypeface.h"
-#include "SkTypes.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkBlurTypes.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkString.h"
+#include "include/core/SkSurfaceProps.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "include/core/SkTypes.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
 static void getGlyphPositions(const SkFont& font, const uint16_t glyphs[],
                              int count, SkScalar x, SkScalar y, SkPoint pos[]) {
diff --git a/gm/unpremul.cpp b/gm/unpremul.cpp
index 445a6ef..3d1bbaa 100644
--- a/gm/unpremul.cpp
+++ b/gm/unpremul.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkColor.h"
+#include "gm/gm.h"
+#include "include/core/SkColor.h"
 
 DEF_SIMPLE_GM(unpremul, canvas, 200, 200) {
     const SkColor color = 0xbf400000;
diff --git a/gm/variedtext.cpp b/gm/variedtext.cpp
index 0aea8d8..21ff63d 100644
--- a/gm/variedtext.cpp
+++ b/gm/variedtext.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkTypeface.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkTypeface.h"
+#include "include/utils/SkRandom.h"
+#include "tools/ToolUtils.h"
 
 /**
  * Draws text with random parameters. The text draws each get their own clip rect. It is also
diff --git a/gm/vertices.cpp b/gm/vertices.cpp
index bf5e884..796de47 100644
--- a/gm/vertices.cpp
+++ b/gm/vertices.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkGradientShader.h"
-#include "SkLocalMatrixShader.h"
-#include "SkRandom.h"
-#include "SkVertices.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkVertices.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkRandom.h"
+#include "src/shaders/SkLocalMatrixShader.h"
 
 static constexpr SkScalar kShaderSize = 40;
 static sk_sp<SkShader> make_shader1(SkScalar shaderScale) {
diff --git a/gm/verylargebitmap.cpp b/gm/verylargebitmap.cpp
index d6e3d96..0673b4d 100644
--- a/gm/verylargebitmap.cpp
+++ b/gm/verylargebitmap.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "gm.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkPath.h"
-#include "SkPictureRecorder.h"
-#include "SkSurface.h"
+#include "gm/gm.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkGradientShader.h"
 
 static void draw(SkCanvas* canvas, int width, int height, SkColor colors[2]) {
     const SkPoint center = { SkIntToScalar(width)/2, SkIntToScalar(height)/2 };
diff --git a/gm/wacky_yuv_formats.cpp b/gm/wacky_yuv_formats.cpp
index 332abcc..77a1919 100644
--- a/gm/wacky_yuv_formats.cpp
+++ b/gm/wacky_yuv_formats.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/ToolUtils.h"
 
-#include "SkColorPriv.h"
-#include "SkImageGenerator.h"
-#include "SkPath.h"
-#include "SkTextUtils.h"
-#include "SkYUVAIndex.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkImageGenerator.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkYUVAIndex.h"
+#include "include/utils/SkTextUtils.h"
 
 #if SK_SUPPORT_GPU
-#include "GrBackendSurface.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "SkImage_GpuYUVA.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/image/SkImage_GpuYUVA.h"
 #endif
 
 static const int kTileWidthHeight = 128;
diff --git a/gm/windowrectangles.cpp b/gm/windowrectangles.cpp
index d2ec7e6..308d67b 100644
--- a/gm/windowrectangles.cpp
+++ b/gm/windowrectangles.cpp
@@ -5,21 +5,21 @@
  * found in the LICENSE file.
  */
 
-#include "SkClipStack.h"
-#include "SkRRect.h"
-#include "SkTextUtils.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkRRect.h"
+#include "include/utils/SkTextUtils.h"
+#include "src/core/SkClipStack.h"
+#include "tools/ToolUtils.h"
 
-#include "GrAppliedClip.h"
-#include "GrCaps.h"
-#include "GrContextPriv.h"
-#include "GrReducedClip.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "GrResourceProvider.h"
-#include "GrStencilClip.h"
-#include "effects/GrTextureDomain.h"
+#include "src/gpu/GrAppliedClip.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrReducedClip.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrStencilClip.h"
+#include "src/gpu/effects/GrTextureDomain.h"
 
 constexpr static SkIRect kDeviceRect = {0, 0, 600, 600};
 constexpr static SkIRect kCoverRect = {50, 50, 550, 550};
diff --git a/gm/xfermodeimagefilter.cpp b/gm/xfermodeimagefilter.cpp
index a0d1da8..ac781e5 100644
--- a/gm/xfermodeimagefilter.cpp
+++ b/gm/xfermodeimagefilter.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkArithmeticImageFilter.h"
-#include "SkImage.h"
-#include "SkImageSource.h"
-#include "SkOffsetImageFilter.h"
-#include "SkXfermodeImageFilter.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkImage.h"
+#include "include/effects/SkArithmeticImageFilter.h"
+#include "include/effects/SkImageSource.h"
+#include "include/effects/SkOffsetImageFilter.h"
+#include "include/effects/SkXfermodeImageFilter.h"
+#include "tools/ToolUtils.h"
 
 #define WIDTH 600
 #define HEIGHT 700
diff --git a/gm/xfermodes.cpp b/gm/xfermodes.cpp
index df58a84..72118b5 100644
--- a/gm/xfermodes.cpp
+++ b/gm/xfermodes.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkShader.h"
-#include "SkTextUtils.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkShader.h"
+#include "include/utils/SkTextUtils.h"
+#include "tools/ToolUtils.h"
 
 enum SrcType {
     //! A WxH image with a rectangle in the lower right.
diff --git a/gm/xfermodes2.cpp b/gm/xfermodes2.cpp
index df6127c..4df9e57 100644
--- a/gm/xfermodes2.cpp
+++ b/gm/xfermodes2.cpp
@@ -4,13 +4,13 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkBitmap.h"
-#include "SkBlendModePriv.h"
-#include "SkColorPriv.h"
-#include "SkShader.h"
-#include "SkTextUtils.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkShader.h"
+#include "include/utils/SkTextUtils.h"
+#include "src/core/SkBlendModePriv.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/xfermodes3.cpp b/gm/xfermodes3.cpp
index 45eb568..eb70e02 100644
--- a/gm/xfermodes3.cpp
+++ b/gm/xfermodes3.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "GrContext.h"
-#include "SkBitmap.h"
-#include "SkBlendModePriv.h"
-#include "SkColorPriv.h"
-#include "SkGradientShader.h"
-#include "SkSurface.h"
-#include "SkTextUtils.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/gpu/GrContext.h"
+#include "include/utils/SkTextUtils.h"
+#include "src/core/SkBlendModePriv.h"
+#include "tools/ToolUtils.h"
 
 namespace skiagm {
 
diff --git a/gm/yuvtorgbeffect.cpp b/gm/yuvtorgbeffect.cpp
index 30d9129..badf4e2 100644
--- a/gm/yuvtorgbeffect.cpp
+++ b/gm/yuvtorgbeffect.cpp
@@ -7,20 +7,20 @@
 
 // This test only works with the GPU backend.
 
-#include "gm.h"
+#include "gm/gm.h"
 
-#include "GrClip.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrProxyProvider.h"
-#include "GrRenderTargetContextPriv.h"
-#include "GrTextureProxy.h"
-#include "SkBitmap.h"
-#include "SkGr.h"
-#include "SkGradientShader.h"
-#include "effects/GrYUVtoRGBEffect.h"
-#include "ops/GrDrawOp.h"
-#include "ops/GrFillRectOp.h"
+#include "include/core/SkBitmap.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/effects/GrYUVtoRGBEffect.h"
+#include "src/gpu/ops/GrDrawOp.h"
+#include "src/gpu/ops/GrFillRectOp.h"
 
 #define YSIZE 8
 #define USIZE 4
diff --git a/gn/find_headers.py b/gn/find_headers.py
index d02bd90..6e5d29b 100755
--- a/gn/find_headers.py
+++ b/gn/find_headers.py
@@ -60,7 +60,7 @@
 Header = collections.namedtuple('Header', ['absolute', 'include'])
 headers = {}
 for source in sources:
-  source_as_include = [source[len(include_dir):]
+  source_as_include = [os.path.relpath(source, absolute_source)
                        for include_dir in include_dirs
                        if source.startswith(include_dir)]
   if not source_as_include:
diff --git a/gn/gn_to_bp.py b/gn/gn_to_bp.py
index ca2dcc4..0ae8a50 100644
--- a/gn/gn_to_bp.py
+++ b/gn/gn_to_bp.py
@@ -93,11 +93,11 @@
           "third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp",
         ],
         local_include_dirs: [
-          "include/config/android",
+          "android",
           "third_party/vulkanmemoryallocator/",
         ],
         export_include_dirs: [
-          "include/config/android",
+          "android",
         ],
       },
       linux_glibc: {
@@ -108,10 +108,10 @@
           $linux_srcs
         ],
         local_include_dirs: [
-          "include/config/linux",
+          "linux",
         ],
         export_include_dirs: [
-          "include/config/linux",
+          "linux",
         ],
       },
       darwin: {
@@ -122,10 +122,10 @@
           $mac_srcs
         ],
         local_include_dirs: [
-          "include/config/mac",
+          "mac",
         ],
         export_include_dirs: [
-          "include/config/mac",
+          "mac",
         ],
       },
       windows: {
@@ -137,10 +137,10 @@
           $win_srcs
         ],
         local_include_dirs: [
-          "include/config/win",
+          "win",
         ],
         export_include_dirs: [
-          "include/config/win",
+          "win",
         ],
       },
     },
@@ -418,11 +418,11 @@
 
 def mkdir_if_not_exists(path):
   if not os.path.exists(path):
-    os.mkdir(path)
-mkdir_if_not_exists('include/config/android/')
-mkdir_if_not_exists('include/config/linux/')
-mkdir_if_not_exists('include/config/mac/')
-mkdir_if_not_exists('include/config/win/')
+    os.makedirs(path)
+mkdir_if_not_exists('android/include/config/')
+mkdir_if_not_exists('linux/include/config/')
+mkdir_if_not_exists('mac/include/config/')
+mkdir_if_not_exists('win/include/config/')
 
 platforms = { 'IOS', 'MAC', 'WIN', 'ANDROID', 'UNIX' }
 
@@ -444,7 +444,7 @@
   with open(config, 'a') as f:
     print >>f, s
 
-android_config = 'include/config/android/SkUserConfig.h'
+android_config = 'android/include/config/SkUserConfig.h'
 gn_to_bp_utils.WriteUserConfig(android_config, android_defines)
 append_to_file(android_config, '''
 #ifndef SK_BUILD_FOR_ANDROID
@@ -465,9 +465,9 @@
 #endif''' % (platform, platform))
   disallow_platforms(config_path, platform)
 
-write_config('include/config/linux/SkUserConfig.h', linux_defines, 'UNIX')
-write_config('include/config/mac/SkUserConfig.h',   mac_defines, 'MAC')
-write_config('include/config/win/SkUserConfig.h',   win_defines, 'WIN')
+write_config('linux/include/config/SkUserConfig.h', linux_defines, 'UNIX')
+write_config('mac/include/config/SkUserConfig.h',   mac_defines, 'MAC')
+write_config('win/include/config/SkUserConfig.h',   win_defines, 'WIN')
 
 # Turn a list of strings into the style bpfmt outputs.
 def bpfmt(indent, lst, sort=True):
diff --git a/include/android/SkAndroidFrameworkUtils.h b/include/android/SkAndroidFrameworkUtils.h
index a4a937e..d0f7d44 100644
--- a/include/android/SkAndroidFrameworkUtils.h
+++ b/include/android/SkAndroidFrameworkUtils.h
@@ -8,8 +8,8 @@
 #ifndef SkAndroidFrameworkUtils_DEFINED
 #define SkAndroidFrameworkUtils_DEFINED
 
-#include "SkTypes.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypes.h"
 
 #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
 
diff --git a/include/android/SkAnimatedImage.h b/include/android/SkAnimatedImage.h
index 7c6855b..760dabd 100644
--- a/include/android/SkAnimatedImage.h
+++ b/include/android/SkAnimatedImage.h
@@ -8,11 +8,11 @@
 #ifndef SkAnimatedImage_DEFINED
 #define SkAnimatedImage_DEFINED
 
-#include "SkBitmap.h"
-#include "SkCodecAnimation.h"
-#include "SkDrawable.h"
-#include "SkMatrix.h"
-#include "SkRect.h"
+#include "include/codec/SkCodecAnimation.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkDrawable.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkRect.h"
 
 class SkAndroidCodec;
 class SkPicture;
diff --git a/include/android/SkBRDAllocator.h b/include/android/SkBRDAllocator.h
index 3ca30c9..ae842b7 100644
--- a/include/android/SkBRDAllocator.h
+++ b/include/android/SkBRDAllocator.h
@@ -8,8 +8,8 @@
 #ifndef SkBRDAllocator_DEFINED
 #define SkBRDAllocator_DEFINED
 
-#include "SkBitmap.h"
-#include "SkCodec.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkBitmap.h"
 
 /**
  *  Abstract subclass of SkBitmap's allocator.
diff --git a/include/android/SkBitmapRegionDecoder.h b/include/android/SkBitmapRegionDecoder.h
index b5a4c81..18ba90b 100644
--- a/include/android/SkBitmapRegionDecoder.h
+++ b/include/android/SkBitmapRegionDecoder.h
@@ -8,10 +8,10 @@
 #ifndef SkBitmapRegionDecoder_DEFINED
 #define SkBitmapRegionDecoder_DEFINED
 
-#include "SkBitmap.h"
-#include "SkBRDAllocator.h"
-#include "SkEncodedImageFormat.h"
-#include "SkStream.h"
+#include "include/android/SkBRDAllocator.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkEncodedImageFormat.h"
+#include "include/core/SkStream.h"
 
 /*
  * This class aims to provide an interface to test multiple implementations of
diff --git a/include/atlastext/SkAtlasTextContext.h b/include/atlastext/SkAtlasTextContext.h
index bb5de52..d13ec51 100644
--- a/include/atlastext/SkAtlasTextContext.h
+++ b/include/atlastext/SkAtlasTextContext.h
@@ -8,7 +8,7 @@
 #ifndef SkAtlasTextContext_DEFINED
 #define SkAtlasTextContext_DEFINED
 
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
 
 class SkAtlasTextRenderer;
 class SkInternalAtlasTextContext;
diff --git a/include/atlastext/SkAtlasTextFont.h b/include/atlastext/SkAtlasTextFont.h
index ce9c605..8bab5bf 100644
--- a/include/atlastext/SkAtlasTextFont.h
+++ b/include/atlastext/SkAtlasTextFont.h
@@ -8,9 +8,9 @@
 #ifndef SkAtlasTextFont_DEFINED
 #define SkAtlasTextFont_DEFINED
 
-#include "SkFont.h"
-#include "SkRefCnt.h"
-#include "SkTypeface.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypeface.h"
 
 /** Represents a font at a size. TODO: What else do we need here (skewX, scaleX, vertical, ...)? */
 class SK_API SkAtlasTextFont : public SkRefCnt {
diff --git a/include/atlastext/SkAtlasTextRenderer.h b/include/atlastext/SkAtlasTextRenderer.h
index c4d74e8..e572bb6 100644
--- a/include/atlastext/SkAtlasTextRenderer.h
+++ b/include/atlastext/SkAtlasTextRenderer.h
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkPoint3.h"
-#include "SkRefCnt.h"
+#include "include/core/SkPoint3.h"
+#include "include/core/SkRefCnt.h"
 
 #ifndef SkAtlasTextRenderer_DEFINED
 #define SkAtlasTextRenderer_DEFINED
diff --git a/include/atlastext/SkAtlasTextTarget.h b/include/atlastext/SkAtlasTextTarget.h
index 70fac4e..b90dad6 100644
--- a/include/atlastext/SkAtlasTextTarget.h
+++ b/include/atlastext/SkAtlasTextTarget.h
@@ -8,9 +8,9 @@
 #ifndef SkAtlasTextTarget_DEFINED
 #define SkAtlasTextTarget_DEFINED
 
-#include "SkDeque.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
+#include "include/core/SkDeque.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
 
 #include <memory>
 
diff --git a/include/c/sk_canvas.h b/include/c/sk_canvas.h
index 1e1dd24..c739ed4 100644
--- a/include/c/sk_canvas.h
+++ b/include/c/sk_canvas.h
@@ -11,7 +11,7 @@
 #ifndef sk_canvas_DEFINED
 #define sk_canvas_DEFINED
 
-#include "sk_types.h"
+#include "include/c/sk_types.h"
 
 SK_C_PLUS_PLUS_BEGIN_GUARD
 
diff --git a/include/c/sk_colorspace.h b/include/c/sk_colorspace.h
index b0659c3..11c2409 100644
--- a/include/c/sk_colorspace.h
+++ b/include/c/sk_colorspace.h
@@ -11,7 +11,7 @@
 #ifndef sk_colorspace_DEFINED
 #define sk_colorspace_DEFINED
 
-#include "sk_types.h"
+#include "include/c/sk_types.h"
 
 SK_C_PLUS_PLUS_BEGIN_GUARD
 
diff --git a/include/c/sk_data.h b/include/c/sk_data.h
index 863c619f..27c51c4 100644
--- a/include/c/sk_data.h
+++ b/include/c/sk_data.h
@@ -11,7 +11,7 @@
 #ifndef sk_data_DEFINED
 #define sk_data_DEFINED
 
-#include "sk_types.h"
+#include "include/c/sk_types.h"
 
 SK_C_PLUS_PLUS_BEGIN_GUARD
 
diff --git a/include/c/sk_image.h b/include/c/sk_image.h
index e90649d..5106d40 100644
--- a/include/c/sk_image.h
+++ b/include/c/sk_image.h
@@ -11,7 +11,7 @@
 #ifndef sk_image_DEFINED
 #define sk_image_DEFINED
 
-#include "sk_types.h"
+#include "include/c/sk_types.h"
 
 SK_C_PLUS_PLUS_BEGIN_GUARD
 
diff --git a/include/c/sk_imageinfo.h b/include/c/sk_imageinfo.h
index 08f88b0..4fc4aad 100644
--- a/include/c/sk_imageinfo.h
+++ b/include/c/sk_imageinfo.h
@@ -11,7 +11,7 @@
 #ifndef sk_imageinfo_DEFINED
 #define sk_imageinfo_DEFINED
 
-#include "sk_types.h"
+#include "include/c/sk_types.h"
 
 SK_C_PLUS_PLUS_BEGIN_GUARD
 
diff --git a/include/c/sk_maskfilter.h b/include/c/sk_maskfilter.h
index 5c22a06..0bad79b 100644
--- a/include/c/sk_maskfilter.h
+++ b/include/c/sk_maskfilter.h
@@ -11,7 +11,7 @@
 #ifndef sk_maskfilter_DEFINED
 #define sk_maskfilter_DEFINED
 
-#include "sk_types.h"
+#include "include/c/sk_types.h"
 
 typedef enum {
     NORMAL_SK_BLUR_STYLE,   //!< fuzzy inside and outside
diff --git a/include/c/sk_matrix.h b/include/c/sk_matrix.h
index 83f0122..244863c 100644
--- a/include/c/sk_matrix.h
+++ b/include/c/sk_matrix.h
@@ -11,7 +11,7 @@
 #ifndef sk_matrix_DEFINED
 #define sk_matrix_DEFINED
 
-#include "sk_types.h"
+#include "include/c/sk_types.h"
 
 SK_C_PLUS_PLUS_BEGIN_GUARD
 
diff --git a/include/c/sk_paint.h b/include/c/sk_paint.h
index ef7e624..98ba495 100644
--- a/include/c/sk_paint.h
+++ b/include/c/sk_paint.h
@@ -11,7 +11,7 @@
 #ifndef sk_paint_DEFINED
 #define sk_paint_DEFINED
 
-#include "sk_types.h"
+#include "include/c/sk_types.h"
 
 SK_C_PLUS_PLUS_BEGIN_GUARD
 
diff --git a/include/c/sk_path.h b/include/c/sk_path.h
index 74abca0..3898b62 100644
--- a/include/c/sk_path.h
+++ b/include/c/sk_path.h
@@ -11,7 +11,7 @@
 #ifndef sk_path_DEFINED
 #define sk_path_DEFINED
 
-#include "sk_types.h"
+#include "include/c/sk_types.h"
 
 SK_C_PLUS_PLUS_BEGIN_GUARD
 
diff --git a/include/c/sk_picture.h b/include/c/sk_picture.h
index 7a03214..f7bb2e9 100644
--- a/include/c/sk_picture.h
+++ b/include/c/sk_picture.h
@@ -11,7 +11,7 @@
 #ifndef sk_picture_DEFINED
 #define sk_picture_DEFINED
 
-#include "sk_types.h"
+#include "include/c/sk_types.h"
 
 SK_C_PLUS_PLUS_BEGIN_GUARD
 
diff --git a/include/c/sk_shader.h b/include/c/sk_shader.h
index 702cda7..2a2e902 100644
--- a/include/c/sk_shader.h
+++ b/include/c/sk_shader.h
@@ -11,7 +11,7 @@
 #ifndef sk_shader_DEFINED
 #define sk_shader_DEFINED
 
-#include "sk_types.h"
+#include "include/c/sk_types.h"
 
 SK_C_PLUS_PLUS_BEGIN_GUARD
 
diff --git a/include/c/sk_surface.h b/include/c/sk_surface.h
index d634185..88c8c87 100644
--- a/include/c/sk_surface.h
+++ b/include/c/sk_surface.h
@@ -11,7 +11,7 @@
 #ifndef sk_surface_DEFINED
 #define sk_surface_DEFINED
 
-#include "sk_types.h"
+#include "include/c/sk_types.h"
 
 SK_C_PLUS_PLUS_BEGIN_GUARD
 
diff --git a/include/codec/SkAndroidCodec.h b/include/codec/SkAndroidCodec.h
index 750e235..26b3f5e 100644
--- a/include/codec/SkAndroidCodec.h
+++ b/include/codec/SkAndroidCodec.h
@@ -8,10 +8,10 @@
 #ifndef SkAndroidCodec_DEFINED
 #define SkAndroidCodec_DEFINED
 
-#include "SkCodec.h"
-#include "SkEncodedImageFormat.h"
-#include "SkStream.h"
-#include "SkTypes.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkEncodedImageFormat.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypes.h"
 
 /**
  *  Abstract interface defining image codec functionality that is necessary for
diff --git a/include/codec/SkCodec.h b/include/codec/SkCodec.h
index 15e9e47..b1b8035 100644
--- a/include/codec/SkCodec.h
+++ b/include/codec/SkCodec.h
@@ -8,19 +8,19 @@
 #ifndef SkCodec_DEFINED
 #define SkCodec_DEFINED
 
-#include "../private/SkNoncopyable.h"
-#include "../private/SkTemplates.h"
-#include "../private/SkEncodedInfo.h"
-#include "SkCodecAnimation.h"
-#include "SkColor.h"
-#include "SkEncodedImageFormat.h"
-#include "SkEncodedOrigin.h"
-#include "SkImageInfo.h"
-#include "SkPixmap.h"
-#include "SkSize.h"
-#include "SkStream.h"
-#include "SkTypes.h"
-#include "SkYUVASizeInfo.h"
+#include "include/codec/SkCodecAnimation.h"
+#include "include/codec/SkEncodedOrigin.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkEncodedImageFormat.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkPixmap.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypes.h"
+#include "include/core/SkYUVASizeInfo.h"
+#include "include/private/SkEncodedInfo.h"
+#include "include/private/SkNoncopyable.h"
+#include "include/private/SkTemplates.h"
 
 #include <vector>
 
diff --git a/include/codec/SkEncodedOrigin.h b/include/codec/SkEncodedOrigin.h
index 89ed9bb..dd34468 100644
--- a/include/codec/SkEncodedOrigin.h
+++ b/include/codec/SkEncodedOrigin.h
@@ -8,7 +8,7 @@
 #ifndef SkEncodedOrigin_DEFINED
 #define SkEncodedOrigin_DEFINED
 
-#include "SkMatrix.h"
+#include "include/core/SkMatrix.h"
 
 // These values match the orientation www.exif.org/Exif2-2.PDF.
 enum SkEncodedOrigin {
diff --git a/include/config/SkUserConfig.h b/include/config/SkUserConfig.h
index f5fedef..8e74f94 100644
--- a/include/config/SkUserConfig.h
+++ b/include/config/SkUserConfig.h
@@ -12,9 +12,9 @@
 
 /*  SkTypes.h, the root of the public header files, does the following trick:
 
-    #include "SkPreConfig.h"
-    #include "SkUserConfig.h"
-    #include "SkPostConfig.h"
+    #include "include/config/SkUserConfig.h"
+    #include "include/core/SkPostConfig.h"
+    #include "include/core/SkPreConfig.h"
 
     SkPreConfig.h runs first, and it is responsible for initializing certain
     skia defines.
diff --git a/include/core/SkAnnotation.h b/include/core/SkAnnotation.h
index 35cc2b5..9048bb6 100644
--- a/include/core/SkAnnotation.h
+++ b/include/core/SkAnnotation.h
@@ -8,7 +8,7 @@
 #ifndef SkAnnotation_DEFINED
 #define SkAnnotation_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 class SkData;
 struct SkPoint;
diff --git a/include/core/SkBBHFactory.h b/include/core/SkBBHFactory.h
index 58bd754..78263eb 100644
--- a/include/core/SkBBHFactory.h
+++ b/include/core/SkBBHFactory.h
@@ -8,7 +8,7 @@
 #ifndef SkBBHFactory_DEFINED
 #define SkBBHFactory_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 class SkBBoxHierarchy;
 struct SkRect;
 
diff --git a/include/core/SkBitmap.h b/include/core/SkBitmap.h
index 43190a1..2ee23f4 100644
--- a/include/core/SkBitmap.h
+++ b/include/core/SkBitmap.h
@@ -8,12 +8,12 @@
 #ifndef SkBitmap_DEFINED
 #define SkBitmap_DEFINED
 
-#include "SkColor.h"
-#include "SkImageInfo.h"
-#include "SkPixmap.h"
-#include "SkPoint.h"
-#include "SkRefCnt.h"
-#include "SkTileMode.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkPixmap.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTileMode.h"
 
 struct SkMask;
 struct SkIRect;
diff --git a/include/core/SkBlendMode.h b/include/core/SkBlendMode.h
index d28d2a6..270978f 100644
--- a/include/core/SkBlendMode.h
+++ b/include/core/SkBlendMode.h
@@ -8,7 +8,7 @@
 #ifndef SkBlendMode_DEFINED
 #define SkBlendMode_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 enum class SkBlendMode {
     kClear,                           //!< replaces destination with zero: fully transparent
diff --git a/include/core/SkBlurTypes.h b/include/core/SkBlurTypes.h
index 257e132..aec37b6 100644
--- a/include/core/SkBlurTypes.h
+++ b/include/core/SkBlurTypes.h
@@ -8,7 +8,7 @@
 #ifndef SkBlurTypes_DEFINED
 #define SkBlurTypes_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 enum SkBlurStyle : int {
     kNormal_SkBlurStyle,  //!< fuzzy inside and outside
diff --git a/include/core/SkCanvas.h b/include/core/SkCanvas.h
index 30bb401..4706c59 100644
--- a/include/core/SkCanvas.h
+++ b/include/core/SkCanvas.h
@@ -8,25 +8,25 @@
 #ifndef SkCanvas_DEFINED
 #define SkCanvas_DEFINED
 
-#include "../private/SkMacros.h"
-#include "SkBlendMode.h"
-#include "SkColor.h"
-#include "SkClipOp.h"
-#include "SkDeque.h"
-#include "SkFontTypes.h"
-#include "SkImageInfo.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkPoint.h"
-#include "SkRasterHandleAllocator.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkSize.h"
-#include "SkString.h"
-#include "SkSurfaceProps.h"
-#include "SkTypes.h"
-#include "SkVertices.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkClipOp.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkDeque.h"
+#include "include/core/SkFontTypes.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRasterHandleAllocator.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkString.h"
+#include "include/core/SkSurfaceProps.h"
+#include "include/core/SkTypes.h"
+#include "include/core/SkVertices.h"
+#include "include/private/SkMacros.h"
 
 #include <cstring>
 #include <memory>
diff --git a/include/core/SkCanvasVirtualEnforcer.h b/include/core/SkCanvasVirtualEnforcer.h
index a6cdd42..f2bf293 100644
--- a/include/core/SkCanvasVirtualEnforcer.h
+++ b/include/core/SkCanvasVirtualEnforcer.h
@@ -8,7 +8,7 @@
 #ifndef SkCanvasVirtualEnforcer_DEFINED
 #define SkCanvasVirtualEnforcer_DEFINED
 
-#include "SkCanvas.h"
+#include "include/core/SkCanvas.h"
 
 // If you would ordinarily want to inherit from Base (eg SkCanvas, SkNWayCanvas), instead
 // inherit from SkCanvasVirtualEnforcer<Base>, which will make the build fail if you forget
diff --git a/include/core/SkClipOp.h b/include/core/SkClipOp.h
index 6ae16a8..a9ea7a0 100644
--- a/include/core/SkClipOp.h
+++ b/include/core/SkClipOp.h
@@ -8,7 +8,7 @@
 #ifndef SkClipOp_DEFINED
 #define SkClipOp_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 enum class SkClipOp {
     kDifference    = 0,
diff --git a/include/core/SkColor.h b/include/core/SkColor.h
index 9ac58f3..3209592 100644
--- a/include/core/SkColor.h
+++ b/include/core/SkColor.h
@@ -8,9 +8,9 @@
 #ifndef SkColor_DEFINED
 #define SkColor_DEFINED
 
-#include "SkImageInfo.h"
-#include "SkScalar.h"
-#include "SkTypes.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkTypes.h"
 
 /** \file SkColor.h
 
diff --git a/include/core/SkColorFilter.h b/include/core/SkColorFilter.h
index 890ce62..83bc955 100644
--- a/include/core/SkColorFilter.h
+++ b/include/core/SkColorFilter.h
@@ -8,10 +8,10 @@
 #ifndef SkColorFilter_DEFINED
 #define SkColorFilter_DEFINED
 
-#include "SkBlendMode.h"
-#include "SkColor.h"
-#include "SkFlattenable.h"
-#include "SkRefCnt.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkRefCnt.h"
 
 class GrColorSpaceInfo;
 class GrFragmentProcessor;
diff --git a/include/core/SkColorPriv.h b/include/core/SkColorPriv.h
index 004cfec..0e20864 100644
--- a/include/core/SkColorPriv.h
+++ b/include/core/SkColorPriv.h
@@ -8,9 +8,9 @@
 #ifndef SkColorPriv_DEFINED
 #define SkColorPriv_DEFINED
 
-#include "../private/SkTo.h"
-#include "SkColor.h"
-#include "SkMath.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkMath.h"
+#include "include/private/SkTo.h"
 
 /** Turn 0..255 into 0..256 by adding 1 at the half-way point. Used to turn a
     byte into a scale value, so that we can say scale * value >> 8 instead of
diff --git a/include/core/SkColorSpace.h b/include/core/SkColorSpace.h
index 8aea011..205554a 100644
--- a/include/core/SkColorSpace.h
+++ b/include/core/SkColorSpace.h
@@ -8,11 +8,11 @@
 #ifndef SkColorSpace_DEFINED
 #define SkColorSpace_DEFINED
 
-#include "../private/SkFixed.h"
-#include "../private/SkOnce.h"
+#include "include/private/SkFixed.h"
+#include "include/private/SkOnce.h"
 #include "skcms.h"
-#include "SkMatrix44.h"
-#include "SkRefCnt.h"
+#include "include/core/SkMatrix44.h"
+#include "include/core/SkRefCnt.h"
 #include <memory>
 
 class SkData;
diff --git a/include/core/SkContourMeasure.h b/include/core/SkContourMeasure.h
index 7e4a95d..22d6ccf 100644
--- a/include/core/SkContourMeasure.h
+++ b/include/core/SkContourMeasure.h
@@ -8,10 +8,10 @@
 #ifndef SkContourMeasure_DEFINED
 #define SkContourMeasure_DEFINED
 
-#include "../private/SkNoncopyable.h"
-#include "../private/SkTDArray.h"
-#include "SkPath.h"
-#include "SkRefCnt.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkNoncopyable.h"
+#include "include/private/SkTDArray.h"
 
 struct SkConic;
 
diff --git a/include/core/SkCoverageMode.h b/include/core/SkCoverageMode.h
index 856b767..ea5b73d 100644
--- a/include/core/SkCoverageMode.h
+++ b/include/core/SkCoverageMode.h
@@ -8,7 +8,7 @@
 #ifndef SkCoverageMode_DEFINED
 #define SkCoverageMode_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 /**
  *  Describes geometric operations (ala SkRegion::Op) that can be applied to coverage bytes.
diff --git a/include/core/SkCubicMap.h b/include/core/SkCubicMap.h
index 1375c78..d7207b2 100644
--- a/include/core/SkCubicMap.h
+++ b/include/core/SkCubicMap.h
@@ -8,7 +8,7 @@
 #ifndef SkCubicMap_DEFINED
 #define SkCubicMap_DEFINED
 
-#include "SkPoint.h"
+#include "include/core/SkPoint.h"
 
 /**
  *  Fast evaluation of a cubic ease-in / ease-out curve. This is defined as a parametric cubic
diff --git a/include/core/SkData.h b/include/core/SkData.h
index 931749a..abf4eea 100644
--- a/include/core/SkData.h
+++ b/include/core/SkData.h
@@ -10,7 +10,7 @@
 
 #include <stdio.h>
 
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
 
 class SkStream;
 
diff --git a/include/core/SkDataTable.h b/include/core/SkDataTable.h
index a46f74e..74e7d0e 100644
--- a/include/core/SkDataTable.h
+++ b/include/core/SkDataTable.h
@@ -8,9 +8,9 @@
 #ifndef SkDataTable_DEFINED
 #define SkDataTable_DEFINED
 
-#include "../private/SkTDArray.h"
-#include "SkData.h"
-#include "SkString.h"
+#include "include/core/SkData.h"
+#include "include/core/SkString.h"
+#include "include/private/SkTDArray.h"
 
 /**
  *  Like SkData, SkDataTable holds an immutable data buffer. The data buffer is
diff --git a/include/core/SkDeferredDisplayListRecorder.h b/include/core/SkDeferredDisplayListRecorder.h
index c044647..d5e4c0a 100644
--- a/include/core/SkDeferredDisplayListRecorder.h
+++ b/include/core/SkDeferredDisplayListRecorder.h
@@ -8,11 +8,11 @@
 #ifndef SkDeferredDisplayListRecorder_DEFINED
 #define SkDeferredDisplayListRecorder_DEFINED
 
-#include "../private/SkDeferredDisplayList.h"
-#include "SkImageInfo.h"
-#include "SkRefCnt.h"
-#include "SkSurfaceCharacterization.h"
-#include "SkTypes.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSurfaceCharacterization.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkDeferredDisplayList.h"
 
 class GrBackendFormat;
 class GrBackendTexture;
diff --git a/include/core/SkDeque.h b/include/core/SkDeque.h
index 43023b8..07c9085 100644
--- a/include/core/SkDeque.h
+++ b/include/core/SkDeque.h
@@ -10,8 +10,8 @@
 #ifndef SkDeque_DEFINED
 #define SkDeque_DEFINED
 
-#include "../private/SkNoncopyable.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkNoncopyable.h"
 
 /*
  * The deque class works by blindly creating memory space of a specified element
diff --git a/include/core/SkDocument.h b/include/core/SkDocument.h
index bf52069..0548711 100644
--- a/include/core/SkDocument.h
+++ b/include/core/SkDocument.h
@@ -8,8 +8,8 @@
 #ifndef SkDocument_DEFINED
 #define SkDocument_DEFINED
 
-#include "SkRefCnt.h"
-#include "SkScalar.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
 
 class SkCanvas;
 class SkWStream;
diff --git a/include/core/SkDrawLooper.h b/include/core/SkDrawLooper.h
index ee0f237..065bf0e 100644
--- a/include/core/SkDrawLooper.h
+++ b/include/core/SkDrawLooper.h
@@ -10,11 +10,11 @@
 #ifndef SkDrawLooper_DEFINED
 #define SkDrawLooper_DEFINED
 
-#include "../private/SkNoncopyable.h"
-#include "SkBlurTypes.h"
-#include "SkFlattenable.h"
-#include "SkPoint.h"
-#include "SkColor.h"
+#include "include/core/SkBlurTypes.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkPoint.h"
+#include "include/private/SkNoncopyable.h"
 
 class  SkArenaAlloc;
 class  SkCanvas;
diff --git a/include/core/SkDrawable.h b/include/core/SkDrawable.h
index ee60375..8d605f8 100644
--- a/include/core/SkDrawable.h
+++ b/include/core/SkDrawable.h
@@ -8,9 +8,9 @@
 #ifndef SkDrawable_DEFINED
 #define SkDrawable_DEFINED
 
-#include "SkFlattenable.h"
-#include "SkImageInfo.h"
-#include "SkScalar.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkScalar.h"
 
 class GrBackendDrawableInfo;
 class SkCanvas;
diff --git a/include/core/SkExecutor.h b/include/core/SkExecutor.h
index 9e1934d..b7b823f 100644
--- a/include/core/SkExecutor.h
+++ b/include/core/SkExecutor.h
@@ -10,7 +10,7 @@
 
 #include <functional>
 #include <memory>
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 class SK_API SkExecutor {
 public:
diff --git a/include/core/SkFilterQuality.h b/include/core/SkFilterQuality.h
index 8f53258..1f89517 100644
--- a/include/core/SkFilterQuality.h
+++ b/include/core/SkFilterQuality.h
@@ -8,7 +8,7 @@
 #ifndef SkFilterQuality_DEFINED
 #define SkFilterQuality_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 /**
  *  Controls how much filtering to be done when scaling/transforming complex colors
diff --git a/include/core/SkFlattenable.h b/include/core/SkFlattenable.h
index 266d783..402517f 100644
--- a/include/core/SkFlattenable.h
+++ b/include/core/SkFlattenable.h
@@ -8,7 +8,7 @@
 #ifndef SkFlattenable_DEFINED
 #define SkFlattenable_DEFINED
 
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
 
 class SkData;
 class SkReadBuffer;
diff --git a/include/core/SkFont.h b/include/core/SkFont.h
index 71be71ff..9f019e8 100644
--- a/include/core/SkFont.h
+++ b/include/core/SkFont.h
@@ -8,9 +8,9 @@
 #ifndef SkFont_DEFINED
 #define SkFont_DEFINED
 
-#include "SkFontTypes.h"
-#include "SkScalar.h"
-#include "SkTypeface.h"
+#include "include/core/SkFontTypes.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkTypeface.h"
 
 class SkMatrix;
 class SkPaint;
diff --git a/include/core/SkFontArguments.h b/include/core/SkFontArguments.h
index 52f2072..c17a120 100644
--- a/include/core/SkFontArguments.h
+++ b/include/core/SkFontArguments.h
@@ -8,8 +8,8 @@
 #ifndef SkFontArguments_DEFINED
 #define SkFontArguments_DEFINED
 
-#include "SkScalar.h"
-#include "SkTypes.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkTypes.h"
 
 /** Represents a set of actual arguments for a font. */
 struct SkFontArguments {
diff --git a/include/core/SkFontLCDConfig.h b/include/core/SkFontLCDConfig.h
index ec738f1..1d40b82 100644
--- a/include/core/SkFontLCDConfig.h
+++ b/include/core/SkFontLCDConfig.h
@@ -8,7 +8,7 @@
 #ifndef SkFontLCDConfig_DEFINED
 #define SkFontLCDConfig_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 class SK_API SkFontLCDConfig {
 public:
diff --git a/include/core/SkFontMetrics.h b/include/core/SkFontMetrics.h
index 873931b..58994b9 100644
--- a/include/core/SkFontMetrics.h
+++ b/include/core/SkFontMetrics.h
@@ -8,7 +8,7 @@
 #ifndef SkFontMetrics_DEFINED
 #define SkFontMetrics_DEFINED
 
-#include "SkScalar.h"
+#include "include/core/SkScalar.h"
 
 struct SK_API SkFontMetrics {
 
diff --git a/include/core/SkFontMgr.h b/include/core/SkFontMgr.h
index 2636e90..39a6bab 100644
--- a/include/core/SkFontMgr.h
+++ b/include/core/SkFontMgr.h
@@ -8,10 +8,10 @@
 #ifndef SkFontMgr_DEFINED
 #define SkFontMgr_DEFINED
 
-#include "SkFontArguments.h"
-#include "SkFontStyle.h"
-#include "SkRefCnt.h"
-#include "SkTypes.h"
+#include "include/core/SkFontArguments.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypes.h"
 
 class SkData;
 class SkFontData;
diff --git a/include/core/SkFontParameters.h b/include/core/SkFontParameters.h
index 7d3c407..3bcb786 100644
--- a/include/core/SkFontParameters.h
+++ b/include/core/SkFontParameters.h
@@ -8,8 +8,8 @@
 #ifndef SkFontParameters_DEFINED
 #define SkFontParameters_DEFINED
 
-#include "SkScalar.h"
-#include "SkTypes.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkTypes.h"
 
 struct SkFontParameters {
     struct Variation {
diff --git a/include/core/SkFontStyle.h b/include/core/SkFontStyle.h
index b619c36..50b5bd0 100644
--- a/include/core/SkFontStyle.h
+++ b/include/core/SkFontStyle.h
@@ -8,7 +8,7 @@
 #ifndef SkFontStyle_DEFINED
 #define SkFontStyle_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 class SK_API SkFontStyle {
 public:
diff --git a/include/core/SkGraphics.h b/include/core/SkGraphics.h
index 84b0da8..a7fcfa6 100644
--- a/include/core/SkGraphics.h
+++ b/include/core/SkGraphics.h
@@ -8,7 +8,7 @@
 #ifndef SkGraphics_DEFINED
 #define SkGraphics_DEFINED
 
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
 
 class SkData;
 class SkImageGenerator;
diff --git a/include/core/SkICC.h b/include/core/SkICC.h
index e379759..cb84c1f 100644
--- a/include/core/SkICC.h
+++ b/include/core/SkICC.h
@@ -8,7 +8,7 @@
 #ifndef SkICC_DEFINED
 #define SkICC_DEFINED
 
-#include "SkData.h"
+#include "include/core/SkData.h"
 
 struct skcms_Matrix3x3;
 struct skcms_TransferFunction;
diff --git a/include/core/SkImage.h b/include/core/SkImage.h
index 008ee6d..c418d50 100644
--- a/include/core/SkImage.h
+++ b/include/core/SkImage.h
@@ -8,14 +8,14 @@
 #ifndef SkImage_DEFINED
 #define SkImage_DEFINED
 
-#include "GrTypes.h"
-#include "SkFilterQuality.h"
-#include "SkImageInfo.h"
-#include "SkImageEncoder.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkShader.h"   // can remove once we switch to SkTileMode
-#include "SkTileMode.h"
+#include "include/core/SkFilterQuality.h"
+#include "include/core/SkImageEncoder.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkTileMode.h"
+#include "include/gpu/GrTypes.h"
 
 #if defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 26
 #include <android/hardware_buffer.h>
diff --git a/include/core/SkImageEncoder.h b/include/core/SkImageEncoder.h
index e44b3eb..ec5cfdb 100644
--- a/include/core/SkImageEncoder.h
+++ b/include/core/SkImageEncoder.h
@@ -8,10 +8,10 @@
 #ifndef SkImageEncoder_DEFINED
 #define SkImageEncoder_DEFINED
 
-#include "SkBitmap.h"
-#include "SkData.h"
-#include "SkEncodedImageFormat.h"
-#include "SkStream.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkData.h"
+#include "include/core/SkEncodedImageFormat.h"
+#include "include/core/SkStream.h"
 
 /**
  * Encode SkPixmap in the given binary image format.
diff --git a/include/core/SkImageFilter.h b/include/core/SkImageFilter.h
index b63d9b2..f94224b 100644
--- a/include/core/SkImageFilter.h
+++ b/include/core/SkImageFilter.h
@@ -8,15 +8,15 @@
 #ifndef SkImageFilter_DEFINED
 #define SkImageFilter_DEFINED
 
-#include "../private/SkTArray.h"
-#include "../private/SkTemplates.h"
-#include "../private/SkMutex.h"
-#include "SkColorSpace.h"
-#include "SkFilterQuality.h"
-#include "SkFlattenable.h"
-#include "SkImageInfo.h"
-#include "SkMatrix.h"
-#include "SkRect.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkFilterQuality.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkRect.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTemplates.h"
 
 class GrFragmentProcessor;
 class SkColorFilter;
diff --git a/include/core/SkImageGenerator.h b/include/core/SkImageGenerator.h
index d66bfa7..77eb6b7 100644
--- a/include/core/SkImageGenerator.h
+++ b/include/core/SkImageGenerator.h
@@ -8,12 +8,12 @@
 #ifndef SkImageGenerator_DEFINED
 #define SkImageGenerator_DEFINED
 
-#include "SkBitmap.h"
-#include "SkColor.h"
-#include "SkImage.h"
-#include "SkImageInfo.h"
-#include "SkYUVAIndex.h"
-#include "SkYUVASizeInfo.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkYUVAIndex.h"
+#include "include/core/SkYUVASizeInfo.h"
 
 class GrRecordingContext;
 class GrTextureProxy;
diff --git a/include/core/SkImageInfo.h b/include/core/SkImageInfo.h
index f1cbf7a..e52390a 100644
--- a/include/core/SkImageInfo.h
+++ b/include/core/SkImageInfo.h
@@ -8,13 +8,13 @@
 #ifndef SkImageInfo_DEFINED
 #define SkImageInfo_DEFINED
 
-#include "SkColorSpace.h"
-#include "SkMath.h"
-#include "SkRect.h"
-#include "SkSize.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkMath.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkSize.h"
 
-#include "../private/SkTFitsIn.h"
-#include "../private/SkTo.h"
+#include "include/private/SkTFitsIn.h"
+#include "include/private/SkTo.h"
 
 class SkReadBuffer;
 class SkWriteBuffer;
diff --git a/include/core/SkMallocPixelRef.h b/include/core/SkMallocPixelRef.h
index 66acdcb..8801de6 100644
--- a/include/core/SkMallocPixelRef.h
+++ b/include/core/SkMallocPixelRef.h
@@ -8,9 +8,9 @@
 #ifndef SkMallocPixelRef_DEFINED
 #define SkMallocPixelRef_DEFINED
 
-#include "SkPixelRef.h"
-#include "SkRefCnt.h"
-#include "SkTypes.h"
+#include "include/core/SkPixelRef.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypes.h"
 class SkData;
 struct SkImageInfo;
 
diff --git a/include/core/SkMaskFilter.h b/include/core/SkMaskFilter.h
index 02961be..ffb30e4 100644
--- a/include/core/SkMaskFilter.h
+++ b/include/core/SkMaskFilter.h
@@ -8,10 +8,10 @@
 #ifndef SkMaskFilter_DEFINED
 #define SkMaskFilter_DEFINED
 
-#include "SkBlurTypes.h"
-#include "SkCoverageMode.h"
-#include "SkFlattenable.h"
-#include "SkScalar.h"
+#include "include/core/SkBlurTypes.h"
+#include "include/core/SkCoverageMode.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkScalar.h"
 
 class SkMatrix;
 struct SkRect;
diff --git a/include/core/SkMath.h b/include/core/SkMath.h
index b19436c..33d929e 100644
--- a/include/core/SkMath.h
+++ b/include/core/SkMath.h
@@ -8,7 +8,7 @@
 #ifndef SkMath_DEFINED
 #define SkMath_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 // 64bit -> 32bit utilities
 
diff --git a/include/core/SkMatrix.h b/include/core/SkMatrix.h
index d2f79f3..7de26e6 100644
--- a/include/core/SkMatrix.h
+++ b/include/core/SkMatrix.h
@@ -8,9 +8,9 @@
 #ifndef SkMatrix_DEFINED
 #define SkMatrix_DEFINED
 
-#include "../private/SkMacros.h"
-#include "../private/SkTo.h"
-#include "SkRect.h"
+#include "include/core/SkRect.h"
+#include "include/private/SkMacros.h"
+#include "include/private/SkTo.h"
 
 struct SkRSXform;
 struct SkPoint3;
diff --git a/include/core/SkMatrix44.h b/include/core/SkMatrix44.h
index 278b49d..76dc567 100644
--- a/include/core/SkMatrix44.h
+++ b/include/core/SkMatrix44.h
@@ -8,8 +8,8 @@
 #ifndef SkMatrix44_DEFINED
 #define SkMatrix44_DEFINED
 
-#include "SkMatrix.h"
-#include "SkScalar.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkScalar.h"
 
 #include <atomic>
 #include <cstring>
diff --git a/include/core/SkMultiPictureDraw.h b/include/core/SkMultiPictureDraw.h
index e798f06..70c4e16 100644
--- a/include/core/SkMultiPictureDraw.h
+++ b/include/core/SkMultiPictureDraw.h
@@ -8,8 +8,8 @@
 #ifndef SkMultiPictureDraw_DEFINED
 #define SkMultiPictureDraw_DEFINED
 
-#include "../private/SkTDArray.h"
-#include "SkMatrix.h"
+#include "include/core/SkMatrix.h"
+#include "include/private/SkTDArray.h"
 
 class SkCanvas;
 class SkPaint;
diff --git a/include/core/SkOverdrawCanvas.h b/include/core/SkOverdrawCanvas.h
index 295445e..6ebe562 100644
--- a/include/core/SkOverdrawCanvas.h
+++ b/include/core/SkOverdrawCanvas.h
@@ -8,8 +8,8 @@
 #ifndef SkOverdrawCanvas_DEFINED
 #define SkOverdrawCanvas_DEFINED
 
-#include "SkCanvasVirtualEnforcer.h"
-#include "SkNWayCanvas.h"
+#include "include/core/SkCanvasVirtualEnforcer.h"
+#include "include/utils/SkNWayCanvas.h"
 
 /**
  *  Captures all drawing commands.  Rather than draw the actual content, this device
diff --git a/include/core/SkPaint.h b/include/core/SkPaint.h
index 36ad18f..bb5c9ef 100644
--- a/include/core/SkPaint.h
+++ b/include/core/SkPaint.h
@@ -8,11 +8,11 @@
 #ifndef SkPaint_DEFINED
 #define SkPaint_DEFINED
 
-#include "../private/SkTo.h"
-#include "SkBlendMode.h"
-#include "SkColor.h"
-#include "SkFilterQuality.h"
-#include "SkRefCnt.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkFilterQuality.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkTo.h"
 
 class SkColorFilter;
 class SkColorSpace;
diff --git a/include/core/SkPath.h b/include/core/SkPath.h
index 7c7207a..8b78272 100644
--- a/include/core/SkPath.h
+++ b/include/core/SkPath.h
@@ -8,9 +8,9 @@
 #ifndef SkPath_DEFINED
 #define SkPath_DEFINED
 
-#include "SkMatrix.h"
-#include "../private/SkPathRef.h"
-#include "../private/SkTo.h"
+#include "include/core/SkMatrix.h"
+#include "include/private/SkPathRef.h"
+#include "include/private/SkTo.h"
 
 #include <initializer_list>
 
diff --git a/include/core/SkPathEffect.h b/include/core/SkPathEffect.h
index ff25715..1a96810 100644
--- a/include/core/SkPathEffect.h
+++ b/include/core/SkPathEffect.h
@@ -8,10 +8,10 @@
 #ifndef SkPathEffect_DEFINED
 #define SkPathEffect_DEFINED
 
-#include "SkFlattenable.h"
-#include "SkPath.h"
-#include "SkPoint.h"
-#include "SkRect.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
 
 class SkPath;
 class SkStrokeRec;
diff --git a/include/core/SkPathMeasure.h b/include/core/SkPathMeasure.h
index c486d31..1e161b8 100644
--- a/include/core/SkPathMeasure.h
+++ b/include/core/SkPathMeasure.h
@@ -8,10 +8,10 @@
 #ifndef SkPathMeasure_DEFINED
 #define SkPathMeasure_DEFINED
 
-#include "../private/SkNoncopyable.h"
-#include "../private/SkTDArray.h"
-#include "SkContourMeasure.h"
-#include "SkPath.h"
+#include "include/core/SkContourMeasure.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkNoncopyable.h"
+#include "include/private/SkTDArray.h"
 
 class SK_API SkPathMeasure : SkNoncopyable {
 public:
diff --git a/include/core/SkPicture.h b/include/core/SkPicture.h
index 49798a8..6aa17e2 100644
--- a/include/core/SkPicture.h
+++ b/include/core/SkPicture.h
@@ -8,10 +8,10 @@
 #ifndef SkPicture_DEFINED
 #define SkPicture_DEFINED
 
-#include "SkRefCnt.h"
-#include "SkRect.h"
-#include "SkTileMode.h"
-#include "SkTypes.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTileMode.h"
+#include "include/core/SkTypes.h"
 
 class SkCanvas;
 class SkData;
diff --git a/include/core/SkPictureRecorder.h b/include/core/SkPictureRecorder.h
index d28544c..9fc0f3b 100644
--- a/include/core/SkPictureRecorder.h
+++ b/include/core/SkPictureRecorder.h
@@ -8,10 +8,10 @@
 #ifndef SkPictureRecorder_DEFINED
 #define SkPictureRecorder_DEFINED
 
-#include "../private/SkNoncopyable.h"
-#include "SkBBHFactory.h"
-#include "SkPicture.h"
-#include "SkRefCnt.h"
+#include "include/core/SkBBHFactory.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkNoncopyable.h"
 
 #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
 namespace android {
diff --git a/include/core/SkPixelRef.h b/include/core/SkPixelRef.h
index 1cf91d7..48ad377 100644
--- a/include/core/SkPixelRef.h
+++ b/include/core/SkPixelRef.h
@@ -8,15 +8,15 @@
 #ifndef SkPixelRef_DEFINED
 #define SkPixelRef_DEFINED
 
-#include "../private/SkMutex.h"
-#include "../private/SkTDArray.h"
-#include "SkBitmap.h"
-#include "SkFilterQuality.h"
-#include "SkImageInfo.h"
-#include "SkPixmap.h"
-#include "SkRefCnt.h"
-#include "SkSize.h"
-#include "SkString.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkFilterQuality.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkPixmap.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkString.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkTDArray.h"
 
 #include <atomic>
 
diff --git a/include/core/SkPixmap.h b/include/core/SkPixmap.h
index 37a1b2d..d058da2 100644
--- a/include/core/SkPixmap.h
+++ b/include/core/SkPixmap.h
@@ -8,9 +8,9 @@
 #ifndef SkPixmap_DEFINED
 #define SkPixmap_DEFINED
 
-#include "SkColor.h"
-#include "SkFilterQuality.h"
-#include "SkImageInfo.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkFilterQuality.h"
+#include "include/core/SkImageInfo.h"
 
 class SkData;
 struct SkMask;
diff --git a/include/core/SkPngChunkReader.h b/include/core/SkPngChunkReader.h
index 0cd6634..0ee8a9e 100644
--- a/include/core/SkPngChunkReader.h
+++ b/include/core/SkPngChunkReader.h
@@ -8,8 +8,8 @@
 #ifndef SkPngChunkReader_DEFINED
 #define SkPngChunkReader_DEFINED
 
-#include "SkTypes.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypes.h"
 
 /**
  *  SkPngChunkReader
diff --git a/include/core/SkPoint.h b/include/core/SkPoint.h
index 93b0bb0..2f273aa 100644
--- a/include/core/SkPoint.h
+++ b/include/core/SkPoint.h
@@ -8,9 +8,9 @@
 #ifndef SkPoint_DEFINED
 #define SkPoint_DEFINED
 
-#include "SkMath.h"
-#include "SkScalar.h"
-#include "../private/SkSafe32.h"
+#include "include/core/SkMath.h"
+#include "include/core/SkScalar.h"
+#include "include/private/SkSafe32.h"
 
 struct SkIPoint;
 
diff --git a/include/core/SkPoint3.h b/include/core/SkPoint3.h
index 91779da..15b082a 100644
--- a/include/core/SkPoint3.h
+++ b/include/core/SkPoint3.h
@@ -8,7 +8,7 @@
 #ifndef SkPoint3_DEFINED
 #define SkPoint3_DEFINED
 
-#include "SkPoint.h"
+#include "include/core/SkPoint.h"
 
 struct SK_API SkPoint3 {
     SkScalar fX, fY, fZ;
diff --git a/include/core/SkPromiseImageTexture.h b/include/core/SkPromiseImageTexture.h
index 459a388..467e501 100644
--- a/include/core/SkPromiseImageTexture.h
+++ b/include/core/SkPromiseImageTexture.h
@@ -8,9 +8,9 @@
 #ifndef SkPromiseImageTexture_DEFINED
 #define SkPromiseImageTexture_DEFINED
 
-#include "../private/GrResourceKey.h"
-#include "GrBackendSurface.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/private/GrResourceKey.h"
 
 #if SK_SUPPORT_GPU
 /**
diff --git a/include/core/SkRRect.h b/include/core/SkRRect.h
index f9fa009..7bc8387 100644
--- a/include/core/SkRRect.h
+++ b/include/core/SkRRect.h
@@ -8,8 +8,8 @@
 #ifndef SkRRect_DEFINED
 #define SkRRect_DEFINED
 
-#include "SkRect.h"
-#include "SkPoint.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
 
 class SkPath;
 class SkMatrix;
diff --git a/include/core/SkRSXform.h b/include/core/SkRSXform.h
index b11dea7..9165331 100644
--- a/include/core/SkRSXform.h
+++ b/include/core/SkRSXform.h
@@ -8,8 +8,8 @@
 #ifndef SkRSXform_DEFINED
 #define SkRSXform_DEFINED
 
-#include "SkPoint.h"
-#include "SkSize.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkSize.h"
 
 /**
  *  A compressed form of a rotation+scale matrix.
diff --git a/include/core/SkRWBuffer.h b/include/core/SkRWBuffer.h
index e59a56b..c0d24f6 100644
--- a/include/core/SkRWBuffer.h
+++ b/include/core/SkRWBuffer.h
@@ -8,7 +8,7 @@
 #ifndef SkRWBuffer_DEFINED
 #define SkRWBuffer_DEFINED
 
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
 
 struct SkBufferBlock;
 struct SkBufferHead;
diff --git a/include/core/SkRasterHandleAllocator.h b/include/core/SkRasterHandleAllocator.h
index e1cc830..6f5fe68 100644
--- a/include/core/SkRasterHandleAllocator.h
+++ b/include/core/SkRasterHandleAllocator.h
@@ -8,7 +8,7 @@
 #ifndef SkRasterHandleAllocator_DEFINED
 #define SkRasterHandleAllocator_DEFINED
 
-#include "SkImageInfo.h"
+#include "include/core/SkImageInfo.h"
 
 class SkBitmap;
 class SkCanvas;
diff --git a/include/core/SkRect.h b/include/core/SkRect.h
index ac84e39..086d29f 100644
--- a/include/core/SkRect.h
+++ b/include/core/SkRect.h
@@ -8,10 +8,10 @@
 #ifndef SkRect_DEFINED
 #define SkRect_DEFINED
 
-#include "SkPoint.h"
-#include "SkSize.h"
-#include "../private/SkSafe32.h"
-#include "../private/SkTFitsIn.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkSize.h"
+#include "include/private/SkSafe32.h"
+#include "include/private/SkTFitsIn.h"
 
 #include <utility>
 
diff --git a/include/core/SkRefCnt.h b/include/core/SkRefCnt.h
index 2809960..5227323 100644
--- a/include/core/SkRefCnt.h
+++ b/include/core/SkRefCnt.h
@@ -8,7 +8,7 @@
 #ifndef SkRefCnt_DEFINED
 #define SkRefCnt_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #include <atomic>
 #include <cstddef>
diff --git a/include/core/SkRegion.h b/include/core/SkRegion.h
index f9d2ac7..cfe25c5 100644
--- a/include/core/SkRegion.h
+++ b/include/core/SkRegion.h
@@ -8,7 +8,7 @@
 #ifndef SkRegion_DEFINED
 #define SkRegion_DEFINED
 
-#include "SkRect.h"
+#include "include/core/SkRect.h"
 
 class SkPath;
 class SkRgnBuilder;
diff --git a/include/core/SkScalar.h b/include/core/SkScalar.h
index 6763fe9..64fea69 100644
--- a/include/core/SkScalar.h
+++ b/include/core/SkScalar.h
@@ -8,7 +8,7 @@
 #ifndef SkScalar_DEFINED
 #define SkScalar_DEFINED
 
-#include "../private/SkFloatingPoint.h"
+#include "include/private/SkFloatingPoint.h"
 
 #undef SK_SCALAR_IS_FLOAT
 #define SK_SCALAR_IS_FLOAT  1
diff --git a/include/core/SkSerialProcs.h b/include/core/SkSerialProcs.h
index e5a886a..87e10d8 100644
--- a/include/core/SkSerialProcs.h
+++ b/include/core/SkSerialProcs.h
@@ -8,9 +8,9 @@
 #ifndef SkSerialProcs_DEFINED
 #define SkSerialProcs_DEFINED
 
-#include "SkImage.h"
-#include "SkPicture.h"
-#include "SkTypeface.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkTypeface.h"
 
 /**
  *  A serial-proc is asked to serialize the specified object (e.g. picture or image).
diff --git a/include/core/SkShader.h b/include/core/SkShader.h
index 261f14a..49bdbd2 100644
--- a/include/core/SkShader.h
+++ b/include/core/SkShader.h
@@ -8,13 +8,13 @@
 #ifndef SkShader_DEFINED
 #define SkShader_DEFINED
 
-#include "SkBlendMode.h"
-#include "SkColor.h"
-#include "SkFilterQuality.h"
-#include "SkFlattenable.h"
-#include "SkImageInfo.h"
-#include "SkMatrix.h"
-#include "SkTileMode.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkFilterQuality.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkTileMode.h"
 
 class SkArenaAlloc;
 class SkBitmap;
diff --git a/include/core/SkSize.h b/include/core/SkSize.h
index 9e87114..d40d844 100644
--- a/include/core/SkSize.h
+++ b/include/core/SkSize.h
@@ -8,7 +8,7 @@
 #ifndef SkSize_DEFINED
 #define SkSize_DEFINED
 
-#include "SkScalar.h"
+#include "include/core/SkScalar.h"
 
 struct SkISize {
     int32_t fWidth;
diff --git a/include/core/SkStream.h b/include/core/SkStream.h
index f1c1a14..659880d 100644
--- a/include/core/SkStream.h
+++ b/include/core/SkStream.h
@@ -8,10 +8,10 @@
 #ifndef SkStream_DEFINED
 #define SkStream_DEFINED
 
-#include "../private/SkTo.h"
-#include "SkData.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
+#include "include/core/SkData.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/private/SkTo.h"
 
 #include <memory.h>
 
diff --git a/include/core/SkString.h b/include/core/SkString.h
index f0c74f0..27649ac 100644
--- a/include/core/SkString.h
+++ b/include/core/SkString.h
@@ -9,10 +9,10 @@
 #ifndef SkString_DEFINED
 #define SkString_DEFINED
 
-#include "../private/SkTArray.h"
-#include "../private/SkTo.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTo.h"
 
 #include <atomic>
 #include <stdarg.h>
diff --git a/include/core/SkStrokeRec.h b/include/core/SkStrokeRec.h
index 1a224cf..6fa3872 100644
--- a/include/core/SkStrokeRec.h
+++ b/include/core/SkStrokeRec.h
@@ -8,8 +8,8 @@
 #ifndef SkStrokeRec_DEFINED
 #define SkStrokeRec_DEFINED
 
-#include "../private/SkMacros.h"
-#include "SkPaint.h"
+#include "include/core/SkPaint.h"
+#include "include/private/SkMacros.h"
 
 class SkPath;
 
diff --git a/include/core/SkSurface.h b/include/core/SkSurface.h
index 3a29772..71b0a52 100644
--- a/include/core/SkSurface.h
+++ b/include/core/SkSurface.h
@@ -8,11 +8,11 @@
 #ifndef SkSurface_DEFINED
 #define SkSurface_DEFINED
 
-#include "SkRefCnt.h"
-#include "SkImage.h"
-#include "SkSurfaceProps.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSurfaceProps.h"
 
-#include "GrTypes.h"
+#include "include/gpu/GrTypes.h"
 
 #if defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 26
 #include <android/hardware_buffer.h>
diff --git a/include/core/SkSurfaceCharacterization.h b/include/core/SkSurfaceCharacterization.h
index 4d0aa2b..74416e2 100644
--- a/include/core/SkSurfaceCharacterization.h
+++ b/include/core/SkSurfaceCharacterization.h
@@ -8,18 +8,18 @@
 #ifndef SkSurfaceCharacterization_DEFINED
 #define SkSurfaceCharacterization_DEFINED
 
-#include "GrTypes.h"
+#include "include/gpu/GrTypes.h"
 
-#include "SkColorSpace.h"
-#include "SkRefCnt.h"
-#include "SkSurfaceProps.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSurfaceProps.h"
 
 class SkColorSpace;
 
 #if SK_SUPPORT_GPU
 // TODO: remove the GrContext.h include once Flutter is updated
-#include "GrContext.h"
-#include "GrContextThreadSafeProxy.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrContextThreadSafeProxy.h"
 
 /** \class SkSurfaceCharacterization
     A surface characterization contains all the information Ganesh requires to makes its internal
diff --git a/include/core/SkSurfaceProps.h b/include/core/SkSurfaceProps.h
index 6661799..673189f 100644
--- a/include/core/SkSurfaceProps.h
+++ b/include/core/SkSurfaceProps.h
@@ -8,7 +8,7 @@
 #ifndef SkSurfaceProps_DEFINED
 #define SkSurfaceProps_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 /**
  *  Description of how the LCD strips are arranged for each pixel. If this is unknown, or the
diff --git a/include/core/SkSwizzle.h b/include/core/SkSwizzle.h
index 253f4e3..61e93b2 100644
--- a/include/core/SkSwizzle.h
+++ b/include/core/SkSwizzle.h
@@ -8,7 +8,7 @@
 #ifndef SkSwizzle_DEFINED
 #define SkSwizzle_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 /**
   Swizzles byte order of |count| 32-bit pixels, swapping R and B.
diff --git a/include/core/SkTextBlob.h b/include/core/SkTextBlob.h
index 6b61ba3..b73835b 100644
--- a/include/core/SkTextBlob.h
+++ b/include/core/SkTextBlob.h
@@ -8,11 +8,11 @@
 #ifndef SkTextBlob_DEFINED
 #define SkTextBlob_DEFINED
 
-#include "../private/SkTemplates.h"
-#include "SkFont.h"
-#include "SkPaint.h"
-#include "SkString.h"
-#include "SkRefCnt.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkString.h"
+#include "include/private/SkTemplates.h"
 
 #include <atomic>
 
diff --git a/include/core/SkTileMode.h b/include/core/SkTileMode.h
index 8761b4c..8a9d020 100644
--- a/include/core/SkTileMode.h
+++ b/include/core/SkTileMode.h
@@ -8,7 +8,7 @@
 #ifndef SkTileModes_DEFINED
 #define SkTileModes_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 enum class SkTileMode {
     /**
diff --git a/include/core/SkTime.h b/include/core/SkTime.h
index 8a40c21..1f033ef 100644
--- a/include/core/SkTime.h
+++ b/include/core/SkTime.h
@@ -10,8 +10,8 @@
 #ifndef SkTime_DEFINED
 #define SkTime_DEFINED
 
-#include "../private/SkMacros.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkMacros.h"
 
 class SkString;
 
diff --git a/include/core/SkTraceMemoryDump.h b/include/core/SkTraceMemoryDump.h
index e9cb5b2..10f28b4 100644
--- a/include/core/SkTraceMemoryDump.h
+++ b/include/core/SkTraceMemoryDump.h
@@ -8,7 +8,7 @@
 #ifndef SkTraceMemoryDump_DEFINED
 #define SkTraceMemoryDump_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 class SkDiscardableMemory;
 
diff --git a/include/core/SkTypeface.h b/include/core/SkTypeface.h
index a09fdfd..edde619 100644
--- a/include/core/SkTypeface.h
+++ b/include/core/SkTypeface.h
@@ -8,15 +8,15 @@
 #ifndef SkTypeface_DEFINED
 #define SkTypeface_DEFINED
 
-#include "../private/SkNoncopyable.h"
-#include "../private/SkOnce.h"
-#include "../private/SkWeakRefCnt.h"
-#include "SkFontArguments.h"
-#include "SkFontParameters.h"
-#include "SkFontStyle.h"
-#include "SkFontTypes.h"
-#include "SkRect.h"
-#include "SkString.h"
+#include "include/core/SkFontArguments.h"
+#include "include/core/SkFontParameters.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkFontTypes.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkString.h"
+#include "include/private/SkNoncopyable.h"
+#include "include/private/SkOnce.h"
+#include "include/private/SkWeakRefCnt.h"
 
 class SkData;
 class SkDescriptor;
diff --git a/include/core/SkTypes.h b/include/core/SkTypes.h
index 3792b23..246c10c 100644
--- a/include/core/SkTypes.h
+++ b/include/core/SkTypes.h
@@ -9,13 +9,13 @@
 #define SkTypes_DEFINED
 
 // IWYU pragma: begin_exports
-#include "SkPreConfig.h"
+#include "include/core/SkPreConfig.h"
 #if defined (SK_USER_CONFIG_HEADER)
     #include SK_USER_CONFIG_HEADER
 #else
-    #include "SkUserConfig.h"
+    #include "include/config/SkUserConfig.h"
 #endif
-#include "SkPostConfig.h"
+#include "include/core/SkPostConfig.h"
 #include <stddef.h>
 #include <stdint.h>
 // IWYU pragma: end_exports
diff --git a/include/core/SkUnPreMultiply.h b/include/core/SkUnPreMultiply.h
index 4fa5d57..b492619 100644
--- a/include/core/SkUnPreMultiply.h
+++ b/include/core/SkUnPreMultiply.h
@@ -13,7 +13,7 @@
 #ifndef SkUnPreMultiply_DEFINED
 #define SkUnPreMultiply_DEFINED
 
-#include "SkColor.h"
+#include "include/core/SkColor.h"
 
 class SK_API SkUnPreMultiply {
 public:
diff --git a/include/core/SkVertices.h b/include/core/SkVertices.h
index 63a27a0..c07e2da 100644
--- a/include/core/SkVertices.h
+++ b/include/core/SkVertices.h
@@ -8,11 +8,11 @@
 #ifndef SkVertices_DEFINED
 #define SkVertices_DEFINED
 
-#include "SkColor.h"
-#include "SkData.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkData.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
 
 /**
  * An immutable set of vertex data that can be used with SkCanvas::drawVertices.
diff --git a/include/core/SkYUVAIndex.h b/include/core/SkYUVAIndex.h
index b9bc396..5be0cce 100644
--- a/include/core/SkYUVAIndex.h
+++ b/include/core/SkYUVAIndex.h
@@ -8,7 +8,7 @@
 #ifndef SkYUVAIndex_DEFINED
 #define SkYUVAIndex_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 /** \enum SkColorChannel
     Describes different color channels one can manipulate
diff --git a/include/core/SkYUVASizeInfo.h b/include/core/SkYUVASizeInfo.h
index 8782ff8..4868c2d 100644
--- a/include/core/SkYUVASizeInfo.h
+++ b/include/core/SkYUVASizeInfo.h
@@ -8,9 +8,9 @@
 #ifndef SkYUVASizeInfo_DEFINED
 #define SkYUVASizeInfo_DEFINED
 
-#include "SkEncodedOrigin.h"
-#include "SkImageInfo.h"
-#include "SkSize.h"
+#include "include/codec/SkEncodedOrigin.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkSize.h"
 
 struct SK_API SkYUVASizeInfo {
     static constexpr auto kMaxCount = 4;
diff --git a/include/docs/SkPDFDocument.h b/include/docs/SkPDFDocument.h
index 07a7310..c208b7f 100644
--- a/include/docs/SkPDFDocument.h
+++ b/include/docs/SkPDFDocument.h
@@ -3,11 +3,11 @@
 #ifndef SkPDFDocument_DEFINED
 #define SkPDFDocument_DEFINED
 
-#include "SkDocument.h"
+#include "include/core/SkDocument.h"
 
-#include "SkScalar.h"
-#include "SkString.h"
-#include "SkTime.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTime.h"
 
 class SkExecutor;
 
diff --git a/include/docs/SkXPSDocument.h b/include/docs/SkXPSDocument.h
index a669f47..5cd0777 100644
--- a/include/docs/SkXPSDocument.h
+++ b/include/docs/SkXPSDocument.h
@@ -8,11 +8,11 @@
 #ifndef SkXPSDocument_DEFINED
 #define SkXPSDocument_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #ifdef SK_BUILD_FOR_WIN
 
-#include "SkDocument.h"
+#include "include/core/SkDocument.h"
 
 struct IXpsOMObjectFactory;
 
diff --git a/include/effects/Sk1DPathEffect.h b/include/effects/Sk1DPathEffect.h
index 1331005..34edfaa 100644
--- a/include/effects/Sk1DPathEffect.h
+++ b/include/effects/Sk1DPathEffect.h
@@ -8,9 +8,9 @@
 #ifndef Sk1DPathEffect_DEFINED
 #define Sk1DPathEffect_DEFINED
 
-#include "SkFlattenable.h"
-#include "SkPathEffect.h"
-#include "SkPath.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPathEffect.h"
 
 class SkPathMeasure;
 
diff --git a/include/effects/Sk2DPathEffect.h b/include/effects/Sk2DPathEffect.h
index 5d7a208..ea9057d 100644
--- a/include/effects/Sk2DPathEffect.h
+++ b/include/effects/Sk2DPathEffect.h
@@ -8,10 +8,10 @@
 #ifndef Sk2DPathEffect_DEFINED
 #define Sk2DPathEffect_DEFINED
 
-#include "SkFlattenable.h"
-#include "SkPath.h"
-#include "SkPathEffect.h"
-#include "SkMatrix.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPathEffect.h"
 
 class SK_API Sk2DPathEffect : public SkPathEffect {
 protected:
diff --git a/include/effects/SkAlphaThresholdFilter.h b/include/effects/SkAlphaThresholdFilter.h
index 4a9dc5c..f6ecaf6 100644
--- a/include/effects/SkAlphaThresholdFilter.h
+++ b/include/effects/SkAlphaThresholdFilter.h
@@ -8,7 +8,7 @@
 #ifndef SkAlphaThresholdFilter_DEFINED
 #define SkAlphaThresholdFilter_DEFINED
 
-#include "SkImageFilter.h"
+#include "include/core/SkImageFilter.h"
 
 class SkRegion;
 
diff --git a/include/effects/SkArithmeticImageFilter.h b/include/effects/SkArithmeticImageFilter.h
index a258774..e15eaa3 100644
--- a/include/effects/SkArithmeticImageFilter.h
+++ b/include/effects/SkArithmeticImageFilter.h
@@ -8,7 +8,7 @@
 #ifndef SkArithmeticImageFilter_DEFINED
 #define SkArithmeticImageFilter_DEFINED
 
-#include "SkImageFilter.h"
+#include "include/core/SkImageFilter.h"
 
 struct ArithmeticFPInputs {
     ArithmeticFPInputs() {
diff --git a/include/effects/SkBlurDrawLooper.h b/include/effects/SkBlurDrawLooper.h
index 13f5b8a..4a1ae83 100644
--- a/include/effects/SkBlurDrawLooper.h
+++ b/include/effects/SkBlurDrawLooper.h
@@ -9,7 +9,7 @@
 #ifndef SkBlurDrawLooper_DEFINED
 #define SkBlurDrawLooper_DEFINED
 
-#include "SkDrawLooper.h"
+#include "include/core/SkDrawLooper.h"
 
 /**
  *  Draws a shadow of the object (possibly offset), and then draws the original object in
diff --git a/include/effects/SkBlurImageFilter.h b/include/effects/SkBlurImageFilter.h
index 2bd9d61..b1df75b 100644
--- a/include/effects/SkBlurImageFilter.h
+++ b/include/effects/SkBlurImageFilter.h
@@ -8,7 +8,7 @@
 #ifndef SkBlurImageFilter_DEFINED
 #define SkBlurImageFilter_DEFINED
 
-#include "SkImageFilter.h"
+#include "include/core/SkImageFilter.h"
 
 class SK_API SkBlurImageFilter {
 public:
diff --git a/include/effects/SkBlurMaskFilter.h b/include/effects/SkBlurMaskFilter.h
index 86e7d12..1b93198 100644
--- a/include/effects/SkBlurMaskFilter.h
+++ b/include/effects/SkBlurMaskFilter.h
@@ -9,10 +9,10 @@
 #define SkBlurMaskFilter_DEFINED
 
 // we include this since our callers will need to at least be able to ref/unref
-#include "SkMaskFilter.h"
-#include "SkRect.h"
-#include "SkScalar.h"
-#include "SkBlurTypes.h"
+#include "include/core/SkBlurTypes.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkScalar.h"
 
 class SkRRect;
 
diff --git a/include/effects/SkColorFilterImageFilter.h b/include/effects/SkColorFilterImageFilter.h
index 1237e00..ff5b878 100644
--- a/include/effects/SkColorFilterImageFilter.h
+++ b/include/effects/SkColorFilterImageFilter.h
@@ -8,8 +8,8 @@
 #ifndef SkColorFilterImageFilter_DEFINED
 #define SkColorFilterImageFilter_DEFINED
 
-#include "SkImageFilter.h"
-#include "SkColorFilter.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkImageFilter.h"
 
 class SK_API SkColorFilterImageFilter : public SkImageFilter {
 public:
diff --git a/include/effects/SkColorMatrix.h b/include/effects/SkColorMatrix.h
index 2aef88e..cfc1f7d 100644
--- a/include/effects/SkColorMatrix.h
+++ b/include/effects/SkColorMatrix.h
@@ -8,7 +8,7 @@
 #ifndef SkColorMatrix_DEFINED
 #define SkColorMatrix_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #include <memory.h>
 
 class SK_API SkColorMatrix {
diff --git a/include/effects/SkColorMatrixFilter.h b/include/effects/SkColorMatrixFilter.h
index c293717..144c968 100644
--- a/include/effects/SkColorMatrixFilter.h
+++ b/include/effects/SkColorMatrixFilter.h
@@ -8,8 +8,8 @@
 #ifndef SkColorMatrixFilter_DEFINED
 #define SkColorMatrixFilter_DEFINED
 
-#include "SkColorFilter.h"
-#include "SkColorMatrix.h"
+#include "include/core/SkColorFilter.h"
+#include "include/effects/SkColorMatrix.h"
 
 class SK_API SkColorMatrixFilter : public SkColorFilter {
 public:
diff --git a/include/effects/SkComposeImageFilter.h b/include/effects/SkComposeImageFilter.h
index a2ab996..dd50654 100644
--- a/include/effects/SkComposeImageFilter.h
+++ b/include/effects/SkComposeImageFilter.h
@@ -8,8 +8,8 @@
 #ifndef SkComposeImageFilter_DEFINED
 #define SkComposeImageFilter_DEFINED
 
-#include "SkFlattenable.h"
-#include "SkImageFilter.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkImageFilter.h"
 
 class SK_API SkComposeImageFilter : public SkImageFilter {
 public:
diff --git a/include/effects/SkCornerPathEffect.h b/include/effects/SkCornerPathEffect.h
index 539453a..ac041b5 100644
--- a/include/effects/SkCornerPathEffect.h
+++ b/include/effects/SkCornerPathEffect.h
@@ -8,8 +8,8 @@
 #ifndef SkCornerPathEffect_DEFINED
 #define SkCornerPathEffect_DEFINED
 
-#include "SkFlattenable.h"
-#include "SkPathEffect.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkPathEffect.h"
 
 /** \class SkCornerPathEffect
 
diff --git a/include/effects/SkDashPathEffect.h b/include/effects/SkDashPathEffect.h
index 78ddb16..d6ca912 100644
--- a/include/effects/SkDashPathEffect.h
+++ b/include/effects/SkDashPathEffect.h
@@ -8,7 +8,7 @@
 #ifndef SkDashPathEffect_DEFINED
 #define SkDashPathEffect_DEFINED
 
-#include "SkPathEffect.h"
+#include "include/core/SkPathEffect.h"
 
 class SK_API SkDashPathEffect {
 public:
diff --git a/include/effects/SkDiscretePathEffect.h b/include/effects/SkDiscretePathEffect.h
index dffb39e..007844b 100644
--- a/include/effects/SkDiscretePathEffect.h
+++ b/include/effects/SkDiscretePathEffect.h
@@ -8,8 +8,8 @@
 #ifndef SkDiscretePathEffect_DEFINED
 #define SkDiscretePathEffect_DEFINED
 
-#include "SkFlattenable.h"
-#include "SkPathEffect.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkPathEffect.h"
 
 /** \class SkDiscretePathEffect
 
diff --git a/include/effects/SkDisplacementMapEffect.h b/include/effects/SkDisplacementMapEffect.h
index 5f8d4f9..c01197c 100644
--- a/include/effects/SkDisplacementMapEffect.h
+++ b/include/effects/SkDisplacementMapEffect.h
@@ -8,7 +8,7 @@
 #ifndef SkDisplacementMapEffect_DEFINED
 #define SkDisplacementMapEffect_DEFINED
 
-#include "SkImageFilter.h"
+#include "include/core/SkImageFilter.h"
 
 class SK_API SkDisplacementMapEffect : public SkImageFilter {
 public:
diff --git a/include/effects/SkDropShadowImageFilter.h b/include/effects/SkDropShadowImageFilter.h
index 88dfe30..fed8a41 100644
--- a/include/effects/SkDropShadowImageFilter.h
+++ b/include/effects/SkDropShadowImageFilter.h
@@ -8,10 +8,10 @@
 #ifndef SkDropShadowImageFilter_DEFINED
 #define SkDropShadowImageFilter_DEFINED
 
-#include "SkColor.h"
-#include "SkFlattenable.h"
-#include "SkImageFilter.h"
-#include "SkScalar.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkScalar.h"
 
 class SK_API SkDropShadowImageFilter : public SkImageFilter {
 public:
diff --git a/include/effects/SkGradientShader.h b/include/effects/SkGradientShader.h
index e5910c6..daa6ed0 100644
--- a/include/effects/SkGradientShader.h
+++ b/include/effects/SkGradientShader.h
@@ -8,7 +8,7 @@
 #ifndef SkGradientShader_DEFINED
 #define SkGradientShader_DEFINED
 
-#include "SkShader.h"
+#include "include/core/SkShader.h"
 
 /** \class SkGradientShader
 
diff --git a/include/effects/SkHighContrastFilter.h b/include/effects/SkHighContrastFilter.h
index 8d7dd18..a8860c2 100644
--- a/include/effects/SkHighContrastFilter.h
+++ b/include/effects/SkHighContrastFilter.h
@@ -8,8 +8,8 @@
 #ifndef SkHighContrastFilter_DEFINED
 #define SkHighContrastFilter_DEFINED
 
-#include "SkColorFilter.h"
-#include "SkPaint.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkPaint.h"
 
 /**
  *  Configuration struct for SkHighContrastFilter.
diff --git a/include/effects/SkImageSource.h b/include/effects/SkImageSource.h
index 6a669e6..dc02f3d 100644
--- a/include/effects/SkImageSource.h
+++ b/include/effects/SkImageSource.h
@@ -8,9 +8,9 @@
 #ifndef SkImageSource_DEFINED
 #define SkImageSource_DEFINED
 
-#include "SkFlattenable.h"
-#include "SkImage.h"
-#include "SkImageFilter.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageFilter.h"
 
 class SK_API SkImageSource : public SkImageFilter {
 public:
diff --git a/include/effects/SkLayerDrawLooper.h b/include/effects/SkLayerDrawLooper.h
index 5cb3b18..c7763b7 100644
--- a/include/effects/SkLayerDrawLooper.h
+++ b/include/effects/SkLayerDrawLooper.h
@@ -8,10 +8,10 @@
 #ifndef SkLayerDrawLooper_DEFINED
 #define SkLayerDrawLooper_DEFINED
 
-#include "SkDrawLooper.h"
-#include "SkPaint.h"
-#include "SkPoint.h"
-#include "SkBlendMode.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkDrawLooper.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPoint.h"
 
 class SK_API SkLayerDrawLooper : public SkDrawLooper {
 public:
diff --git a/include/effects/SkLightingImageFilter.h b/include/effects/SkLightingImageFilter.h
index ed1341a..dec27cd 100644
--- a/include/effects/SkLightingImageFilter.h
+++ b/include/effects/SkLightingImageFilter.h
@@ -8,8 +8,8 @@
 #ifndef SkLightingImageFilter_DEFINED
 #define SkLightingImageFilter_DEFINED
 
-#include "SkImageFilter.h"
-#include "SkColor.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkImageFilter.h"
 
 
 class SkImageFilterLight;
diff --git a/include/effects/SkLumaColorFilter.h b/include/effects/SkLumaColorFilter.h
index af380cf..54d2672 100644
--- a/include/effects/SkLumaColorFilter.h
+++ b/include/effects/SkLumaColorFilter.h
@@ -8,8 +8,8 @@
 #ifndef SkLumaColorFilter_DEFINED
 #define SkLumaColorFilter_DEFINED
 
-#include "SkColorFilter.h"
-#include "SkRefCnt.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkRefCnt.h"
 
 class SkRasterPipeline;
 
@@ -31,7 +31,7 @@
  *  SkLumaColorFilter and feColorMatrix+luminanceToAlpha agree there.)
  */
 
- #include "SkFlattenable.h"
+ #include "include/core/SkFlattenable.h"
 
 class SK_API SkLumaColorFilter : public SkColorFilter {
 public:
diff --git a/include/effects/SkMagnifierImageFilter.h b/include/effects/SkMagnifierImageFilter.h
index 2fb7ab3..65adcdc 100644
--- a/include/effects/SkMagnifierImageFilter.h
+++ b/include/effects/SkMagnifierImageFilter.h
@@ -9,8 +9,8 @@
 #ifndef SkMagnifierImageFilter_DEFINED
 #define SkMagnifierImageFilter_DEFINED
 
-#include "SkRect.h"
-#include "SkImageFilter.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkRect.h"
 
 class SK_API SkMagnifierImageFilter : public SkImageFilter {
 public:
diff --git a/include/effects/SkMatrixConvolutionImageFilter.h b/include/effects/SkMatrixConvolutionImageFilter.h
index 5c2dfbd..e98fb55 100644
--- a/include/effects/SkMatrixConvolutionImageFilter.h
+++ b/include/effects/SkMatrixConvolutionImageFilter.h
@@ -8,11 +8,11 @@
 #ifndef SkMatrixConvolutionImageFilter_DEFINED
 #define SkMatrixConvolutionImageFilter_DEFINED
 
-#include "SkFlattenable.h"
-#include "SkImageFilter.h"
-#include "SkScalar.h"
-#include "SkSize.h"
-#include "SkPoint.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkSize.h"
 
 class SkBitmap;
 
diff --git a/include/effects/SkMergeImageFilter.h b/include/effects/SkMergeImageFilter.h
index 7eacb8d..59c1b8a 100644
--- a/include/effects/SkMergeImageFilter.h
+++ b/include/effects/SkMergeImageFilter.h
@@ -8,8 +8,8 @@
 #ifndef SkMergeImageFilter_DEFINED
 #define SkMergeImageFilter_DEFINED
 
-#include "SkFlattenable.h"
-#include "SkImageFilter.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkImageFilter.h"
 
 class SK_API SkMergeImageFilter : public SkImageFilter {
 public:
diff --git a/include/effects/SkMorphologyImageFilter.h b/include/effects/SkMorphologyImageFilter.h
index 7059cc0..0a1ce4d 100644
--- a/include/effects/SkMorphologyImageFilter.h
+++ b/include/effects/SkMorphologyImageFilter.h
@@ -8,10 +8,10 @@
 #ifndef SkMorphologyImageFilter_DEFINED
 #define SkMorphologyImageFilter_DEFINED
 
-#include "SkColor.h"
-#include "SkFlattenable.h"
-#include "SkImageFilter.h"
-#include "SkSize.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkSize.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 class SK_API SkMorphologyImageFilter : public SkImageFilter {
diff --git a/include/effects/SkOffsetImageFilter.h b/include/effects/SkOffsetImageFilter.h
index f5f12c8..08d055b 100644
--- a/include/effects/SkOffsetImageFilter.h
+++ b/include/effects/SkOffsetImageFilter.h
@@ -8,9 +8,9 @@
 #ifndef SkOffsetImageFilter_DEFINED
 #define SkOffsetImageFilter_DEFINED
 
-#include "SkFlattenable.h"
-#include "SkImageFilter.h"
-#include "SkPoint.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkPoint.h"
 
 class SK_API SkOffsetImageFilter : public SkImageFilter {
 public:
diff --git a/include/effects/SkOpPathEffect.h b/include/effects/SkOpPathEffect.h
index d97e3b3..9686644 100644
--- a/include/effects/SkOpPathEffect.h
+++ b/include/effects/SkOpPathEffect.h
@@ -8,9 +8,9 @@
 #ifndef SkOpPathEffect_DEFINED
 #define SkOpPathEffect_DEFINED
 
-#include "SkPathEffect.h"
-#include "SkPaint.h"
-#include "SkPathOps.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPathEffect.h"
+#include "include/pathops/SkPathOps.h"
 
 class SK_API SkMergePathEffect {
 public:
diff --git a/include/effects/SkOverdrawColorFilter.h b/include/effects/SkOverdrawColorFilter.h
index 9777dd0..74f25d6 100644
--- a/include/effects/SkOverdrawColorFilter.h
+++ b/include/effects/SkOverdrawColorFilter.h
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorFilter.h"
-#include "SkFlattenable.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkFlattenable.h"
 
 #ifndef SkOverdrawColorFilter_DEFINED
 #define SkOverdrawColorFilter_DEFINED
diff --git a/include/effects/SkPaintImageFilter.h b/include/effects/SkPaintImageFilter.h
index 48e0116..1e57520 100644
--- a/include/effects/SkPaintImageFilter.h
+++ b/include/effects/SkPaintImageFilter.h
@@ -8,9 +8,9 @@
 #ifndef SkPaintImageFilter_DEFINED
 #define SkPaintImageFilter_DEFINED
 
-#include "SkFlattenable.h"
-#include "SkImageFilter.h"
-#include "SkPaint.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkPaint.h"
 
 class SK_API SkPaintImageFilter : public SkImageFilter {
 public:
diff --git a/include/effects/SkPerlinNoiseShader.h b/include/effects/SkPerlinNoiseShader.h
index dba8c33..0765763 100644
--- a/include/effects/SkPerlinNoiseShader.h
+++ b/include/effects/SkPerlinNoiseShader.h
@@ -8,7 +8,7 @@
 #ifndef SkPerlinNoiseShader_DEFINED
 #define SkPerlinNoiseShader_DEFINED
 
-#include "SkShader.h"
+#include "include/core/SkShader.h"
 
 /** \class SkPerlinNoiseShader
 
diff --git a/include/effects/SkPictureImageFilter.h b/include/effects/SkPictureImageFilter.h
index 4e2fd20..5014262 100644
--- a/include/effects/SkPictureImageFilter.h
+++ b/include/effects/SkPictureImageFilter.h
@@ -8,9 +8,9 @@
 #ifndef SkPictureImageFilter_DEFINED
 #define SkPictureImageFilter_DEFINED
 
-#include "SkFlattenable.h"
-#include "SkImageFilter.h"
-#include "SkPicture.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkPicture.h"
 
 class SK_API SkPictureImageFilter : public SkImageFilter {
 public:
diff --git a/include/effects/SkShaderMaskFilter.h b/include/effects/SkShaderMaskFilter.h
index 03ec5b8..2b25d36 100644
--- a/include/effects/SkShaderMaskFilter.h
+++ b/include/effects/SkShaderMaskFilter.h
@@ -8,7 +8,7 @@
 #ifndef SkShaderMaskFilter_DEFINED
 #define SkShaderMaskFilter_DEFINED
 
-#include "SkMaskFilter.h"
+#include "include/core/SkMaskFilter.h"
 
 class SkShader;
 
diff --git a/include/effects/SkTableColorFilter.h b/include/effects/SkTableColorFilter.h
index 69f525a..ab964aa 100644
--- a/include/effects/SkTableColorFilter.h
+++ b/include/effects/SkTableColorFilter.h
@@ -8,7 +8,7 @@
 #ifndef SkTableColorFilter_DEFINED
 #define SkTableColorFilter_DEFINED
 
-#include "SkColorFilter.h"
+#include "include/core/SkColorFilter.h"
 
 class SK_API SkTableColorFilter {
 public:
diff --git a/include/effects/SkTableMaskFilter.h b/include/effects/SkTableMaskFilter.h
index eb6ccb0..03535a6 100644
--- a/include/effects/SkTableMaskFilter.h
+++ b/include/effects/SkTableMaskFilter.h
@@ -8,8 +8,8 @@
 #ifndef SkTableMaskFilter_DEFINED
 #define SkTableMaskFilter_DEFINED
 
-#include "SkMaskFilter.h"
-#include "SkScalar.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkScalar.h"
 
 /** \class SkTableMaskFilter
 
diff --git a/include/effects/SkTileImageFilter.h b/include/effects/SkTileImageFilter.h
index b482717..0fc0f89 100644
--- a/include/effects/SkTileImageFilter.h
+++ b/include/effects/SkTileImageFilter.h
@@ -8,8 +8,8 @@
 #ifndef SkTileImageFilter_DEFINED
 #define SkTileImageFilter_DEFINED
 
-#include "SkFlattenable.h"
-#include "SkImageFilter.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkImageFilter.h"
 
 class SK_API SkTileImageFilter : public SkImageFilter {
 public:
diff --git a/include/effects/SkTrimPathEffect.h b/include/effects/SkTrimPathEffect.h
index e96b94f..705d1c2 100644
--- a/include/effects/SkTrimPathEffect.h
+++ b/include/effects/SkTrimPathEffect.h
@@ -8,7 +8,7 @@
 #ifndef SkTrimPathEffect_DEFINED
 #define SkTrimPathEffect_DEFINED
 
-#include "SkPathEffect.h"
+#include "include/core/SkPathEffect.h"
 
 class SK_API SkTrimPathEffect {
 public:
diff --git a/include/effects/SkXfermodeImageFilter.h b/include/effects/SkXfermodeImageFilter.h
index 8ccceb2..5ca3f11 100644
--- a/include/effects/SkXfermodeImageFilter.h
+++ b/include/effects/SkXfermodeImageFilter.h
@@ -8,9 +8,9 @@
 #ifndef SkXfermodeImageFilter_DEFINED
 #define SkXfermodeImageFilter_DEFINED
 
-#include "SkArithmeticImageFilter.h"
-#include "SkBlendMode.h"
-#include "SkImageFilter.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkImageFilter.h"
+#include "include/effects/SkArithmeticImageFilter.h"
 
 /**
  * This filter takes a SkBlendMode, and uses it to composite the foreground over the background.
diff --git a/include/encode/SkEncoder.h b/include/encode/SkEncoder.h
index 1b4f559..1a9c37e 100644
--- a/include/encode/SkEncoder.h
+++ b/include/encode/SkEncoder.h
@@ -8,9 +8,9 @@
 #ifndef SkEncoder_DEFINED
 #define SkEncoder_DEFINED
 
-#include "../private/SkNoncopyable.h"
-#include "../private/SkTemplates.h"
-#include "SkPixmap.h"
+#include "include/core/SkPixmap.h"
+#include "include/private/SkNoncopyable.h"
+#include "include/private/SkTemplates.h"
 
 class SK_API SkEncoder : SkNoncopyable {
 public:
diff --git a/include/encode/SkJpegEncoder.h b/include/encode/SkJpegEncoder.h
index 5e657a5..e900cd9 100644
--- a/include/encode/SkJpegEncoder.h
+++ b/include/encode/SkJpegEncoder.h
@@ -8,7 +8,7 @@
 #ifndef SkJpegEncoder_DEFINED
 #define SkJpegEncoder_DEFINED
 
-#include "SkEncoder.h"
+#include "include/encode/SkEncoder.h"
 
 class SkJpegEncoderMgr;
 class SkWStream;
diff --git a/include/encode/SkPngEncoder.h b/include/encode/SkPngEncoder.h
index 2e1f7d7..bf24bc5 100644
--- a/include/encode/SkPngEncoder.h
+++ b/include/encode/SkPngEncoder.h
@@ -8,8 +8,8 @@
 #ifndef SkPngEncoder_DEFINED
 #define SkPngEncoder_DEFINED
 
-#include "SkEncoder.h"
-#include "SkDataTable.h"
+#include "include/core/SkDataTable.h"
+#include "include/encode/SkEncoder.h"
 
 class SkPngEncoderMgr;
 class SkWStream;
diff --git a/include/encode/SkWebpEncoder.h b/include/encode/SkWebpEncoder.h
index d4e0535..25f986a 100644
--- a/include/encode/SkWebpEncoder.h
+++ b/include/encode/SkWebpEncoder.h
@@ -8,7 +8,7 @@
 #ifndef SkWebpEncoder_DEFINED
 #define SkWebpEncoder_DEFINED
 
-#include "SkEncoder.h"
+#include "include/encode/SkEncoder.h"
 
 class SkWStream;
 
diff --git a/include/gpu/GrBackendDrawableInfo.h b/include/gpu/GrBackendDrawableInfo.h
index e25b954..bda1e76 100644
--- a/include/gpu/GrBackendDrawableInfo.h
+++ b/include/gpu/GrBackendDrawableInfo.h
@@ -8,9 +8,9 @@
 #ifndef GrBackendDrawableInfo_DEFINED
 #define GrBackendDrawableInfo_DEFINED
 
-#include "GrTypes.h"
+#include "include/gpu/GrTypes.h"
 
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
 
 class SK_API GrBackendDrawableInfo {
 public:
diff --git a/include/gpu/GrBackendSemaphore.h b/include/gpu/GrBackendSemaphore.h
index bf49356..1b91737 100644
--- a/include/gpu/GrBackendSemaphore.h
+++ b/include/gpu/GrBackendSemaphore.h
@@ -8,10 +8,10 @@
 #ifndef GrBackendSemaphore_DEFINED
 #define GrBackendSemaphore_DEFINED
 
-#include "GrTypes.h"
+#include "include/gpu/GrTypes.h"
 
-#include "gl/GrGLTypes.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/gl/GrGLTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
 
 /**
  * Wrapper class for passing into and receiving data from Ganesh about a backend semaphore object.
diff --git a/include/gpu/GrBackendSurface.h b/include/gpu/GrBackendSurface.h
index 3ccec3a..350887e 100644
--- a/include/gpu/GrBackendSurface.h
+++ b/include/gpu/GrBackendSurface.h
@@ -8,16 +8,16 @@
 #ifndef GrBackendSurface_DEFINED
 #define GrBackendSurface_DEFINED
 
-#include "GrTypes.h"
-#include "gl/GrGLTypes.h"
-#include "mock/GrMockTypes.h"
-#include "vk/GrVkTypes.h"
-#include "../private/GrVkTypesPriv.h"
+#include "include/gpu/GrTypes.h"
+#include "include/gpu/gl/GrGLTypes.h"
+#include "include/gpu/mock/GrMockTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "include/private/GrVkTypesPriv.h"
 
 class GrVkImageLayout;
 
 #ifdef SK_METAL
-#include "mtl/GrMtlTypes.h"
+#include "include/gpu/mtl/GrMtlTypes.h"
 #endif
 
 #if !SK_SUPPORT_GPU
diff --git a/include/gpu/GrBlend.h b/include/gpu/GrBlend.h
index fd135e3..8b681e8 100644
--- a/include/gpu/GrBlend.h
+++ b/include/gpu/GrBlend.h
@@ -9,7 +9,7 @@
 #ifndef GrBlend_DEFINED
 #define GrBlend_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 /**
  * Equations for alpha-blending.
diff --git a/include/gpu/GrConfig.h b/include/gpu/GrConfig.h
index 2ab4c7e..3daae61 100644
--- a/include/gpu/GrConfig.h
+++ b/include/gpu/GrConfig.h
@@ -11,7 +11,7 @@
 #ifndef GrConfig_DEFINED
 #define GrConfig_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 // preconfig section:
diff --git a/include/gpu/GrContext.h b/include/gpu/GrContext.h
index 1716d79..8a21c4a 100644
--- a/include/gpu/GrContext.h
+++ b/include/gpu/GrContext.h
@@ -8,14 +8,14 @@
 #ifndef GrContext_DEFINED
 #define GrContext_DEFINED
 
-#include "SkMatrix.h"
-#include "SkPathEffect.h"
-#include "SkTypes.h"
-#include "../private/GrRecordingContext.h"
-#include "GrContextOptions.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkTypes.h"
+#include "include/gpu/GrContextOptions.h"
+#include "include/private/GrRecordingContext.h"
 
 // We shouldn't need this but currently Android is relying on this being include transitively.
-#include "SkUnPreMultiply.h"
+#include "include/core/SkUnPreMultiply.h"
 
 class GrAtlasManager;
 class GrBackendFormat;
diff --git a/include/gpu/GrContextOptions.h b/include/gpu/GrContextOptions.h
index 9a87718..9c674ac 100644
--- a/include/gpu/GrContextOptions.h
+++ b/include/gpu/GrContextOptions.h
@@ -8,11 +8,11 @@
 #ifndef GrContextOptions_DEFINED
 #define GrContextOptions_DEFINED
 
-#include "SkData.h"
-#include "SkTypes.h"
-#include "GrTypes.h"
-#include "../private/GrTypesPriv.h"
-#include "GrDriverBugWorkarounds.h"
+#include "include/core/SkData.h"
+#include "include/core/SkTypes.h"
+#include "include/gpu/GrDriverBugWorkarounds.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/GrTypesPriv.h"
 
 #include <vector>
 
diff --git a/include/gpu/GrContextThreadSafeProxy.h b/include/gpu/GrContextThreadSafeProxy.h
index 33977d8..7e67c05 100644
--- a/include/gpu/GrContextThreadSafeProxy.h
+++ b/include/gpu/GrContextThreadSafeProxy.h
@@ -8,7 +8,7 @@
 #ifndef GrContextThreadSafeProxy_DEFINED
 #define GrContextThreadSafeProxy_DEFINED
 
-#include "../private/GrContext_Base.h"
+#include "include/private/GrContext_Base.h"
 
 class GrBackendFormat;
 class GrContextThreadSafeProxyPriv;
diff --git a/include/gpu/GrDriverBugWorkarounds.h b/include/gpu/GrDriverBugWorkarounds.h
index 31f6df5..3f37034 100644
--- a/include/gpu/GrDriverBugWorkarounds.h
+++ b/include/gpu/GrDriverBugWorkarounds.h
@@ -16,10 +16,10 @@
 // To regenerate this file, set gn arg "skia_generate_workarounds = true".
 // This is not rebuilt by default to avoid embedders having to have extra
 // build steps.
-#include "GrDriverBugWorkaroundsAutogen.h"
+#include "include/gpu/GrDriverBugWorkaroundsAutogen.h"
 #endif
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #include <stdint.h>
 #include <vector>
diff --git a/include/gpu/GrGpuResource.h b/include/gpu/GrGpuResource.h
index 948d17d8..ef189ae 100644
--- a/include/gpu/GrGpuResource.h
+++ b/include/gpu/GrGpuResource.h
@@ -8,9 +8,9 @@
 #ifndef GrGpuResource_DEFINED
 #define GrGpuResource_DEFINED
 
-#include "../private/GrResourceKey.h"
-#include "../private/GrTypesPriv.h"
-#include "../private/SkNoncopyable.h"
+#include "include/private/GrResourceKey.h"
+#include "include/private/GrTypesPriv.h"
+#include "include/private/SkNoncopyable.h"
 
 class GrContext;
 class GrGpu;
diff --git a/include/gpu/GrRenderTarget.h b/include/gpu/GrRenderTarget.h
index b26ba0e..2189c63 100644
--- a/include/gpu/GrRenderTarget.h
+++ b/include/gpu/GrRenderTarget.h
@@ -8,8 +8,8 @@
 #ifndef GrRenderTarget_DEFINED
 #define GrRenderTarget_DEFINED
 
-#include "GrSurface.h"
-#include "SkRect.h"
+#include "include/core/SkRect.h"
+#include "include/gpu/GrSurface.h"
 
 class GrCaps;
 class GrRenderTargetOpList;
diff --git a/include/gpu/GrSamplerState.h b/include/gpu/GrSamplerState.h
index 63197bc..aba6407 100644
--- a/include/gpu/GrSamplerState.h
+++ b/include/gpu/GrSamplerState.h
@@ -8,7 +8,7 @@
 #ifndef GrSamplerState_DEFINED
 #define GrSamplerState_DEFINED
 
-#include "GrTypes.h"
+#include "include/gpu/GrTypes.h"
 
 /**
  * Represents the filtering and tile modes used to access a texture.
diff --git a/include/gpu/GrSurface.h b/include/gpu/GrSurface.h
index b03df55..32f04c7 100644
--- a/include/gpu/GrSurface.h
+++ b/include/gpu/GrSurface.h
@@ -8,11 +8,11 @@
 #ifndef GrSurface_DEFINED
 #define GrSurface_DEFINED
 
-#include "GrTypes.h"
-#include "GrBackendSurface.h"
-#include "GrGpuResource.h"
-#include "SkImageInfo.h"
-#include "SkRect.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkRect.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrGpuResource.h"
+#include "include/gpu/GrTypes.h"
 
 class GrRenderTarget;
 class GrSurfacePriv;
diff --git a/include/gpu/GrTexture.h b/include/gpu/GrTexture.h
index e8f8035..caecc81 100644
--- a/include/gpu/GrTexture.h
+++ b/include/gpu/GrTexture.h
@@ -9,13 +9,13 @@
 #ifndef GrTexture_DEFINED
 #define GrTexture_DEFINED
 
-#include "GrBackendSurface.h"
-#include "GrSamplerState.h"
-#include "GrSurface.h"
-#include "SkImage.h"
-#include "SkPoint.h"
-#include "SkRefCnt.h"
-#include "../private/GrTypesPriv.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrSamplerState.h"
+#include "include/gpu/GrSurface.h"
+#include "include/private/GrTypesPriv.h"
 
 class GrTexturePriv;
 
diff --git a/include/gpu/GrTypes.h b/include/gpu/GrTypes.h
index 7084d92..a8ed1fc 100644
--- a/include/gpu/GrTypes.h
+++ b/include/gpu/GrTypes.h
@@ -8,9 +8,9 @@
 #ifndef GrTypes_DEFINED
 #define GrTypes_DEFINED
 
-#include "SkMath.h"
-#include "SkTypes.h"
-#include "GrConfig.h"
+#include "include/core/SkMath.h"
+#include "include/core/SkTypes.h"
+#include "include/gpu/GrConfig.h"
 
 class GrBackendSemaphore;
 
diff --git a/include/gpu/gl/GrGLAssembleHelpers.h b/include/gpu/gl/GrGLAssembleHelpers.h
index dde92c3..bfa2aea 100644
--- a/include/gpu/gl/GrGLAssembleHelpers.h
+++ b/include/gpu/gl/GrGLAssembleHelpers.h
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "gl/GrGLAssembleInterface.h"
+#include "include/gpu/gl/GrGLAssembleInterface.h"
 
 void GrGetEGLQueryAndDisplay(GrEGLQueryStringFn** queryString, GrEGLDisplay* display,
                              void* ctx, GrGLGetProc get);
diff --git a/include/gpu/gl/GrGLAssembleInterface.h b/include/gpu/gl/GrGLAssembleInterface.h
index 2dc1b52..4f9f9f9 100644
--- a/include/gpu/gl/GrGLAssembleInterface.h
+++ b/include/gpu/gl/GrGLAssembleInterface.h
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "gl/GrGLInterface.h"
+#include "include/gpu/gl/GrGLInterface.h"
 
 typedef GrGLFuncPtr (*GrGLGetProc)(void* ctx, const char name[]);
 
diff --git a/include/gpu/gl/GrGLConfig.h b/include/gpu/gl/GrGLConfig.h
index feb6ba0..d6c49f3 100644
--- a/include/gpu/gl/GrGLConfig.h
+++ b/include/gpu/gl/GrGLConfig.h
@@ -11,7 +11,7 @@
 #ifndef GrGLConfig_DEFINED
 #define GrGLConfig_DEFINED
 
-#include "GrTypes.h"
+#include "include/gpu/GrTypes.h"
 
 /**
  * Optional GL config file.
diff --git a/include/gpu/gl/GrGLExtensions.h b/include/gpu/gl/GrGLExtensions.h
index 6a41ed9..1e2823f 100644
--- a/include/gpu/gl/GrGLExtensions.h
+++ b/include/gpu/gl/GrGLExtensions.h
@@ -8,9 +8,9 @@
 #ifndef GrGLExtensions_DEFINED
 #define GrGLExtensions_DEFINED
 
-#include "../../private/SkTArray.h"
-#include "GrGLFunctions.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "include/gpu/gl/GrGLFunctions.h"
+#include "include/private/SkTArray.h"
 
 #include <utility>
 
diff --git a/include/gpu/gl/GrGLFunctions.h b/include/gpu/gl/GrGLFunctions.h
index 6faf1ca..265497c 100644
--- a/include/gpu/gl/GrGLFunctions.h
+++ b/include/gpu/gl/GrGLFunctions.h
@@ -10,8 +10,8 @@
 #define GrGLFunctions_DEFINED
 
 #include <cstring>
-#include "../private/SkTLogic.h"
-#include "GrGLTypes.h"
+#include "include/gpu/gl/GrGLTypes.h"
+#include "include/private/SkTLogic.h"
 
 
 extern "C" {
diff --git a/include/gpu/gl/GrGLInterface.h b/include/gpu/gl/GrGLInterface.h
index c2288b4..014e51f 100644
--- a/include/gpu/gl/GrGLInterface.h
+++ b/include/gpu/gl/GrGLInterface.h
@@ -8,9 +8,9 @@
 #ifndef GrGLInterface_DEFINED
 #define GrGLInterface_DEFINED
 
-#include "GrGLFunctions.h"
-#include "GrGLExtensions.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/gl/GrGLExtensions.h"
+#include "include/gpu/gl/GrGLFunctions.h"
 
 ////////////////////////////////////////////////////////////////////////////////
 
diff --git a/include/gpu/gl/GrGLTypes.h b/include/gpu/gl/GrGLTypes.h
index 88d563a..ba95cb4 100644
--- a/include/gpu/gl/GrGLTypes.h
+++ b/include/gpu/gl/GrGLTypes.h
@@ -9,8 +9,8 @@
 #ifndef GrGLTypes_DEFINED
 #define GrGLTypes_DEFINED
 
-#include "GrGLConfig.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/gl/GrGLConfig.h"
 
 /**
  * Classifies GL contexts by which standard they implement (currently as OpenGL vs. OpenGL ES).
diff --git a/include/gpu/mock/GrMockTypes.h b/include/gpu/mock/GrMockTypes.h
index 0eccc31..2eb879a 100644
--- a/include/gpu/mock/GrMockTypes.h
+++ b/include/gpu/mock/GrMockTypes.h
@@ -8,8 +8,8 @@
 #ifndef GrMockOptions_DEFINED
 #define GrMockOptions_DEFINED
 
-#include "GrTypes.h"
-#include "../private/GrTypesPriv.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/GrTypesPriv.h"
 
 struct GrMockTextureInfo {
     GrPixelConfig fConfig;
diff --git a/include/gpu/mtl/GrMtlTypes.h b/include/gpu/mtl/GrMtlTypes.h
index 8b973f7..5dffe25 100644
--- a/include/gpu/mtl/GrMtlTypes.h
+++ b/include/gpu/mtl/GrMtlTypes.h
@@ -8,7 +8,7 @@
 #ifndef GrMtlTypes_DEFINED
 #define GrMtlTypes_DEFINED
 
-#include "GrTypes.h"
+#include "include/gpu/GrTypes.h"
 
 /**
  * Declares typedefs for Metal types used in Ganesh cpp code
diff --git a/include/gpu/vk/GrVkBackendContext.h b/include/gpu/vk/GrVkBackendContext.h
index 8617603..aa8733e 100644
--- a/include/gpu/vk/GrVkBackendContext.h
+++ b/include/gpu/vk/GrVkBackendContext.h
@@ -8,9 +8,9 @@
 #ifndef GrVkBackendContext_DEFINED
 #define GrVkBackendContext_DEFINED
 
-#include "GrVkTypes.h"
-#include "SkRefCnt.h"
-#include "vk/GrVkMemoryAllocator.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/vk/GrVkMemoryAllocator.h"
+#include "include/gpu/vk/GrVkTypes.h"
 
 class GrVkExtensions;
 
diff --git a/include/gpu/vk/GrVkExtensions.h b/include/gpu/vk/GrVkExtensions.h
index fc77ba1..6b14c47 100644
--- a/include/gpu/vk/GrVkExtensions.h
+++ b/include/gpu/vk/GrVkExtensions.h
@@ -8,9 +8,9 @@
 #ifndef GrVkExtensions_DEFINED
 #define GrVkExtensions_DEFINED
 
-#include "../../private/SkTArray.h"
-#include "SkString.h"
-#include "vk/GrVkTypes.h"
+#include "include/core/SkString.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "include/private/SkTArray.h"
 
 /**
  * Helper class that eats in an array of extensions strings for instance and device and allows for
diff --git a/include/gpu/vk/GrVkMemoryAllocator.h b/include/gpu/vk/GrVkMemoryAllocator.h
index c601258..ef41422 100644
--- a/include/gpu/vk/GrVkMemoryAllocator.h
+++ b/include/gpu/vk/GrVkMemoryAllocator.h
@@ -8,9 +8,9 @@
 #ifndef GrVkMemoryAllocator_DEFINED
 #define GrVkMemoryAllocator_DEFINED
 
-#include "SkRefCnt.h"
-#include "GrTypes.h"
-#include "GrVkTypes.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/GrTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
 
 class GrVkMemoryAllocator : public SkRefCnt {
 public:
diff --git a/include/gpu/vk/GrVkTypes.h b/include/gpu/vk/GrVkTypes.h
index 325fb02..1fcf3d3 100644
--- a/include/gpu/vk/GrVkTypes.h
+++ b/include/gpu/vk/GrVkTypes.h
@@ -9,15 +9,15 @@
 #ifndef GrVkTypes_DEFINED
 #define GrVkTypes_DEFINED
 
-#include "SkTypes.h"
-#include "GrVkVulkan.h"
+#include "include/core/SkTypes.h"
+#include "include/gpu/vk/GrVkVulkan.h"
 
 #ifndef VK_VERSION_1_1
 #error Skia requires the use of Vulkan 1.1 headers
 #endif
 
 #include <functional>
-#include "GrTypes.h"
+#include "include/gpu/GrTypes.h"
 
 typedef intptr_t GrVkBackendMemory;
 
diff --git a/include/gpu/vk/GrVkVulkan.h b/include/gpu/vk/GrVkVulkan.h
index 89f6437..65cbf9b 100644
--- a/include/gpu/vk/GrVkVulkan.h
+++ b/include/gpu/vk/GrVkVulkan.h
@@ -8,10 +8,10 @@
 #ifndef GrVkVulkan_DEFINED
 #define GrVkVulkan_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if SKIA_IMPLEMENTATION || !defined(SK_VULKAN)
-#include "../../include/third_party/vulkan/vulkan/vulkan_core.h"
+#include "include/third_party/vulkan/vulkan/vulkan_core.h"
 #else
 // For google3 builds we don't set SKIA_IMPLEMENTATION so we need to make sure that the vulkan
 // headers stay up to date for our needs
@@ -21,7 +21,7 @@
 #ifdef SK_BUILD_FOR_ANDROID
 // This is needed to get android extensions for external memory
 #if SKIA_IMPLEMENTATION || !defined(SK_VULKAN)
-#include "../../include/third_party/vulkan/vulkan/vulkan_android.h"
+#include "include/third_party/vulkan/vulkan/vulkan_android.h"
 #else
 // For google3 builds we don't set SKIA_IMPLEMENTATION so we need to make sure that the vulkan
 // headers stay up to date for our needs
diff --git a/include/pathops/SkPathOps.h b/include/pathops/SkPathOps.h
index 50e50d6..2c799d9 100644
--- a/include/pathops/SkPathOps.h
+++ b/include/pathops/SkPathOps.h
@@ -7,9 +7,9 @@
 #ifndef SkPathOps_DEFINED
 #define SkPathOps_DEFINED
 
-#include "../private/SkTArray.h"
-#include "../private/SkTDArray.h"
-#include "SkPreConfig.h"
+#include "include/core/SkPreConfig.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTDArray.h"
 
 class SkPath;
 struct SkRect;
diff --git a/include/ports/SkFontConfigInterface.h b/include/ports/SkFontConfigInterface.h
index 01346f2..557381b 100644
--- a/include/ports/SkFontConfigInterface.h
+++ b/include/ports/SkFontConfigInterface.h
@@ -8,10 +8,10 @@
 #ifndef SkFontConfigInterface_DEFINED
 #define SkFontConfigInterface_DEFINED
 
-#include "SkFontStyle.h"
-#include "SkRefCnt.h"
-#include "SkStream.h"
-#include "SkTypeface.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
 
 class SkFontMgr;
 
diff --git a/include/ports/SkFontMgr_FontConfigInterface.h b/include/ports/SkFontMgr_FontConfigInterface.h
index 9dccb7b..0577125 100644
--- a/include/ports/SkFontMgr_FontConfigInterface.h
+++ b/include/ports/SkFontMgr_FontConfigInterface.h
@@ -8,8 +8,8 @@
 #ifndef SkFontMgr_FontConfigInterface_DEFINED
 #define SkFontMgr_FontConfigInterface_DEFINED
 
-#include "SkTypes.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypes.h"
 
 class SkFontMgr;
 class SkFontConfigInterface;
diff --git a/include/ports/SkFontMgr_android.h b/include/ports/SkFontMgr_android.h
index 050fadd..d68f3ba 100644
--- a/include/ports/SkFontMgr_android.h
+++ b/include/ports/SkFontMgr_android.h
@@ -8,7 +8,7 @@
 #ifndef SkFontMgr_android_DEFINED
 #define SkFontMgr_android_DEFINED
 
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
 
 class SkFontMgr;
 
diff --git a/include/ports/SkFontMgr_directory.h b/include/ports/SkFontMgr_directory.h
index 8f79a7f..b1a60fb 100644
--- a/include/ports/SkFontMgr_directory.h
+++ b/include/ports/SkFontMgr_directory.h
@@ -8,8 +8,8 @@
 #ifndef SkFontMgr_directory_DEFINED
 #define SkFontMgr_directory_DEFINED
 
-#include "SkRefCnt.h"
-#include "SkTypes.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypes.h"
 
 class SkFontMgr;
 
diff --git a/include/ports/SkFontMgr_empty.h b/include/ports/SkFontMgr_empty.h
index dbeef58..e575642 100644
--- a/include/ports/SkFontMgr_empty.h
+++ b/include/ports/SkFontMgr_empty.h
@@ -8,8 +8,8 @@
 #ifndef SkFontMgr_empty_DEFINED
 #define SkFontMgr_empty_DEFINED
 
-#include "SkRefCnt.h"
-#include "SkTypes.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypes.h"
 
 class SkFontMgr;
 
diff --git a/include/ports/SkFontMgr_fontconfig.h b/include/ports/SkFontMgr_fontconfig.h
index e0f4108..4b2bb2d 100644
--- a/include/ports/SkFontMgr_fontconfig.h
+++ b/include/ports/SkFontMgr_fontconfig.h
@@ -8,7 +8,7 @@
 #ifndef SkFontMgr_fontconfig_DEFINED
 #define SkFontMgr_fontconfig_DEFINED
 
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
 #include <fontconfig/fontconfig.h>
 
 class SkFontMgr;
diff --git a/include/ports/SkFontMgr_fuchsia.h b/include/ports/SkFontMgr_fuchsia.h
index 4bcff82..d20530a 100644
--- a/include/ports/SkFontMgr_fuchsia.h
+++ b/include/ports/SkFontMgr_fuchsia.h
@@ -10,7 +10,7 @@
 
 #include <fuchsia/fonts/cpp/fidl.h>
 
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
 
 class SkFontMgr;
 
diff --git a/include/ports/SkFontMgr_indirect.h b/include/ports/SkFontMgr_indirect.h
index 04e903e..4cdd445 100644
--- a/include/ports/SkFontMgr_indirect.h
+++ b/include/ports/SkFontMgr_indirect.h
@@ -8,14 +8,14 @@
 #ifndef SkFontMgr_indirect_DEFINED
 #define SkFontMgr_indirect_DEFINED
 
-#include "../private/SkMutex.h"
-#include "../private/SkOnce.h"
-#include "../private/SkTArray.h"
-#include "SkFontMgr.h"
-#include "SkRefCnt.h"
-#include "SkRemotableFontMgr.h"
-#include "SkTypeface.h"
-#include "SkTypes.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypeface.h"
+#include "include/core/SkTypes.h"
+#include "include/ports/SkRemotableFontMgr.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkOnce.h"
+#include "include/private/SkTArray.h"
 
 class SkData;
 class SkFontStyle;
diff --git a/include/ports/SkImageGeneratorCG.h b/include/ports/SkImageGeneratorCG.h
index 3206fc4..756ebb9 100644
--- a/include/ports/SkImageGeneratorCG.h
+++ b/include/ports/SkImageGeneratorCG.h
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
 
-#include "SkData.h"
-#include "SkImageGenerator.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageGenerator.h"
 
 #include <memory>
 
diff --git a/include/ports/SkImageGeneratorWIC.h b/include/ports/SkImageGeneratorWIC.h
index 7510455..eb57a20 100644
--- a/include/ports/SkImageGeneratorWIC.h
+++ b/include/ports/SkImageGeneratorWIC.h
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if defined(SK_BUILD_FOR_WIN)
 
-#include "SkData.h"
-#include "SkImageGenerator.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageGenerator.h"
 
 #include <memory>
 
diff --git a/include/ports/SkRemotableFontMgr.h b/include/ports/SkRemotableFontMgr.h
index 12050c7..ebe1bd0 100644
--- a/include/ports/SkRemotableFontMgr.h
+++ b/include/ports/SkRemotableFontMgr.h
@@ -8,10 +8,10 @@
 #ifndef SkRemotableFontMgr_DEFINED
 #define SkRemotableFontMgr_DEFINED
 
-#include "../private/SkTemplates.h"
-#include "SkFontStyle.h"
-#include "SkRefCnt.h"
-#include "SkTypes.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTemplates.h"
 
 class SkDataTable;
 class SkStreamAsset;
diff --git a/include/ports/SkTypeface_mac.h b/include/ports/SkTypeface_mac.h
index 14440b5..c17b821 100644
--- a/include/ports/SkTypeface_mac.h
+++ b/include/ports/SkTypeface_mac.h
@@ -8,7 +8,7 @@
 #ifndef SkTypeface_mac_DEFINED
 #define SkTypeface_mac_DEFINED
 
-#include "SkTypeface.h"
+#include "include/core/SkTypeface.h"
 
 #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
 
diff --git a/include/ports/SkTypeface_win.h b/include/ports/SkTypeface_win.h
index 06e7d33..267ae01 100644
--- a/include/ports/SkTypeface_win.h
+++ b/include/ports/SkTypeface_win.h
@@ -8,8 +8,8 @@
 #ifndef SkTypeface_win_DEFINED
 #define SkTypeface_win_DEFINED
 
-#include "../private/SkLeanWindows.h"
-#include "SkTypeface.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkLeanWindows.h"
 
 #ifdef SK_BUILD_FOR_WIN
 
diff --git a/include/private/GrAuditTrail.h b/include/private/GrAuditTrail.h
index 2d48af8..4376106 100644
--- a/include/private/GrAuditTrail.h
+++ b/include/private/GrAuditTrail.h
@@ -8,13 +8,13 @@
 #ifndef GrAuditTrail_DEFINED
 #define GrAuditTrail_DEFINED
 
-#include "GrConfig.h"
-#include "GrGpuResource.h"
-#include "GrRenderTargetProxy.h"
-#include "SkRect.h"
-#include "SkString.h"
-#include "SkTArray.h"
-#include "SkTHash.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkString.h"
+#include "include/gpu/GrConfig.h"
+#include "include/gpu/GrGpuResource.h"
+#include "include/private/GrRenderTargetProxy.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTHash.h"
 
 class GrOp;
 class SkJSONWriter;
diff --git a/include/private/GrCCClipPath.h b/include/private/GrCCClipPath.h
index fdc6a25..754c0118 100644
--- a/include/private/GrCCClipPath.h
+++ b/include/private/GrCCClipPath.h
@@ -8,8 +8,8 @@
 #ifndef GrCCClipPath_DEFINED
 #define GrCCClipPath_DEFINED
 
-#include "GrTextureProxy.h"
-#include "SkPath.h"
+#include "include/core/SkPath.h"
+#include "include/private/GrTextureProxy.h"
 
 struct GrCCPerFlushResourceSpecs;
 class GrCCAtlas;
diff --git a/include/private/GrCCPerOpListPaths.h b/include/private/GrCCPerOpListPaths.h
index 61c3c59..71b82bc 100644
--- a/include/private/GrCCPerOpListPaths.h
+++ b/include/private/GrCCPerOpListPaths.h
@@ -8,10 +8,10 @@
 #ifndef GrCCPerOpListPaths_DEFINED
 #define GrCCPerOpListPaths_DEFINED
 
-#include "SkArenaAlloc.h"
-#include "SkRefCnt.h"
-#include "SkTInternalLList.h"
-#include "GrCCClipPath.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/GrCCClipPath.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkTInternalLList.h"
 
 #include <map>
 
diff --git a/include/private/GrColor.h b/include/private/GrColor.h
index 7c52aa6..db83483 100644
--- a/include/private/GrColor.h
+++ b/include/private/GrColor.h
@@ -11,10 +11,10 @@
 #ifndef GrColor_DEFINED
 #define GrColor_DEFINED
 
-#include "SkColor.h"
-#include "SkColorData.h"
-#include "SkColorPriv.h"
-#include "SkHalf.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkColorPriv.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkHalf.h"
 
 /**
  * GrColor is 4 bytes for R, G, B, A, in a specific order defined below. Whether the color is
diff --git a/include/private/GrContext_Base.h b/include/private/GrContext_Base.h
index 5eb9d29..c66ab85 100644
--- a/include/private/GrContext_Base.h
+++ b/include/private/GrContext_Base.h
@@ -8,9 +8,9 @@
 #ifndef GrContext_Base_DEFINED
 #define GrContext_Base_DEFINED
 
-#include "SkRefCnt.h"
-#include "GrContextOptions.h"
-#include "GrTypes.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/GrContextOptions.h"
+#include "include/gpu/GrTypes.h"
 
 class GrBaseContextPriv;
 class GrCaps;
diff --git a/include/private/GrImageContext.h b/include/private/GrImageContext.h
index 324feef..04659be 100644
--- a/include/private/GrImageContext.h
+++ b/include/private/GrImageContext.h
@@ -8,8 +8,8 @@
 #ifndef GrImageContext_DEFINED
 #define GrImageContext_DEFINED
 
-#include "GrContext_Base.h"
-#include "../private/GrSingleOwner.h"
+#include "include/private/GrContext_Base.h"
+#include "include/private/GrSingleOwner.h"
 
 class GrImageContextPriv;
 class GrProxyProvider;
diff --git a/include/private/GrOpList.h b/include/private/GrOpList.h
index 13cf18e..ff3f3b1 100644
--- a/include/private/GrOpList.h
+++ b/include/private/GrOpList.h
@@ -8,11 +8,11 @@
 #ifndef GrOpList_DEFINED
 #define GrOpList_DEFINED
 
-#include "GrProxyRef.h"
-#include "GrTextureProxy.h"
-#include "SkColorData.h"
-#include "SkRefCnt.h"
-#include "SkTDArray.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/GrProxyRef.h"
+#include "include/private/GrTextureProxy.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkTDArray.h"
 
 class GrAuditTrail;
 class GrCaps;
diff --git a/include/private/GrProxyRef.h b/include/private/GrProxyRef.h
index 9d4419f..bc5f460 100644
--- a/include/private/GrProxyRef.h
+++ b/include/private/GrProxyRef.h
@@ -8,9 +8,9 @@
 #ifndef GrProxyRef_DEFINED
 #define GrProxyRef_DEFINED
 
-#include "GrSurfaceProxy.h"
-#include "GrTextureProxy.h"
-#include "GrTypesPriv.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "include/private/GrTextureProxy.h"
+#include "include/private/GrTypesPriv.h"
 
 /**
  * Helper for owning a ref and/or pending IO on a GrSurfaceProxy. This is useful when ownership
diff --git a/include/private/GrRecordingContext.h b/include/private/GrRecordingContext.h
index dbcb0c0..c5c25d4 100644
--- a/include/private/GrRecordingContext.h
+++ b/include/private/GrRecordingContext.h
@@ -8,9 +8,9 @@
 #ifndef GrRecordingContext_DEFINED
 #define GrRecordingContext_DEFINED
 
-#include "GrAuditTrail.h"
-#include "GrImageContext.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/GrAuditTrail.h"
+#include "include/private/GrImageContext.h"
 
 class GrDrawingManager;
 class GrOnFlushCallbackObject;
diff --git a/include/private/GrRenderTargetProxy.h b/include/private/GrRenderTargetProxy.h
index ecd6772..fd13edc 100644
--- a/include/private/GrRenderTargetProxy.h
+++ b/include/private/GrRenderTargetProxy.h
@@ -8,8 +8,8 @@
 #ifndef GrRenderTargetProxy_DEFINED
 #define GrRenderTargetProxy_DEFINED
 
-#include "GrSurfaceProxy.h"
-#include "GrTypesPriv.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "include/private/GrTypesPriv.h"
 
 class GrResourceProvider;
 class GrRenderTargetProxyPriv;
diff --git a/include/private/GrResourceKey.h b/include/private/GrResourceKey.h
index 0a4b5a4..d67fa7d 100644
--- a/include/private/GrResourceKey.h
+++ b/include/private/GrResourceKey.h
@@ -8,12 +8,12 @@
 #ifndef GrResourceKey_DEFINED
 #define GrResourceKey_DEFINED
 
-#include "../private/SkOnce.h"
-#include "../private/SkTemplates.h"
-#include "../private/SkTo.h"
-#include "GrTypes.h"
-#include "SkData.h"
-#include "SkString.h"
+#include "include/core/SkData.h"
+#include "include/core/SkString.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/SkOnce.h"
+#include "include/private/SkTemplates.h"
+#include "include/private/SkTo.h"
 
 #include <new>
 
diff --git a/include/private/GrSingleOwner.h b/include/private/GrSingleOwner.h
index 64e63d3..45818a1 100644
--- a/include/private/GrSingleOwner.h
+++ b/include/private/GrSingleOwner.h
@@ -8,11 +8,11 @@
 #ifndef GrSingleOwner_DEFINED
 #define GrSingleOwner_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #ifdef SK_DEBUG
-#include "SkMutex.h"
-#include "SkThreadID.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkThreadID.h"
 
 // This is a debug tool to verify an object is only being used from one thread at a time.
 class GrSingleOwner {
diff --git a/include/private/GrSkSLFPFactoryCache.h b/include/private/GrSkSLFPFactoryCache.h
index 40e001a..48869f8 100644
--- a/include/private/GrSkSLFPFactoryCache.h
+++ b/include/private/GrSkSLFPFactoryCache.h
@@ -8,7 +8,7 @@
 #ifndef GrSkSLFPFactoryCache_DEFINED
 #define GrSkSLFPFactoryCache_DEFINED
 
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
 
 #include <vector>
 
diff --git a/include/private/GrSurfaceProxy.h b/include/private/GrSurfaceProxy.h
index f9f991d..a84f42a 100644
--- a/include/private/GrSurfaceProxy.h
+++ b/include/private/GrSurfaceProxy.h
@@ -8,12 +8,12 @@
 #ifndef GrSurfaceProxy_DEFINED
 #define GrSurfaceProxy_DEFINED
 
-#include "../private/SkNoncopyable.h"
-#include "GrBackendSurface.h"
-#include "GrGpuResource.h"
-#include "GrSurface.h"
-#include "GrTexture.h"
-#include "SkRect.h"
+#include "include/core/SkRect.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrGpuResource.h"
+#include "include/gpu/GrSurface.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/SkNoncopyable.h"
 
 class GrCaps;
 class GrContext_Base;
diff --git a/include/private/GrTextureProxy.h b/include/private/GrTextureProxy.h
index 6851cde..d9eef25 100644
--- a/include/private/GrTextureProxy.h
+++ b/include/private/GrTextureProxy.h
@@ -8,8 +8,8 @@
 #ifndef GrTextureProxy_DEFINED
 #define GrTextureProxy_DEFINED
 
-#include "GrSamplerState.h"
-#include "GrSurfaceProxy.h"
+#include "include/gpu/GrSamplerState.h"
+#include "include/private/GrSurfaceProxy.h"
 
 class GrCaps;
 class GrDeferredProxyUploader;
diff --git a/include/private/GrTypesPriv.h b/include/private/GrTypesPriv.h
index d34d1de..2b6b96e 100644
--- a/include/private/GrTypesPriv.h
+++ b/include/private/GrTypesPriv.h
@@ -9,13 +9,13 @@
 #define GrTypesPriv_DEFINED
 
 #include <chrono>
-#include "GrSharedEnums.h"
-#include "GrTypes.h"
-#include "SkCanvas.h"
-#include "SkImageInfo.h"
-#include "SkImageInfoPriv.h"
-#include "SkRefCnt.h"
-#include "SkWeakRefCnt.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/GrSharedEnums.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "include/private/SkWeakRefCnt.h"
 
 class GrCaps;
 
diff --git a/include/private/GrVkTypesPriv.h b/include/private/GrVkTypesPriv.h
index dfc26c7..9c1faf1 100644
--- a/include/private/GrVkTypesPriv.h
+++ b/include/private/GrVkTypesPriv.h
@@ -8,8 +8,8 @@
 #ifndef GrVkTypesPriv_DEFINED
 #define GrVkTypesPriv_DEFINED
 
-#include "vk/GrVkTypes.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/vk/GrVkTypes.h"
 
 class GrVkImageLayout;
 
diff --git a/include/private/SkArenaAlloc.h b/include/private/SkArenaAlloc.h
index 71b6404..bb8d05f 100644
--- a/include/private/SkArenaAlloc.h
+++ b/include/private/SkArenaAlloc.h
@@ -8,7 +8,7 @@
 #ifndef SkArenaAlloc_DEFINED
 #define SkArenaAlloc_DEFINED
 
-#include "../private/SkTFitsIn.h"
+#include "include/private/SkTFitsIn.h"
 
 #include <cassert>
 #include <cstddef>
diff --git a/include/private/SkBitmaskEnum.h b/include/private/SkBitmaskEnum.h
index 9324e83..34ee200 100644
--- a/include/private/SkBitmaskEnum.h
+++ b/include/private/SkBitmaskEnum.h
@@ -7,7 +7,7 @@
 #ifndef SkEnumOperators_DEFINED
 #define SkEnumOperators_DEFINED
 
-#include "SkTLogic.h"
+#include "include/private/SkTLogic.h"
 
 namespace skstd {
 template <typename T> struct is_bitmask_enum : std::false_type {};
diff --git a/include/private/SkChecksum.h b/include/private/SkChecksum.h
index fceb86b..553bfcd 100644
--- a/include/private/SkChecksum.h
+++ b/include/private/SkChecksum.h
@@ -8,12 +8,12 @@
 #ifndef SkChecksum_DEFINED
 #define SkChecksum_DEFINED
 
-#include "../private/SkNoncopyable.h"
-#include "SkString.h"
-#include "SkTLogic.h"
-#include "SkTypes.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkNoncopyable.h"
+#include "include/private/SkTLogic.h"
 
-// #include "SkOpts.h"
+// #include "src/core/SkOpts.h"
 // It's sort of pesky to be able to include SkOpts.h here, so we'll just re-declare what we need.
 namespace SkOpts {
     extern uint32_t (*hash_fn)(const void*, size_t, uint32_t);
diff --git a/include/private/SkColorData.h b/include/private/SkColorData.h
index 20c4260..00a2895 100644
--- a/include/private/SkColorData.h
+++ b/include/private/SkColorData.h
@@ -8,10 +8,10 @@
 #ifndef SkColorData_DEFINED
 #define SkColorData_DEFINED
 
-#include "SkColor.h"
-#include "SkColorPriv.h"
-#include "SkNx.h"
-#include "SkTo.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkColorPriv.h"
+#include "include/private/SkNx.h"
+#include "include/private/SkTo.h"
 
 ////////////////////////////////////////////////////////////////////////////////////////////
 // Convert a 16bit pixel to a 32bit pixel
diff --git a/include/private/SkDeferredDisplayList.h b/include/private/SkDeferredDisplayList.h
index 4285910..1f34beb 100644
--- a/include/private/SkDeferredDisplayList.h
+++ b/include/private/SkDeferredDisplayList.h
@@ -8,11 +8,11 @@
 #ifndef SkDeferredDisplayList_DEFINED
 #define SkDeferredDisplayList_DEFINED
 
-#include "SkSurfaceCharacterization.h"
+#include "include/core/SkSurfaceCharacterization.h"
 
 #if SK_SUPPORT_GPU
-#include "GrCCPerOpListPaths.h"
-#include "GrOpList.h"
+#include "include/private/GrCCPerOpListPaths.h"
+#include "include/private/GrOpList.h"
 
 #include <map>
 #endif
diff --git a/include/private/SkEncodedInfo.h b/include/private/SkEncodedInfo.h
index c3201df..c036b60 100644
--- a/include/private/SkEncodedInfo.h
+++ b/include/private/SkEncodedInfo.h
@@ -8,8 +8,8 @@
 #ifndef SkEncodedInfo_DEFINED
 #define SkEncodedInfo_DEFINED
 
-#include "SkData.h"
-#include "SkImageInfo.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageInfo.h"
 #include "skcms.h"
 
 struct SkEncodedInfo {
diff --git a/include/private/SkFixed.h b/include/private/SkFixed.h
index 0d15e02..af858ef 100644
--- a/include/private/SkFixed.h
+++ b/include/private/SkFixed.h
@@ -8,10 +8,10 @@
 #ifndef SkFixed_DEFINED
 #define SkFixed_DEFINED
 
-#include "SkSafe_math.h"
-#include "SkScalar.h"
-#include "SkTo.h"
-#include "SkTypes.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkSafe_math.h"
+#include "include/private/SkTo.h"
 
 /** \file SkFixed.h
 
diff --git a/include/private/SkFloatBits.h b/include/private/SkFloatBits.h
index 7eb059b..89eea4b 100644
--- a/include/private/SkFloatBits.h
+++ b/include/private/SkFloatBits.h
@@ -8,8 +8,8 @@
 #ifndef SkFloatBits_DEFINED
 #define SkFloatBits_DEFINED
 
-#include "SkTypes.h"
-#include "SkSafe_math.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkSafe_math.h"
 
 #include <float.h>
 
diff --git a/include/private/SkFloatingPoint.h b/include/private/SkFloatingPoint.h
index 6987563..19e4c09 100644
--- a/include/private/SkFloatingPoint.h
+++ b/include/private/SkFloatingPoint.h
@@ -8,9 +8,9 @@
 #ifndef SkFloatingPoint_DEFINED
 #define SkFloatingPoint_DEFINED
 
-#include "../private/SkFloatBits.h"
-#include "SkTypes.h"
-#include "SkSafe_math.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkFloatBits.h"
+#include "include/private/SkSafe_math.h"
 #include <float.h>
 #include <math.h>
 #include <cstring>
diff --git a/include/private/SkHalf.h b/include/private/SkHalf.h
index 926137b..d951891 100644
--- a/include/private/SkHalf.h
+++ b/include/private/SkHalf.h
@@ -8,8 +8,8 @@
 #ifndef SkHalf_DEFINED
 #define SkHalf_DEFINED
 
-#include "SkNx.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkNx.h"
 
 // 16-bit floating point value
 // format is 1 bit sign, 5 bits exponent, 10 bits mantissa
diff --git a/include/private/SkImageInfoPriv.h b/include/private/SkImageInfoPriv.h
index 2841504..9053f41 100644
--- a/include/private/SkImageInfoPriv.h
+++ b/include/private/SkImageInfoPriv.h
@@ -8,7 +8,7 @@
 #ifndef SkImageInfoPriv_DEFINED
 #define SkImageInfoPriv_DEFINED
 
-#include "SkImageInfo.h"
+#include "include/core/SkImageInfo.h"
 
 enum SkColorTypeComponentFlag {
     kRed_SkColorTypeComponentFlag    = 0x1,
diff --git a/include/private/SkLeanWindows.h b/include/private/SkLeanWindows.h
index 2bdddbb..ec8dd58 100644
--- a/include/private/SkLeanWindows.h
+++ b/include/private/SkLeanWindows.h
@@ -7,7 +7,7 @@
 #ifndef SkLeanWindows_DEFINED
 #define SkLeanWindows_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #ifdef SK_BUILD_FOR_WIN
 #  ifndef WIN32_LEAN_AND_MEAN
diff --git a/include/private/SkMalloc.h b/include/private/SkMalloc.h
index 9c899b3..6876be3 100644
--- a/include/private/SkMalloc.h
+++ b/include/private/SkMalloc.h
@@ -11,7 +11,7 @@
 #include <cstddef>
 #include <cstring>
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 /*
     memory wrappers to be implemented by the porting layer (platform)
diff --git a/include/private/SkMessageBus.h b/include/private/SkMessageBus.h
index 649edf6..e1b4605 100644
--- a/include/private/SkMessageBus.h
+++ b/include/private/SkMessageBus.h
@@ -8,12 +8,12 @@
 #ifndef SkMessageBus_DEFINED
 #define SkMessageBus_DEFINED
 
-#include "../private/SkNoncopyable.h"
-#include "SkMutex.h"
-#include "SkOnce.h"
-#include "SkTArray.h"
-#include "SkTDArray.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkNoncopyable.h"
+#include "include/private/SkOnce.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTDArray.h"
 
 /**
  * The following method must have a specialization for type 'Message':
diff --git a/include/private/SkMutex.h b/include/private/SkMutex.h
index 9af23ad..633383b 100644
--- a/include/private/SkMutex.h
+++ b/include/private/SkMutex.h
@@ -8,10 +8,10 @@
 #ifndef SkMutex_DEFINED
 #define SkMutex_DEFINED
 
-#include "../private/SkMacros.h"
-#include "../private/SkSemaphore.h"
-#include "../private/SkThreadID.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkMacros.h"
+#include "include/private/SkSemaphore.h"
+#include "include/private/SkThreadID.h"
 
 #define SK_DECLARE_STATIC_MUTEX(name) static SkBaseMutex name;
 
diff --git a/include/private/SkNoncopyable.h b/include/private/SkNoncopyable.h
index 518b3ee..bda5d50 100644
--- a/include/private/SkNoncopyable.h
+++ b/include/private/SkNoncopyable.h
@@ -8,7 +8,7 @@
 #ifndef SkNoncopyable_DEFINED
 #define SkNoncopyable_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 /** \class SkNoncopyable
 
diff --git a/include/private/SkNx.h b/include/private/SkNx.h
index 4123ba8..240f4f4 100644
--- a/include/private/SkNx.h
+++ b/include/private/SkNx.h
@@ -8,9 +8,9 @@
 #ifndef SkNx_DEFINED
 #define SkNx_DEFINED
 
-#include "SkSafe_math.h"
-#include "SkScalar.h"
-#include "SkTypes.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkSafe_math.h"
 
 #include <algorithm>
 #include <limits>
@@ -410,9 +410,9 @@
 
 // Include platform specific specializations if available.
 #if !defined(SKNX_NO_SIMD) && SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2
-    #include "SkNx_sse.h"
+    #include "include/private/SkNx_sse.h"
 #elif !defined(SKNX_NO_SIMD) && defined(SK_ARM_HAS_NEON)
-    #include "SkNx_neon.h"
+    #include "include/private/SkNx_neon.h"
 #else
 
 AI static Sk4i Sk4f_round(const Sk4f& x) {
diff --git a/include/private/SkNx_sse.h b/include/private/SkNx_sse.h
index 94b458e..7f951a8 100644
--- a/include/private/SkNx_sse.h
+++ b/include/private/SkNx_sse.h
@@ -8,7 +8,7 @@
 #ifndef SkNx_sse_DEFINED
 #define SkNx_sse_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE41
     #include <smmintrin.h>
diff --git a/include/private/SkOnce.h b/include/private/SkOnce.h
index 7218911..690efec 100644
--- a/include/private/SkOnce.h
+++ b/include/private/SkOnce.h
@@ -10,7 +10,7 @@
 
 #include <atomic>
 #include <utility>
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 // SkOnce provides call-once guarantees for Skia, much like std::once_flag/std::call_once().
 //
diff --git a/include/private/SkPathRef.h b/include/private/SkPathRef.h
index fbf8046..10c7fe7 100644
--- a/include/private/SkPathRef.h
+++ b/include/private/SkPathRef.h
@@ -8,15 +8,15 @@
 #ifndef SkPathRef_DEFINED
 #define SkPathRef_DEFINED
 
-#include "SkMatrix.h"
-#include "SkMutex.h"
-#include "SkPoint.h"
-#include "SkRRect.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkTDArray.h"
-#include "SkTemplates.h"
-#include "SkTo.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkTDArray.h"
+#include "include/private/SkTemplates.h"
+#include "include/private/SkTo.h"
 #include <atomic>
 #include <limits>
 
diff --git a/include/private/SkSafe32.h b/include/private/SkSafe32.h
index 7059d3b..7e59f2b 100644
--- a/include/private/SkSafe32.h
+++ b/include/private/SkSafe32.h
@@ -8,7 +8,7 @@
 #ifndef SkSafe32_DEFINED
 #define SkSafe32_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 static constexpr int32_t Sk64_pin_to_s32(int64_t x) {
     return x < SK_MinS32 ? SK_MinS32 : (x > SK_MaxS32 ? SK_MaxS32 : (int32_t)x);
diff --git a/include/private/SkSemaphore.h b/include/private/SkSemaphore.h
index aeca972..1450477 100644
--- a/include/private/SkSemaphore.h
+++ b/include/private/SkSemaphore.h
@@ -8,8 +8,8 @@
 #ifndef SkSemaphore_DEFINED
 #define SkSemaphore_DEFINED
 
-#include "../private/SkOnce.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkOnce.h"
 #include <atomic>
 
 class SkBaseSemaphore {
diff --git a/include/private/SkSpinlock.h b/include/private/SkSpinlock.h
index 669a926..9d6942b 100644
--- a/include/private/SkSpinlock.h
+++ b/include/private/SkSpinlock.h
@@ -8,7 +8,7 @@
 #ifndef SkSpinlock_DEFINED
 #define SkSpinlock_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #include <atomic>
 
 class SkSpinlock {
diff --git a/include/private/SkTArray.h b/include/private/SkTArray.h
index a18d6e0..8b29487 100644
--- a/include/private/SkTArray.h
+++ b/include/private/SkTArray.h
@@ -8,10 +8,10 @@
 #ifndef SkTArray_DEFINED
 #define SkTArray_DEFINED
 
-#include "../private/SkSafe32.h"
-#include "../private/SkTLogic.h"
-#include "../private/SkTemplates.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkSafe32.h"
+#include "include/private/SkTLogic.h"
+#include "include/private/SkTemplates.h"
 
 #include <new>
 #include <utility>
diff --git a/include/private/SkTDArray.h b/include/private/SkTDArray.h
index 008559f..5bcf958 100644
--- a/include/private/SkTDArray.h
+++ b/include/private/SkTDArray.h
@@ -9,9 +9,9 @@
 #ifndef SkTDArray_DEFINED
 #define SkTDArray_DEFINED
 
-#include "SkMalloc.h"
-#include "SkTo.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkMalloc.h"
+#include "include/private/SkTo.h"
 
 #include <initializer_list>
 #include <utility>
diff --git a/include/private/SkTHash.h b/include/private/SkTHash.h
index 60bcc77..46c60ba 100644
--- a/include/private/SkTHash.h
+++ b/include/private/SkTHash.h
@@ -8,9 +8,9 @@
 #ifndef SkTHash_DEFINED
 #define SkTHash_DEFINED
 
-#include "SkChecksum.h"
-#include "SkTypes.h"
-#include "SkTemplates.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkChecksum.h"
+#include "include/private/SkTemplates.h"
 #include <new>
 
 // Before trying to use SkTHashTable, look below to see if SkTHashMap or SkTHashSet works for you.
diff --git a/include/private/SkTInternalLList.h b/include/private/SkTInternalLList.h
index dbba5cc..f435c0c 100644
--- a/include/private/SkTInternalLList.h
+++ b/include/private/SkTInternalLList.h
@@ -8,7 +8,7 @@
 #ifndef SkTInternalLList_DEFINED
 #define SkTInternalLList_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 /**
  * This macro creates the member variables required by the SkTInternalLList class. It should be
diff --git a/include/private/SkTSearch.h b/include/private/SkTSearch.h
index 16ef0d6..0466917 100644
--- a/include/private/SkTSearch.h
+++ b/include/private/SkTSearch.h
@@ -10,7 +10,7 @@
 #ifndef SkTSearch_DEFINED
 #define SkTSearch_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 /**
  *  All of the SkTSearch variants want to return the index (0...N-1) of the
diff --git a/include/private/SkTemplates.h b/include/private/SkTemplates.h
index 567753a..f051331 100644
--- a/include/private/SkTemplates.h
+++ b/include/private/SkTemplates.h
@@ -10,10 +10,10 @@
 #ifndef SkTemplates_DEFINED
 #define SkTemplates_DEFINED
 
-#include "SkMath.h"
-#include "SkMalloc.h"
-#include "SkTLogic.h"
-#include "SkTypes.h"
+#include "include/core/SkMath.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkMalloc.h"
+#include "include/private/SkTLogic.h"
 #include <limits.h>
 #include <memory>
 #include <new>
diff --git a/include/private/SkThreadID.h b/include/private/SkThreadID.h
index a210a92..06b9be7 100644
--- a/include/private/SkThreadID.h
+++ b/include/private/SkThreadID.h
@@ -8,7 +8,7 @@
 #ifndef SkThreadID_DEFINED
 #define SkThreadID_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 typedef int64_t SkThreadID;
 
diff --git a/include/private/SkTo.h b/include/private/SkTo.h
index 9b5b7fd..d788f7b 100644
--- a/include/private/SkTo.h
+++ b/include/private/SkTo.h
@@ -7,8 +7,8 @@
 #ifndef SkTo_DEFINED
 #define SkTo_DEFINED
 
-#include "SkTypes.h"
-#include "SkTFitsIn.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTFitsIn.h"
 
 template <typename D, typename S> constexpr D SkTo(S s) {
     return SkASSERT(SkTFitsIn<D>(s)),
diff --git a/include/private/SkVx.h b/include/private/SkVx.h
index 90b0cac..5b47c2a 100644
--- a/include/private/SkVx.h
+++ b/include/private/SkVx.h
@@ -21,7 +21,7 @@
 // [1] Ideally we'd only align to T, but that tanks ARMv7 NEON codegen.
 // [2] Some compilers barf if we try to use N*sizeof(T), so instead we leave them at T.
 
-#include "SkTypes.h"         // SK_CPU_SSE_LEVEL*, etc.
+#include "include/core/SkTypes.h"
 #include <algorithm>         // std::min, std::max
 #include <cmath>             // std::ceil, std::floor, std::trunc, std::round, std::sqrt, etc.
 #include <cstdint>           // intXX_t
diff --git a/include/private/SkWeakRefCnt.h b/include/private/SkWeakRefCnt.h
index bbc0cb6..c360697 100644
--- a/include/private/SkWeakRefCnt.h
+++ b/include/private/SkWeakRefCnt.h
@@ -8,7 +8,7 @@
 #ifndef SkWeakRefCnt_DEFINED
 #define SkWeakRefCnt_DEFINED
 
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
 #include <atomic>
 
 /** \class SkWeakRefCnt
diff --git a/include/svg/SkSVGCanvas.h b/include/svg/SkSVGCanvas.h
index 1bf85a0..8d9ec50 100644
--- a/include/svg/SkSVGCanvas.h
+++ b/include/svg/SkSVGCanvas.h
@@ -8,7 +8,7 @@
 #ifndef SkSVGCanvas_DEFINED
 #define SkSVGCanvas_DEFINED
 
-#include "SkCanvas.h"
+#include "include/core/SkCanvas.h"
 
 class SkWStream;
 
diff --git a/include/third_party/vulkan/vulkan/vulkan.h b/include/third_party/vulkan/vulkan/vulkan.h
index d05c849..4fba7c9 100644
--- a/include/third_party/vulkan/vulkan/vulkan.h
+++ b/include/third_party/vulkan/vulkan/vulkan.h
@@ -17,21 +17,21 @@
 ** limitations under the License.
 */
 
-#include "vk_platform.h"
-#include "vulkan_core.h"
+#include "include/third_party/vulkan/vulkan/vk_platform.h"
+#include "include/third_party/vulkan/vulkan/vulkan_core.h"
 
 #ifdef VK_USE_PLATFORM_ANDROID_KHR
-#include "vulkan_android.h"
+#include "include/third_party/vulkan/vulkan/vulkan_android.h"
 #endif
 
 
 #ifdef VK_USE_PLATFORM_IOS_MVK
-#include "vulkan_ios.h"
+#include "include/third_party/vulkan/vulkan/vulkan_ios.h"
 #endif
 
 
 #ifdef VK_USE_PLATFORM_MACOS_MVK
-#include "vulkan_macos.h"
+#include "include/third_party/vulkan/vulkan/vulkan_macos.h"
 #endif
 
 
@@ -54,13 +54,13 @@
 
 #ifdef VK_USE_PLATFORM_WIN32_KHR
 #include <windows.h>
-#include "vulkan_win32.h"
+#include "include/third_party/vulkan/vulkan/vulkan_win32.h"
 #endif
 
 
 #ifdef VK_USE_PLATFORM_XCB_KHR
 #include <xcb/xcb.h>
-#include "vulkan_xcb.h"
+#include "include/third_party/vulkan/vulkan/vulkan_xcb.h"
 #endif
 
 
diff --git a/include/third_party/vulkan/vulkan/vulkan_core.h b/include/third_party/vulkan/vulkan/vulkan_core.h
index 9965ed0..4d8762f8e 100644
--- a/include/third_party/vulkan/vulkan/vulkan_core.h
+++ b/include/third_party/vulkan/vulkan/vulkan_core.h
@@ -28,7 +28,7 @@
 
 
 #define VK_VERSION_1_0 1
-#include "vk_platform.h"
+#include "include/third_party/vulkan/vulkan/vk_platform.h"
 
 #define VK_MAKE_VERSION(major, minor, patch) \
     (((major) << 22) | ((minor) << 12) | (patch))
diff --git a/include/utils/Sk3D.h b/include/utils/Sk3D.h
index f182811..9b233ba 100644
--- a/include/utils/Sk3D.h
+++ b/include/utils/Sk3D.h
@@ -8,8 +8,8 @@
 #ifndef Sk3D_DEFINED
 #define Sk3D_DEFINED
 
-#include "SkPoint3.h"
-#include "SkMatrix44.h"
+#include "include/core/SkMatrix44.h"
+#include "include/core/SkPoint3.h"
 
 SK_API void Sk3LookAt(SkMatrix44* dst, const SkPoint3& eye, const SkPoint3& center, const SkPoint3& up);
 SK_API bool Sk3Perspective(SkMatrix44* dst, float near, float far, float angle);
diff --git a/include/utils/SkAnimCodecPlayer.h b/include/utils/SkAnimCodecPlayer.h
index 4b88556..40660e1 100644
--- a/include/utils/SkAnimCodecPlayer.h
+++ b/include/utils/SkAnimCodecPlayer.h
@@ -8,7 +8,7 @@
 #ifndef SkAnimCodecPlayer_DEFINED
 #define SkAnimCodecPlayer_DEFINED
 
-#include "SkCodec.h"
+#include "include/codec/SkCodec.h"
 
 class SkImage;
 
diff --git a/include/utils/SkBase64.h b/include/utils/SkBase64.h
index 13350b7..d547cb4 100644
--- a/include/utils/SkBase64.h
+++ b/include/utils/SkBase64.h
@@ -8,7 +8,7 @@
 #ifndef SkBase64_DEFINED
 #define SkBase64_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 struct SkBase64 {
 public:
diff --git a/include/utils/SkCamera.h b/include/utils/SkCamera.h
index 26848c5..c216b6d 100644
--- a/include/utils/SkCamera.h
+++ b/include/utils/SkCamera.h
@@ -10,8 +10,8 @@
 #ifndef SkCamera_DEFINED
 #define SkCamera_DEFINED
 
-#include "../private/SkNoncopyable.h"
-#include "SkMatrix.h"
+#include "include/core/SkMatrix.h"
+#include "include/private/SkNoncopyable.h"
 
 class SkCanvas;
 
diff --git a/include/utils/SkCanvasStateUtils.h b/include/utils/SkCanvasStateUtils.h
index 23cada8..8b5c65e 100644
--- a/include/utils/SkCanvasStateUtils.h
+++ b/include/utils/SkCanvasStateUtils.h
@@ -8,7 +8,7 @@
 #ifndef SkCanvasStateUtils_DEFINED
 #define SkCanvasStateUtils_DEFINED
 
-#include "SkCanvas.h"
+#include "include/core/SkCanvas.h"
 
 class SkCanvasState;
 
diff --git a/include/utils/SkEventTracer.h b/include/utils/SkEventTracer.h
index d3cc04d..03e9d55 100644
--- a/include/utils/SkEventTracer.h
+++ b/include/utils/SkEventTracer.h
@@ -16,7 +16,7 @@
 // If you're looking for the tracing macros to instrument Skia itself, those
 // live in src/core/SkTraceEvent.h
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 class SK_API SkEventTracer {
 public:
diff --git a/include/utils/SkFrontBufferedStream.h b/include/utils/SkFrontBufferedStream.h
index e504dc5..52a0178 100644
--- a/include/utils/SkFrontBufferedStream.h
+++ b/include/utils/SkFrontBufferedStream.h
@@ -8,7 +8,7 @@
 #ifndef SkFrontBufferedStream_DEFINED
 #define SkFrontBufferedStream_DEFINED
 
-#include "SkStream.h"
+#include "include/core/SkStream.h"
 
 /**
  *  Specialized stream that buffers the first X bytes of a stream,
diff --git a/include/utils/SkInterpolator.h b/include/utils/SkInterpolator.h
index 7eedb4f..ac08ca4 100644
--- a/include/utils/SkInterpolator.h
+++ b/include/utils/SkInterpolator.h
@@ -9,9 +9,9 @@
 #ifndef SkInterpolator_DEFINED
 #define SkInterpolator_DEFINED
 
-#include "../private/SkNoncopyable.h"
-#include "../private/SkTo.h"
-#include "SkScalar.h"
+#include "include/core/SkScalar.h"
+#include "include/private/SkNoncopyable.h"
+#include "include/private/SkTo.h"
 
 class SK_API SkInterpolatorBase : SkNoncopyable {
 public:
diff --git a/include/utils/SkLua.h b/include/utils/SkLua.h
index 651c4a7..2d963ef 100644
--- a/include/utils/SkLua.h
+++ b/include/utils/SkLua.h
@@ -8,10 +8,10 @@
 #ifndef SkLua_DEFINED
 #define SkLua_DEFINED
 
-#include "SkColor.h"
-#include "SkPathEffect.h"
-#include "SkScalar.h"
-#include "SkString.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkString.h"
 
 struct lua_State;
 
diff --git a/include/utils/SkLuaCanvas.h b/include/utils/SkLuaCanvas.h
index 3feaa93..f75c8f2 100644
--- a/include/utils/SkLuaCanvas.h
+++ b/include/utils/SkLuaCanvas.h
@@ -8,9 +8,9 @@
 #ifndef SkLuaCanvas_DEFINED
 #define SkLuaCanvas_DEFINED
 
-#include "SkCanvas.h"
-#include "SkString.h"
-#include "SkVertices.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkString.h"
+#include "include/core/SkVertices.h"
 
 struct lua_State;
 
diff --git a/include/utils/SkNWayCanvas.h b/include/utils/SkNWayCanvas.h
index 9a4b177..5af9411 100644
--- a/include/utils/SkNWayCanvas.h
+++ b/include/utils/SkNWayCanvas.h
@@ -9,9 +9,9 @@
 #ifndef SkNWayCanvas_DEFINED
 #define SkNWayCanvas_DEFINED
 
-#include "../private/SkTDArray.h"
-#include "SkCanvasVirtualEnforcer.h"
-#include "SkNoDrawCanvas.h"
+#include "include/core/SkCanvasVirtualEnforcer.h"
+#include "include/private/SkTDArray.h"
+#include "include/utils/SkNoDrawCanvas.h"
 
 class SK_API SkNWayCanvas : public SkCanvasVirtualEnforcer<SkNoDrawCanvas> {
 public:
diff --git a/include/utils/SkNoDrawCanvas.h b/include/utils/SkNoDrawCanvas.h
index 88624a1..ae3dcab 100644
--- a/include/utils/SkNoDrawCanvas.h
+++ b/include/utils/SkNoDrawCanvas.h
@@ -8,9 +8,9 @@
 #ifndef SkNoDrawCanvas_DEFINED
 #define SkNoDrawCanvas_DEFINED
 
-#include "SkCanvas.h"
-#include "SkCanvasVirtualEnforcer.h"
-#include "SkVertices.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkCanvasVirtualEnforcer.h"
+#include "include/core/SkVertices.h"
 
 struct SkIRect;
 
diff --git a/include/utils/SkNullCanvas.h b/include/utils/SkNullCanvas.h
index 8e5e0ac..d63bf5c 100644
--- a/include/utils/SkNullCanvas.h
+++ b/include/utils/SkNullCanvas.h
@@ -8,7 +8,7 @@
 #ifndef SkNullCanvas_DEFINED
 #define SkNullCanvas_DEFINED
 
-#include "SkCanvas.h"
+#include "include/core/SkCanvas.h"
 
 /**
  * Creates a canvas that draws nothing. This is useful for performance testing.
diff --git a/include/utils/SkPaintFilterCanvas.h b/include/utils/SkPaintFilterCanvas.h
index e736400..572b07e 100644
--- a/include/utils/SkPaintFilterCanvas.h
+++ b/include/utils/SkPaintFilterCanvas.h
@@ -8,8 +8,8 @@
 #ifndef SkPaintFilterCanvas_DEFINED
 #define SkPaintFilterCanvas_DEFINED
 
-#include "SkCanvasVirtualEnforcer.h"
-#include "SkNWayCanvas.h"
+#include "include/core/SkCanvasVirtualEnforcer.h"
+#include "include/utils/SkNWayCanvas.h"
 
 class SkAndroidFrameworkUtils;
 
diff --git a/include/utils/SkParse.h b/include/utils/SkParse.h
index 6260175..9a738ba 100644
--- a/include/utils/SkParse.h
+++ b/include/utils/SkParse.h
@@ -10,7 +10,7 @@
 #ifndef SkParse_DEFINED
 #define SkParse_DEFINED
 
-#include "SkColor.h"
+#include "include/core/SkColor.h"
 
 class SK_API SkParse {
 public:
diff --git a/include/utils/SkParsePath.h b/include/utils/SkParsePath.h
index c52b3c0..09902fe 100644
--- a/include/utils/SkParsePath.h
+++ b/include/utils/SkParsePath.h
@@ -10,7 +10,7 @@
 #ifndef SkParsePath_DEFINED
 #define SkParsePath_DEFINED
 
-#include "SkPath.h"
+#include "include/core/SkPath.h"
 
 class SkString;
 
diff --git a/include/utils/SkRandom.h b/include/utils/SkRandom.h
index f3f2abf..0678010 100644
--- a/include/utils/SkRandom.h
+++ b/include/utils/SkRandom.h
@@ -8,9 +8,9 @@
 #ifndef SkRandom_DEFINED
 #define SkRandom_DEFINED
 
-#include "../private/SkFixed.h"
-#include "../private/SkFloatBits.h"
-#include "SkScalar.h"
+#include "include/core/SkScalar.h"
+#include "include/private/SkFixed.h"
+#include "include/private/SkFloatBits.h"
 
 /** \class SkRandom
 
diff --git a/include/utils/SkShadowUtils.h b/include/utils/SkShadowUtils.h
index 7beee85..d659ffc 100644
--- a/include/utils/SkShadowUtils.h
+++ b/include/utils/SkShadowUtils.h
@@ -8,10 +8,10 @@
 #ifndef SkShadowUtils_DEFINED
 #define SkShadowUtils_DEFINED
 
-#include "SkColor.h"
-#include "SkPoint3.h"
-#include "SkScalar.h"
-#include "../private/SkShadowFlags.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPoint3.h"
+#include "include/core/SkScalar.h"
+#include "include/private/SkShadowFlags.h"
 
 class SkCanvas;
 class SkPath;
diff --git a/include/utils/SkTextUtils.h b/include/utils/SkTextUtils.h
index 24b995e..9bff22a 100644
--- a/include/utils/SkTextUtils.h
+++ b/include/utils/SkTextUtils.h
@@ -8,10 +8,10 @@
 #ifndef SkTextUtils_DEFINED
 #define SkTextUtils_DEFINED
 
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkPaint.h"
-#include "SkString.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkString.h"
 
 class SkPath;
 
diff --git a/include/utils/mac/SkCGUtils.h b/include/utils/mac/SkCGUtils.h
index 06995c3..a8bde99 100644
--- a/include/utils/mac/SkCGUtils.h
+++ b/include/utils/mac/SkCGUtils.h
@@ -8,10 +8,10 @@
 #ifndef SkCGUtils_DEFINED
 #define SkCGUtils_DEFINED
 
-#include "SkSize.h"
-#include "SkImageInfo.h"
-#include "SkImage.h"
-#include "SkPixmap.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkPixmap.h"
+#include "include/core/SkSize.h"
 
 #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
 
diff --git a/modules/canvaskit/canvaskit_bindings.cpp b/modules/canvaskit/canvaskit_bindings.cpp
index 832e37e..2594859 100644
--- a/modules/canvaskit/canvaskit_bindings.cpp
+++ b/modules/canvaskit/canvaskit_bindings.cpp
@@ -5,59 +5,59 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlendMode.h"
-#include "SkBlurTypes.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkCornerPathEffect.h"
-#include "SkDashPathEffect.h"
-#include "SkData.h"
-#include "SkDiscretePathEffect.h"
-#include "SkEncodedImageFormat.h"
-#include "SkFilterQuality.h"
-#include "SkFont.h"
-#include "SkFontMgr.h"
-#include "SkFontMgrPriv.h"
-#include "SkFontTypes.h"
-#include "SkGradientShader.h"
-#include "SkImage.h"
-#include "SkImageInfo.h"
-#include "SkMakeUnique.h"
-#include "SkMaskFilter.h"
-#include "SkPaint.h"
-#include "SkParsePath.h"
-#include "SkPath.h"
-#include "SkPathEffect.h"
-#include "SkPathMeasure.h"
-#include "SkPathOps.h"
-#include "SkPicture.h"
-#include "SkPictureRecorder.h"
-#include "SkScalar.h"
-#include "SkShader.h"
-#include "SkShadowUtils.h"
-#include "SkShaper.h"
-#include "SkString.h"
-#include "SkStrokeRec.h"
-#include "SkSurface.h"
-#include "SkSurfaceProps.h"
-#include "SkTextBlob.h"
-#include "SkTrimPathEffect.h"
-#include "SkTypeface.h"
-#include "SkTypes.h"
-#include "SkVertices.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkBlurTypes.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkData.h"
+#include "include/core/SkEncodedImageFormat.h"
+#include "include/core/SkFilterQuality.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkFontTypes.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkPathMeasure.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkSurfaceProps.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "include/core/SkTypes.h"
+#include "include/core/SkVertices.h"
+#include "include/effects/SkCornerPathEffect.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "include/effects/SkDiscretePathEffect.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/effects/SkTrimPathEffect.h"
+#include "include/pathops/SkPathOps.h"
+#include "include/utils/SkParsePath.h"
+#include "include/utils/SkShadowUtils.h"
+#include "modules/skshaper/include/SkShaper.h"
+#include "src/core/SkFontMgrPriv.h"
+#include "src/core/SkMakeUnique.h"
 
 #include <iostream>
 #include <string>
 
-#include "WasmAliases.h"
+#include "modules/canvaskit/WasmAliases.h"
 #include <emscripten.h>
 #include <emscripten/bind.h>
 
 #if SK_SUPPORT_GPU
-#include "GrBackendSurface.h"
-#include "GrContext.h"
-#include "GrGLInterface.h"
-#include "GrGLTypes.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "include/gpu/gl/GrGLTypes.h"
 
 #include <GL/gl.h>
 #include <emscripten/html5.h>
diff --git a/modules/canvaskit/compile.sh b/modules/canvaskit/compile.sh
index 74161bc..9c4e5b8 100755
--- a/modules/canvaskit/compile.sh
+++ b/modules/canvaskit/compile.sh
@@ -196,27 +196,9 @@
 # Emscripten will use LLD, which may relax this requirement.
 ${EMCXX} \
     $RELEASE_CONF \
-    -Iexperimental \
-    -Iinclude/c \
-    -Iinclude/codec \
-    -Iinclude/config \
-    -Iinclude/core \
-    -Iinclude/effects \
-    -Iinclude/gpu \
-    -Iinclude/gpu/gl \
-    -Iinclude/pathops \
-    -Iinclude/private \
-    -Iinclude/utils/ \
-    -Imodules/skottie/include \
-    -Imodules/skottie/utils \
-    -Imodules/sksg/include \
-    -Imodules/skshaper/include \
-    -Imodules/particles/include \
-    -Isrc/core/ \
-    -Isrc/utils/ \
+    -I. \
     -Ithird_party/icu \
     -Ithird_party/skcms \
-    -Itools \
     -DSK_DISABLE_READBUFFER \
     -DSK_DISABLE_AAA \
     $WASM_GPU \
diff --git a/modules/canvaskit/particles_bindings.cpp b/modules/canvaskit/particles_bindings.cpp
index df7fff6..034ffdd 100644
--- a/modules/canvaskit/particles_bindings.cpp
+++ b/modules/canvaskit/particles_bindings.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkTypes.h"
-#include "SkParticleAffector.h"
-#include "SkParticleDrawable.h"
-#include "SkParticleEffect.h"
-#include "SkParticleSerialization.h"
-#include "SkRandom.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkTypes.h"
+#include "include/utils/SkRandom.h"
+#include "modules/particles/include/SkParticleAffector.h"
+#include "modules/particles/include/SkParticleDrawable.h"
+#include "modules/particles/include/SkParticleEffect.h"
+#include "modules/particles/include/SkParticleSerialization.h"
 
 #include <string>
 
diff --git a/modules/canvaskit/skottie_bindings.cpp b/modules/canvaskit/skottie_bindings.cpp
index 3335b80..abdaf43 100644
--- a/modules/canvaskit/skottie_bindings.cpp
+++ b/modules/canvaskit/skottie_bindings.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkImage.h"
-#include "SkMakeUnique.h"
-#include "SkTypes.h"
-#include "SkString.h"
-#include "Skottie.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "modules/skottie/include/Skottie.h"
+#include "src/core/SkMakeUnique.h"
 
 #include <string>
 #include <vector>
 
 #include <emscripten.h>
 #include <emscripten/bind.h>
-#include "WasmAliases.h"
+#include "modules/canvaskit/WasmAliases.h"
 
 #if SK_INCLUDE_MANAGED_SKOTTIE
-#include "SkottieProperty.h"
-#include "SkottieUtils.h"
+#include "modules/skottie/include/SkottieProperty.h"
+#include "modules/skottie/utils/SkottieUtils.h"
 #endif // SK_INCLUDE_MANAGED_SKOTTIE
 
 using namespace emscripten;
diff --git a/modules/particles/include/SkCurve.h b/modules/particles/include/SkCurve.h
index b77bb2e..4db4615 100644
--- a/modules/particles/include/SkCurve.h
+++ b/modules/particles/include/SkCurve.h
@@ -8,10 +8,10 @@
 #ifndef SkCurve_DEFINED
 #define SkCurve_DEFINED
 
-#include "SkColor.h"
-#include "SkParticleData.h"
-#include "SkScalar.h"
-#include "SkTArray.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkScalar.h"
+#include "include/private/SkTArray.h"
+#include "modules/particles/include/SkParticleData.h"
 
 class SkFieldVisitor;
 
diff --git a/modules/particles/include/SkParticleAffector.h b/modules/particles/include/SkParticleAffector.h
index 634d555..be3d48f 100644
--- a/modules/particles/include/SkParticleAffector.h
+++ b/modules/particles/include/SkParticleAffector.h
@@ -8,10 +8,10 @@
 #ifndef SkParticleAffector_DEFINED
 #define SkParticleAffector_DEFINED
 
-#include "SkReflected.h"
+#include "modules/particles/include/SkReflected.h"
 
-#include "SkParticleData.h"
-#include "SkPoint.h"
+#include "include/core/SkPoint.h"
+#include "modules/particles/include/SkParticleData.h"
 
 struct SkColorCurve;
 struct SkCurve;
diff --git a/modules/particles/include/SkParticleData.h b/modules/particles/include/SkParticleData.h
index 906f811..1b2daef 100644
--- a/modules/particles/include/SkParticleData.h
+++ b/modules/particles/include/SkParticleData.h
@@ -8,11 +8,11 @@
 #ifndef SkParticleData_DEFINED
 #define SkParticleData_DEFINED
 
-#include "SkColor.h"
-#include "SkPoint.h"
-#include "SkRandom.h"
-#include "SkReflected.h"
-#include "SkRSXform.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRSXform.h"
+#include "include/utils/SkRandom.h"
+#include "modules/particles/include/SkReflected.h"
 
 /*
  *  Various structs used to communicate particle information among emitters, affectors, etc.
diff --git a/modules/particles/include/SkParticleDrawable.h b/modules/particles/include/SkParticleDrawable.h
index a47b24d..9c67884 100644
--- a/modules/particles/include/SkParticleDrawable.h
+++ b/modules/particles/include/SkParticleDrawable.h
@@ -8,7 +8,7 @@
 #ifndef SkParticleDrawable_DEFINED
 #define SkParticleDrawable_DEFINED
 
-#include "SkReflected.h"
+#include "modules/particles/include/SkReflected.h"
 
 class SkCanvas;
 struct SkParticleState;
diff --git a/modules/particles/include/SkParticleEffect.h b/modules/particles/include/SkParticleEffect.h
index 1af9c68..c4086d3 100644
--- a/modules/particles/include/SkParticleEffect.h
+++ b/modules/particles/include/SkParticleEffect.h
@@ -8,11 +8,11 @@
 #ifndef SkParticleEffect_DEFINED
 #define SkParticleEffect_DEFINED
 
-#include "SkAutoMalloc.h"
-#include "SkCurve.h"
-#include "SkRandom.h"
-#include "SkRefCnt.h"
-#include "SkTArray.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkTArray.h"
+#include "include/utils/SkRandom.h"
+#include "modules/particles/include/SkCurve.h"
+#include "src/core/SkAutoMalloc.h"
 
 class SkCanvas;
 class SkFieldVisitor;
diff --git a/modules/particles/include/SkParticleSerialization.h b/modules/particles/include/SkParticleSerialization.h
index dbcfe66..0cb057d 100644
--- a/modules/particles/include/SkParticleSerialization.h
+++ b/modules/particles/include/SkParticleSerialization.h
@@ -8,11 +8,11 @@
 #ifndef SkParticleSerialization_DEFINED
 #define SkParticleSerialization_DEFINED
 
-#include "SkReflected.h"
+#include "modules/particles/include/SkReflected.h"
 
-#include "SkJSON.h"
-#include "SkJSONWriter.h"
-#include "SkTArray.h"
+#include "include/private/SkTArray.h"
+#include "src/utils/SkJSON.h"
+#include "src/utils/SkJSONWriter.h"
 
 class SkToJsonVisitor : public SkFieldVisitor {
 public:
diff --git a/modules/particles/include/SkReflected.h b/modules/particles/include/SkReflected.h
index 1a0d43b..a4c3eb3 100644
--- a/modules/particles/include/SkReflected.h
+++ b/modules/particles/include/SkReflected.h
@@ -8,9 +8,9 @@
 #ifndef SkReflected_DEFINED
 #define SkReflected_DEFINED
 
-#include "SkColor.h"
-#include "SkRefCnt.h"
-#include "SkTArray.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkTArray.h"
 
 #include <string.h>
 
diff --git a/modules/particles/src/SkCurve.cpp b/modules/particles/src/SkCurve.cpp
index 5dcfb60d..dbd754b 100644
--- a/modules/particles/src/SkCurve.cpp
+++ b/modules/particles/src/SkCurve.cpp
@@ -5,11 +5,11 @@
 * found in the LICENSE file.
 */
 
-#include "SkCurve.h"
+#include "modules/particles/include/SkCurve.h"
 
-#include "SkParticleData.h"
-#include "SkRandom.h"
-#include "SkReflected.h"
+#include "include/utils/SkRandom.h"
+#include "modules/particles/include/SkParticleData.h"
+#include "modules/particles/include/SkReflected.h"
 
 constexpr SkFieldVisitor::EnumStringMapping gCurveSegmentTypeMapping[] = {
     { kConstant_SegmentType, "Constant" },
diff --git a/modules/particles/src/SkParticleAffector.cpp b/modules/particles/src/SkParticleAffector.cpp
index 82ea43f..80094ff 100644
--- a/modules/particles/src/SkParticleAffector.cpp
+++ b/modules/particles/src/SkParticleAffector.cpp
@@ -5,15 +5,15 @@
 * found in the LICENSE file.
 */
 
-#include "SkParticleAffector.h"
+#include "modules/particles/include/SkParticleAffector.h"
 
-#include "SkContourMeasure.h"
-#include "SkCurve.h"
-#include "SkParsePath.h"
-#include "SkParticleData.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkTextUtils.h"
+#include "include/core/SkContourMeasure.h"
+#include "include/core/SkPath.h"
+#include "include/utils/SkParsePath.h"
+#include "include/utils/SkRandom.h"
+#include "include/utils/SkTextUtils.h"
+#include "modules/particles/include/SkCurve.h"
+#include "modules/particles/include/SkParticleData.h"
 
 
 void SkParticleAffector::apply(const SkParticleUpdateParams& params,
diff --git a/modules/particles/src/SkParticleDrawable.cpp b/modules/particles/src/SkParticleDrawable.cpp
index 9c31cc0..4f942b2 100644
--- a/modules/particles/src/SkParticleDrawable.cpp
+++ b/modules/particles/src/SkParticleDrawable.cpp
@@ -5,17 +5,17 @@
 * found in the LICENSE file.
 */
 
-#include "SkParticleDrawable.h"
+#include "modules/particles/include/SkParticleDrawable.h"
 
-#include "SkAutoMalloc.h"
-#include "SkCanvas.h"
-#include "SkImage.h"
-#include "SkPaint.h"
-#include "SkParticleData.h"
-#include "SkRect.h"
-#include "SkSurface.h"
-#include "SkString.h"
-#include "SkRSXform.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkRSXform.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkString.h"
+#include "include/core/SkSurface.h"
+#include "modules/particles/include/SkParticleData.h"
+#include "src/core/SkAutoMalloc.h"
 
 static sk_sp<SkImage> make_circle_image(int radius) {
     auto surface = SkSurface::MakeRasterN32Premul(radius * 2, radius * 2);
diff --git a/modules/particles/src/SkParticleEffect.cpp b/modules/particles/src/SkParticleEffect.cpp
index 1cd0eab..1e79a5f 100644
--- a/modules/particles/src/SkParticleEffect.cpp
+++ b/modules/particles/src/SkParticleEffect.cpp
@@ -5,15 +5,15 @@
 * found in the LICENSE file.
 */
 
-#include "SkParticleEffect.h"
+#include "modules/particles/include/SkParticleEffect.h"
 
-#include "SkCanvas.h"
-#include "SkColorData.h"
-#include "SkPaint.h"
-#include "SkParticleAffector.h"
-#include "SkParticleDrawable.h"
-#include "SkReflected.h"
-#include "SkRSXform.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkRSXform.h"
+#include "include/private/SkColorData.h"
+#include "modules/particles/include/SkParticleAffector.h"
+#include "modules/particles/include/SkParticleDrawable.h"
+#include "modules/particles/include/SkReflected.h"
 
 void SkParticleEffectParams::visitFields(SkFieldVisitor* v) {
     v->visit("MaxCount", fMaxCount);
diff --git a/modules/particles/src/SkReflected.cpp b/modules/particles/src/SkReflected.cpp
index 938bb87..94e59ca 100644
--- a/modules/particles/src/SkReflected.cpp
+++ b/modules/particles/src/SkReflected.cpp
@@ -5,9 +5,9 @@
 * found in the LICENSE file.
 */
 
-#include "SkReflected.h"
+#include "modules/particles/include/SkReflected.h"
 
-#include "SkCurve.h"
+#include "modules/particles/include/SkCurve.h"
 
 SkSTArray<16, const SkReflected::Type*, true> SkReflected::gTypes;
 
diff --git a/modules/pathkit/compile.sh b/modules/pathkit/compile.sh
index 60b87d0..0f77cad 100755
--- a/modules/pathkit/compile.sh
+++ b/modules/pathkit/compile.sh
@@ -105,18 +105,7 @@
 echo "Generating WASM"
 
 ${EMCXX} $RELEASE_CONF -std=c++14 \
--Iinclude/config \
--Iinclude/core \
--Iinclude/effects \
--Iinclude/gpu \
--Iinclude/pathops \
--Iinclude/private \
--Iinclude/utils \
--Isrc/core \
--Isrc/gpu \
--Isrc/shaders \
--Isrc/opts \
--Isrc/utils \
+-I. \
 -Ithird_party/skcms \
 -std=c++14 \
 --bind \
diff --git a/modules/pathkit/pathkit_wasm_bindings.cpp b/modules/pathkit/pathkit_wasm_bindings.cpp
index 0837ee0..c47af69 100644
--- a/modules/pathkit/pathkit_wasm_bindings.cpp
+++ b/modules/pathkit/pathkit_wasm_bindings.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "SkCubicMap.h"
-#include "SkDashPathEffect.h"
-#include "SkFloatBits.h"
-#include "SkFloatingPoint.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkPaintDefaults.h"
-#include "SkParsePath.h"
-#include "SkPath.h"
-#include "SkPathOps.h"
-#include "SkRect.h"
-#include "SkString.h"
-#include "SkStrokeRec.h"
-#include "SkTrimPathEffect.h"
+#include "include/core/SkCubicMap.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkString.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "include/effects/SkTrimPathEffect.h"
+#include "include/pathops/SkPathOps.h"
+#include "include/private/SkFloatBits.h"
+#include "include/private/SkFloatingPoint.h"
+#include "include/utils/SkParsePath.h"
+#include "src/core/SkPaintDefaults.h"
 
 #include <emscripten/emscripten.h>
 #include <emscripten/bind.h>
diff --git a/modules/skottie/fuzz/FuzzSkottieJSON.cpp b/modules/skottie/fuzz/FuzzSkottieJSON.cpp
index 6c93bce..33d26c4 100644
--- a/modules/skottie/fuzz/FuzzSkottieJSON.cpp
+++ b/modules/skottie/fuzz/FuzzSkottieJSON.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkData.h"
-#include "SkFontMgrPriv.h"
-#include "SkStream.h"
-#include "Skottie.h"
-#include "TestFontMgr.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
+#include "modules/skottie/include/Skottie.h"
+#include "src/core/SkFontMgrPriv.h"
+#include "tools/fonts/TestFontMgr.h"
 
 void FuzzSkottieJSON(sk_sp<SkData> bytes) {
     SkMemoryStream stream(bytes);
diff --git a/modules/skottie/gm/SkottieGM.cpp b/modules/skottie/gm/SkottieGM.cpp
index e63c39d..b65432c3 100644
--- a/modules/skottie/gm/SkottieGM.cpp
+++ b/modules/skottie/gm/SkottieGM.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "Resources.h"
-#include "SkAnimCodecPlayer.h"
-#include "SkColor.h"
-#include "SkMakeUnique.h"
-#include "Skottie.h"
-#include "SkottieProperty.h"
-#include "SkottieUtils.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "include/core/SkColor.h"
+#include "include/utils/SkAnimCodecPlayer.h"
+#include "modules/skottie/include/Skottie.h"
+#include "modules/skottie/include/SkottieProperty.h"
+#include "modules/skottie/utils/SkottieUtils.h"
+#include "src/core/SkMakeUnique.h"
+#include "tools/Resources.h"
+#include "tools/timer/AnimTimer.h"
 
 #include <cmath>
 #include <vector>
diff --git a/modules/skottie/include/Skottie.h b/modules/skottie/include/Skottie.h
index dfd7381..cc29dc9 100644
--- a/modules/skottie/include/Skottie.h
+++ b/modules/skottie/include/Skottie.h
@@ -8,11 +8,11 @@
 #ifndef Skottie_DEFINED
 #define Skottie_DEFINED
 
-#include "SkFontMgr.h"
-#include "SkRefCnt.h"
-#include "SkSize.h"
-#include "SkString.h"
-#include "SkTypes.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
 
 #include <memory>
 
diff --git a/modules/skottie/include/SkottieProperty.h b/modules/skottie/include/SkottieProperty.h
index a3dee71..90c257c 100644
--- a/modules/skottie/include/SkottieProperty.h
+++ b/modules/skottie/include/SkottieProperty.h
@@ -8,9 +8,9 @@
 #ifndef SkottieProperty_DEFINED
 #define SkottieProperty_DEFINED
 
-#include "SkColor.h"
-#include "SkPoint.h"
-#include "SkRefCnt.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRefCnt.h"
 
 #include <functional>
 
diff --git a/modules/skottie/src/Skottie.cpp b/modules/skottie/src/Skottie.cpp
index f9c6c8e..6fbde3e 100644
--- a/modules/skottie/src/Skottie.cpp
+++ b/modules/skottie/src/Skottie.cpp
@@ -5,31 +5,31 @@
  * found in the LICENSE file.
  */
 
-#include "Skottie.h"
+#include "modules/skottie/include/Skottie.h"
 
-#include "SkCanvas.h"
-#include "SkData.h"
-#include "SkFontMgr.h"
-#include "SkImage.h"
-#include "SkMakeUnique.h"
-#include "SkPaint.h"
-#include "SkPoint.h"
-#include "SkSGInvalidationController.h"
-#include "SkSGOpacityEffect.h"
-#include "SkSGPaint.h"
-#include "SkSGPath.h"
-#include "SkSGRenderEffect.h"
-#include "SkSGScene.h"
-#include "SkSGTransform.h"
-#include "SkStream.h"
-#include "SkTArray.h"
-#include "SkTo.h"
-#include "SkottieAdapter.h"
-#include "SkottieJson.h"
-#include "SkottiePriv.h"
-#include "SkottieProperty.h"
-#include "SkottieValue.h"
-#include "SkTraceEvent.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTo.h"
+#include "modules/skottie/include/SkottieProperty.h"
+#include "modules/skottie/src/SkottieAdapter.h"
+#include "modules/skottie/src/SkottieJson.h"
+#include "modules/skottie/src/SkottiePriv.h"
+#include "modules/skottie/src/SkottieValue.h"
+#include "modules/sksg/include/SkSGInvalidationController.h"
+#include "modules/sksg/include/SkSGOpacityEffect.h"
+#include "modules/sksg/include/SkSGPaint.h"
+#include "modules/sksg/include/SkSGPath.h"
+#include "modules/sksg/include/SkSGRenderEffect.h"
+#include "modules/sksg/include/SkSGScene.h"
+#include "modules/sksg/include/SkSGTransform.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkTraceEvent.h"
 
 #include <chrono>
 #include <cmath>
diff --git a/modules/skottie/src/SkottieAdapter.cpp b/modules/skottie/src/SkottieAdapter.cpp
index 3fdda99..aa24fb4 100644
--- a/modules/skottie/src/SkottieAdapter.cpp
+++ b/modules/skottie/src/SkottieAdapter.cpp
@@ -5,29 +5,29 @@
  * found in the LICENSE file.
  */
 
-#include "SkottieAdapter.h"
+#include "modules/skottie/src/SkottieAdapter.h"
 
-#include "Sk3D.h"
-#include "SkFont.h"
-#include "SkMatrix.h"
-#include "SkMatrix44.h"
-#include "SkPath.h"
-#include "SkRRect.h"
-#include "SkSGColorFilter.h"
-#include "SkSGDraw.h"
-#include "SkSGGradient.h"
-#include "SkSGGroup.h"
-#include "SkSGPaint.h"
-#include "SkSGPath.h"
-#include "SkSGRect.h"
-#include "SkSGRenderEffect.h"
-#include "SkSGText.h"
-#include "SkSGTransform.h"
-#include "SkSGTrimEffect.h"
-#include "SkTableColorFilter.h"
-#include "SkTo.h"
-#include "SkottieShaper.h"
-#include "SkottieValue.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkMatrix44.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "include/effects/SkTableColorFilter.h"
+#include "include/private/SkTo.h"
+#include "include/utils/Sk3D.h"
+#include "modules/skottie/src/SkottieShaper.h"
+#include "modules/skottie/src/SkottieValue.h"
+#include "modules/sksg/include/SkSGColorFilter.h"
+#include "modules/sksg/include/SkSGDraw.h"
+#include "modules/sksg/include/SkSGGradient.h"
+#include "modules/sksg/include/SkSGGroup.h"
+#include "modules/sksg/include/SkSGPaint.h"
+#include "modules/sksg/include/SkSGPath.h"
+#include "modules/sksg/include/SkSGRect.h"
+#include "modules/sksg/include/SkSGRenderEffect.h"
+#include "modules/sksg/include/SkSGText.h"
+#include "modules/sksg/include/SkSGTransform.h"
+#include "modules/sksg/include/SkSGTrimEffect.h"
 
 #include <cmath>
 #include <utility>
diff --git a/modules/skottie/src/SkottieAdapter.h b/modules/skottie/src/SkottieAdapter.h
index b5e0cb9..a1a047c 100644
--- a/modules/skottie/src/SkottieAdapter.h
+++ b/modules/skottie/src/SkottieAdapter.h
@@ -8,10 +8,10 @@
 #ifndef SkottieAdapter_DEFINED
 #define SkottieAdapter_DEFINED
 
-#include "SkPoint.h"
-#include "SkRefCnt.h"
-#include "SkSize.h"
-#include "SkottieValue.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSize.h"
+#include "modules/skottie/src/SkottieValue.h"
 
 namespace sksg {
 
diff --git a/modules/skottie/src/SkottieAnimator.cpp b/modules/skottie/src/SkottieAnimator.cpp
index 189f421..52e9f65 100644
--- a/modules/skottie/src/SkottieAnimator.cpp
+++ b/modules/skottie/src/SkottieAnimator.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkCubicMap.h"
-#include "SkottieJson.h"
-#include "SkottiePriv.h"
-#include "SkottieValue.h"
-#include "SkSGScene.h"
-#include "SkString.h"
+#include "include/core/SkCubicMap.h"
+#include "include/core/SkString.h"
+#include "modules/skottie/src/SkottieJson.h"
+#include "modules/skottie/src/SkottiePriv.h"
+#include "modules/skottie/src/SkottieValue.h"
+#include "modules/sksg/include/SkSGScene.h"
 
 #include <memory>
 #include <vector>
diff --git a/modules/skottie/src/SkottieJson.cpp b/modules/skottie/src/SkottieJson.cpp
index 7f1c3b6..089526b 100644
--- a/modules/skottie/src/SkottieJson.cpp
+++ b/modules/skottie/src/SkottieJson.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkottieJson.h"
+#include "modules/skottie/src/SkottieJson.h"
 
-#include "SkData.h"
-#include "SkScalar.h"
-#include "SkPath.h"
-#include "SkPoint.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkottieValue.h"
+#include "include/core/SkData.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "modules/skottie/src/SkottieValue.h"
 #include <vector>
 
 namespace skottie {
diff --git a/modules/skottie/src/SkottieJson.h b/modules/skottie/src/SkottieJson.h
index 98ee25a..0844137 100644
--- a/modules/skottie/src/SkottieJson.h
+++ b/modules/skottie/src/SkottieJson.h
@@ -8,8 +8,8 @@
 #ifndef SkottieJson_DEFINED
 #define SkottieJson_DEFINED
 
-#include "SkJSON.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "src/utils/SkJSON.h"
 
 class SkData;
 class SkStream;
diff --git a/modules/skottie/src/SkottieLayer.cpp b/modules/skottie/src/SkottieLayer.cpp
index 9e69979..832214a 100644
--- a/modules/skottie/src/SkottieLayer.cpp
+++ b/modules/skottie/src/SkottieLayer.cpp
@@ -5,28 +5,28 @@
  * found in the LICENSE file.
  */
 
-#include "SkottiePriv.h"
+#include "modules/skottie/src/SkottiePriv.h"
 
-#include "SkData.h"
-#include "SkFontMgr.h"
-#include "SkImage.h"
-#include "SkJSON.h"
-#include "SkMakeUnique.h"
-#include "SkottieAdapter.h"
-#include "SkottieJson.h"
-#include "SkottieValue.h"
-#include "SkParse.h"
-#include "SkSGClipEffect.h"
-#include "SkSGDraw.h"
-#include "SkSGGroup.h"
-#include "SkSGImage.h"
-#include "SkSGMaskEffect.h"
-#include "SkSGMerge.h"
-#include "SkSGOpacityEffect.h"
-#include "SkSGPaint.h"
-#include "SkSGPath.h"
-#include "SkSGRect.h"
-#include "SkSGTransform.h"
+#include "include/core/SkData.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkImage.h"
+#include "include/utils/SkParse.h"
+#include "modules/skottie/src/SkottieAdapter.h"
+#include "modules/skottie/src/SkottieJson.h"
+#include "modules/skottie/src/SkottieValue.h"
+#include "modules/sksg/include/SkSGClipEffect.h"
+#include "modules/sksg/include/SkSGDraw.h"
+#include "modules/sksg/include/SkSGGroup.h"
+#include "modules/sksg/include/SkSGImage.h"
+#include "modules/sksg/include/SkSGMaskEffect.h"
+#include "modules/sksg/include/SkSGMerge.h"
+#include "modules/sksg/include/SkSGOpacityEffect.h"
+#include "modules/sksg/include/SkSGPaint.h"
+#include "modules/sksg/include/SkSGPath.h"
+#include "modules/sksg/include/SkSGRect.h"
+#include "modules/sksg/include/SkSGTransform.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/utils/SkJSON.h"
 
 #include <algorithm>
 #include <vector>
diff --git a/modules/skottie/src/SkottieLayerEffect.cpp b/modules/skottie/src/SkottieLayerEffect.cpp
index 5cc3a65..5f3e8f8 100644
--- a/modules/skottie/src/SkottieLayerEffect.cpp
+++ b/modules/skottie/src/SkottieLayerEffect.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkottiePriv.h"
+#include "modules/skottie/src/SkottiePriv.h"
 
-#include "SkJSON.h"
-#include "SkottieAdapter.h"
-#include "SkottieJson.h"
-#include "SkottieValue.h"
-#include "SkSGColorFilter.h"
-#include "SkSGPaint.h"
-#include "SkSGRenderEffect.h"
+#include "modules/skottie/src/SkottieAdapter.h"
+#include "modules/skottie/src/SkottieJson.h"
+#include "modules/skottie/src/SkottieValue.h"
+#include "modules/sksg/include/SkSGColorFilter.h"
+#include "modules/sksg/include/SkSGPaint.h"
+#include "modules/sksg/include/SkSGRenderEffect.h"
+#include "src/utils/SkJSON.h"
 
 namespace skottie {
 namespace internal {
diff --git a/modules/skottie/src/SkottiePrecompLayer.cpp b/modules/skottie/src/SkottiePrecompLayer.cpp
index f110c2d..7c6a8cbf 100644
--- a/modules/skottie/src/SkottiePrecompLayer.cpp
+++ b/modules/skottie/src/SkottiePrecompLayer.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkottiePriv.h"
+#include "modules/skottie/src/SkottiePriv.h"
 
-#include "SkJSON.h"
-#include "SkottieJson.h"
-#include "SkottieValue.h"
-#include "SkMakeUnique.h"
-#include "SkSGRenderNode.h"
-#include "SkSGScene.h"
-#include "SkTLazy.h"
+#include "modules/skottie/src/SkottieJson.h"
+#include "modules/skottie/src/SkottieValue.h"
+#include "modules/sksg/include/SkSGRenderNode.h"
+#include "modules/sksg/include/SkSGScene.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkTLazy.h"
+#include "src/utils/SkJSON.h"
 
 namespace skottie {
 namespace internal {
diff --git a/modules/skottie/src/SkottiePriv.h b/modules/skottie/src/SkottiePriv.h
index 979f694..f4f8be2 100644
--- a/modules/skottie/src/SkottiePriv.h
+++ b/modules/skottie/src/SkottiePriv.h
@@ -8,15 +8,15 @@
 #ifndef SkottiePriv_DEFINED
 #define SkottiePriv_DEFINED
 
-#include "Skottie.h"
+#include "modules/skottie/include/Skottie.h"
 
-#include "SkFontStyle.h"
-#include "SkottieProperty.h"
-#include "SkSGScene.h"
-#include "SkString.h"
-#include "SkTHash.h"
-#include "SkTypeface.h"
-#include "SkUTF.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkTHash.h"
+#include "modules/skottie/include/SkottieProperty.h"
+#include "modules/sksg/include/SkSGScene.h"
+#include "src/utils/SkUTF.h"
 
 #include <functional>
 
diff --git a/modules/skottie/src/SkottieProperty.cpp b/modules/skottie/src/SkottieProperty.cpp
index c5d7ed4..e36fd82 100644
--- a/modules/skottie/src/SkottieProperty.cpp
+++ b/modules/skottie/src/SkottieProperty.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkottieProperty.h"
+#include "modules/skottie/include/SkottieProperty.h"
 
-#include "SkottieAdapter.h"
-#include "SkSGOpacityEffect.h"
-#include "SkSGPaint.h"
+#include "modules/skottie/src/SkottieAdapter.h"
+#include "modules/sksg/include/SkSGOpacityEffect.h"
+#include "modules/sksg/include/SkSGPaint.h"
 
 namespace skottie {
 
diff --git a/modules/skottie/src/SkottieShapeLayer.cpp b/modules/skottie/src/SkottieShapeLayer.cpp
index 63c6c8f..60d398c 100644
--- a/modules/skottie/src/SkottieShapeLayer.cpp
+++ b/modules/skottie/src/SkottieShapeLayer.cpp
@@ -5,25 +5,25 @@
  * found in the LICENSE file.
  */
 
-#include "SkottiePriv.h"
+#include "modules/skottie/src/SkottiePriv.h"
 
-#include "SkJSON.h"
-#include "SkottieAdapter.h"
-#include "SkottieJson.h"
-#include "SkottieValue.h"
-#include "SkPath.h"
-#include "SkSGDraw.h"
-#include "SkSGGeometryTransform.h"
-#include "SkSGGradient.h"
-#include "SkSGGroup.h"
-#include "SkSGMerge.h"
-#include "SkSGPaint.h"
-#include "SkSGPath.h"
-#include "SkSGRect.h"
-#include "SkSGRenderEffect.h"
-#include "SkSGRoundEffect.h"
-#include "SkSGTransform.h"
-#include "SkSGTrimEffect.h"
+#include "include/core/SkPath.h"
+#include "modules/skottie/src/SkottieAdapter.h"
+#include "modules/skottie/src/SkottieJson.h"
+#include "modules/skottie/src/SkottieValue.h"
+#include "modules/sksg/include/SkSGDraw.h"
+#include "modules/sksg/include/SkSGGeometryTransform.h"
+#include "modules/sksg/include/SkSGGradient.h"
+#include "modules/sksg/include/SkSGGroup.h"
+#include "modules/sksg/include/SkSGMerge.h"
+#include "modules/sksg/include/SkSGPaint.h"
+#include "modules/sksg/include/SkSGPath.h"
+#include "modules/sksg/include/SkSGRect.h"
+#include "modules/sksg/include/SkSGRenderEffect.h"
+#include "modules/sksg/include/SkSGRoundEffect.h"
+#include "modules/sksg/include/SkSGTransform.h"
+#include "modules/sksg/include/SkSGTrimEffect.h"
+#include "src/utils/SkJSON.h"
 
 #include <algorithm>
 #include <iterator>
diff --git a/modules/skottie/src/SkottieShaper.cpp b/modules/skottie/src/SkottieShaper.cpp
index d801455..1a33379 100644
--- a/modules/skottie/src/SkottieShaper.cpp
+++ b/modules/skottie/src/SkottieShaper.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkottieShaper.h"
+#include "modules/skottie/src/SkottieShaper.h"
 
-#include "SkFontMetrics.h"
-#include "SkShaper.h"
-#include "SkTextBlob.h"
-#include "SkTextBlobPriv.h"
-#include "SkUTF.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkTextBlob.h"
+#include "modules/skshaper/include/SkShaper.h"
+#include "src/core/SkTextBlobPriv.h"
+#include "src/utils/SkUTF.h"
 
 namespace skottie {
 namespace {
diff --git a/modules/skottie/src/SkottieShaper.h b/modules/skottie/src/SkottieShaper.h
index 816141d..1c94260 100644
--- a/modules/skottie/src/SkottieShaper.h
+++ b/modules/skottie/src/SkottieShaper.h
@@ -8,8 +8,8 @@
 #ifndef SkottieShaper_DEFINED
 #define SkottieShaper_DEFINED
 
-#include "SkPoint.h"
-#include "SkTextUtils.h"
+#include "include/core/SkPoint.h"
+#include "include/utils/SkTextUtils.h"
 
 class SkTextBlob;
 
diff --git a/modules/skottie/src/SkottieTest.cpp b/modules/skottie/src/SkottieTest.cpp
index 34a4073..61eaea6 100644
--- a/modules/skottie/src/SkottieTest.cpp
+++ b/modules/skottie/src/SkottieTest.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkMatrix.h"
-#include "Skottie.h"
-#include "SkottieProperty.h"
-#include "SkottieShaper.h"
-#include "SkStream.h"
-#include "SkTextBlob.h"
-#include "SkTypeface.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "modules/skottie/include/Skottie.h"
+#include "modules/skottie/include/SkottieProperty.h"
+#include "modules/skottie/src/SkottieShaper.h"
 
-#include "Test.h"
+#include "tests/Test.h"
 
 #include <cmath>
 #include <tuple>
diff --git a/modules/skottie/src/SkottieTextLayer.cpp b/modules/skottie/src/SkottieTextLayer.cpp
index b617b31..0e2cde1 100644
--- a/modules/skottie/src/SkottieTextLayer.cpp
+++ b/modules/skottie/src/SkottieTextLayer.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkottiePriv.h"
+#include "modules/skottie/src/SkottiePriv.h"
 
-#include "SkData.h"
-#include "SkFontMgr.h"
-#include "SkMakeUnique.h"
-#include "SkottieAdapter.h"
-#include "SkottieJson.h"
-#include "SkottieValue.h"
-#include "SkSGDraw.h"
-#include "SkSGGroup.h"
-#include "SkSGPaint.h"
-#include "SkSGText.h"
-#include "SkTypes.h"
+#include "include/core/SkData.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkTypes.h"
+#include "modules/skottie/src/SkottieAdapter.h"
+#include "modules/skottie/src/SkottieJson.h"
+#include "modules/skottie/src/SkottieValue.h"
+#include "modules/sksg/include/SkSGDraw.h"
+#include "modules/sksg/include/SkSGGroup.h"
+#include "modules/sksg/include/SkSGPaint.h"
+#include "modules/sksg/include/SkSGText.h"
+#include "src/core/SkMakeUnique.h"
 
 #include <string.h>
 
diff --git a/modules/skottie/src/SkottieTool.cpp b/modules/skottie/src/SkottieTool.cpp
index 44c724a..c84a613 100644
--- a/modules/skottie/src/SkottieTool.cpp
+++ b/modules/skottie/src/SkottieTool.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "CommandLineFlags.h"
-#include "SkCanvas.h"
-#include "SkGraphics.h"
-#include "SkMakeUnique.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkPictureRecorder.h"
-#include "SkStream.h"
-#include "SkSurface.h"
-#include "Skottie.h"
-#include "SkottieUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkSurface.h"
+#include "modules/skottie/include/Skottie.h"
+#include "modules/skottie/utils/SkottieUtils.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkOSFile.h"
+#include "src/utils/SkOSPath.h"
+#include "tools/flags/CommandLineFlags.h"
 
 #include <vector>
 
diff --git a/modules/skottie/src/SkottieValue.cpp b/modules/skottie/src/SkottieValue.cpp
index edba830..a78d5f8 100644
--- a/modules/skottie/src/SkottieValue.cpp
+++ b/modules/skottie/src/SkottieValue.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkottieValue.h"
+#include "modules/skottie/src/SkottieValue.h"
 
-#include "SkColor.h"
-#include "SkottieJson.h"
-#include "SkottiePriv.h"
-#include "SkNx.h"
-#include "SkPoint.h"
-#include "SkSize.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkSize.h"
+#include "include/private/SkNx.h"
+#include "modules/skottie/src/SkottieJson.h"
+#include "modules/skottie/src/SkottiePriv.h"
 
 namespace  skottie {
 
diff --git a/modules/skottie/src/SkottieValue.h b/modules/skottie/src/SkottieValue.h
index 7779dda..bf5c576 100644
--- a/modules/skottie/src/SkottieValue.h
+++ b/modules/skottie/src/SkottieValue.h
@@ -8,14 +8,14 @@
 #ifndef SkottieValue_DEFINED
 #define SkottieValue_DEFINED
 
-#include "SkColor.h"
-#include "SkottieShaper.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkScalar.h"
-#include "SkString.h"
-#include "SkTextUtils.h"
-#include "SkTypeface.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypeface.h"
+#include "include/utils/SkTextUtils.h"
+#include "modules/skottie/src/SkottieShaper.h"
 
 #include <vector>
 
diff --git a/modules/skottie/utils/SkottieUtils.cpp b/modules/skottie/utils/SkottieUtils.cpp
index b6857dd..191d834 100644
--- a/modules/skottie/utils/SkottieUtils.cpp
+++ b/modules/skottie/utils/SkottieUtils.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkottieUtils.h"
+#include "modules/skottie/utils/SkottieUtils.h"
 
-#include "SkAnimCodecPlayer.h"
-#include "SkData.h"
-#include "SkCodec.h"
-#include "SkImage.h"
-#include "SkMakeUnique.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
+#include "include/utils/SkAnimCodecPlayer.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkOSFile.h"
+#include "src/utils/SkOSPath.h"
 
 #include <cmath>
 
diff --git a/modules/skottie/utils/SkottieUtils.h b/modules/skottie/utils/SkottieUtils.h
index fe7d2b8..0783888 100644
--- a/modules/skottie/utils/SkottieUtils.h
+++ b/modules/skottie/utils/SkottieUtils.h
@@ -8,11 +8,11 @@
 #ifndef SkottieUtils_DEFINED
 #define SkottieUtils_DEFINED
 
-#include "SkColor.h"
-#include "Skottie.h"
-#include "SkottieProperty.h"
-#include "SkString.h"
-#include "SkTHash.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkString.h"
+#include "include/private/SkTHash.h"
+#include "modules/skottie/include/Skottie.h"
+#include "modules/skottie/include/SkottieProperty.h"
 
 #include <memory>
 #include <string>
diff --git a/modules/sksg/include/SkSGClipEffect.h b/modules/sksg/include/SkSGClipEffect.h
index 309127f..6614c6a 100644
--- a/modules/sksg/include/SkSGClipEffect.h
+++ b/modules/sksg/include/SkSGClipEffect.h
@@ -8,7 +8,7 @@
 #ifndef SkSGClipEffect_DEFINED
 #define SkSGClipEffect_DEFINED
 
-#include "SkSGEffectNode.h"
+#include "modules/sksg/include/SkSGEffectNode.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/include/SkSGColorFilter.h b/modules/sksg/include/SkSGColorFilter.h
index 7c02958..a108821 100644
--- a/modules/sksg/include/SkSGColorFilter.h
+++ b/modules/sksg/include/SkSGColorFilter.h
@@ -8,9 +8,9 @@
 #ifndef SkSGColorFilter_DEFINED
 #define SkSGColorFilter_DEFINED
 
-#include "SkSGEffectNode.h"
+#include "modules/sksg/include/SkSGEffectNode.h"
 
-#include "SkBlendMode.h"
+#include "include/core/SkBlendMode.h"
 
 #include <vector>
 
diff --git a/modules/sksg/include/SkSGDraw.h b/modules/sksg/include/SkSGDraw.h
index d7d0959..0889ebf 100644
--- a/modules/sksg/include/SkSGDraw.h
+++ b/modules/sksg/include/SkSGDraw.h
@@ -8,9 +8,9 @@
 #ifndef SkSGDraw_DEFINED
 #define SkSGDraw_DEFINED
 
-#include "SkSGGeometryNode.h"
-#include "SkSGPaint.h"
-#include "SkSGRenderNode.h"
+#include "modules/sksg/include/SkSGGeometryNode.h"
+#include "modules/sksg/include/SkSGPaint.h"
+#include "modules/sksg/include/SkSGRenderNode.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/include/SkSGEffectNode.h b/modules/sksg/include/SkSGEffectNode.h
index 1fe9468..005a99c 100644
--- a/modules/sksg/include/SkSGEffectNode.h
+++ b/modules/sksg/include/SkSGEffectNode.h
@@ -8,7 +8,7 @@
 #ifndef SkSGEffectNode_DEFINED
 #define SkSGEffectNode_DEFINED
 
-#include "SkSGRenderNode.h"
+#include "modules/sksg/include/SkSGRenderNode.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/include/SkSGGeometryNode.h b/modules/sksg/include/SkSGGeometryNode.h
index 66be09d..d9d4e8d 100644
--- a/modules/sksg/include/SkSGGeometryNode.h
+++ b/modules/sksg/include/SkSGGeometryNode.h
@@ -8,7 +8,7 @@
 #ifndef SkSGGeometryNode_DEFINED
 #define SkSGGeometryNode_DEFINED
 
-#include "SkSGNode.h"
+#include "modules/sksg/include/SkSGNode.h"
 
 class SkCanvas;
 class SkPaint;
diff --git a/modules/sksg/include/SkSGGeometryTransform.h b/modules/sksg/include/SkSGGeometryTransform.h
index f9907ed..400ab8a 100644
--- a/modules/sksg/include/SkSGGeometryTransform.h
+++ b/modules/sksg/include/SkSGGeometryTransform.h
@@ -8,9 +8,9 @@
 #ifndef SkSGGeometryTransform_DEFINED
 #define SkSGGeometryTransform_DEFINED
 
-#include "SkSGGeometryNode.h"
+#include "modules/sksg/include/SkSGGeometryNode.h"
 
-#include "SkPath.h"
+#include "include/core/SkPath.h"
 
 class SkMatrix;
 
diff --git a/modules/sksg/include/SkSGGradient.h b/modules/sksg/include/SkSGGradient.h
index c58b77d..78b7227 100644
--- a/modules/sksg/include/SkSGGradient.h
+++ b/modules/sksg/include/SkSGGradient.h
@@ -8,12 +8,12 @@
 #ifndef SkSGGradient_DEFINED
 #define SkSGGradient_DEFINED
 
-#include "SkSGRenderEffect.h"
+#include "modules/sksg/include/SkSGRenderEffect.h"
 
-#include "SkColor.h"
-#include "SkPoint.h"
-#include "SkScalar.h"
-#include "SkShader.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkShader.h"
 
 #include <vector>
 
diff --git a/modules/sksg/include/SkSGGroup.h b/modules/sksg/include/SkSGGroup.h
index ccb9cf8..ba5c47b 100644
--- a/modules/sksg/include/SkSGGroup.h
+++ b/modules/sksg/include/SkSGGroup.h
@@ -8,7 +8,7 @@
 #ifndef SkSGGroup_DEFINED
 #define SkSGGroup_DEFINED
 
-#include "SkSGRenderNode.h"
+#include "modules/sksg/include/SkSGRenderNode.h"
 
 #include <vector>
 
diff --git a/modules/sksg/include/SkSGImage.h b/modules/sksg/include/SkSGImage.h
index 75868c7..178662a 100644
--- a/modules/sksg/include/SkSGImage.h
+++ b/modules/sksg/include/SkSGImage.h
@@ -8,9 +8,9 @@
 #ifndef SkSGImage_DEFINED
 #define SkSGImage_DEFINED
 
-#include "SkSGRenderNode.h"
+#include "modules/sksg/include/SkSGRenderNode.h"
 
-#include "SkFilterQuality.h"
+#include "include/core/SkFilterQuality.h"
 
 class SkImage;
 
diff --git a/modules/sksg/include/SkSGInvalidationController.h b/modules/sksg/include/SkSGInvalidationController.h
index d6f7bd3..dc9fb90 100644
--- a/modules/sksg/include/SkSGInvalidationController.h
+++ b/modules/sksg/include/SkSGInvalidationController.h
@@ -8,9 +8,9 @@
 #ifndef SkSGInvalidationController_DEFINED
 #define SkSGInvalidationController_DEFINED
 
-#include "SkMatrix.h"
-#include "SkTDArray.h"
-#include "SkTypes.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTDArray.h"
 
 struct SkRect;
 
diff --git a/modules/sksg/include/SkSGMaskEffect.h b/modules/sksg/include/SkSGMaskEffect.h
index 9837d0e..4b3b2f4 100644
--- a/modules/sksg/include/SkSGMaskEffect.h
+++ b/modules/sksg/include/SkSGMaskEffect.h
@@ -8,7 +8,7 @@
 #ifndef SkSGMaskEffect_DEFINED
 #define SkSGMaskEffect_DEFINED
 
-#include "SkSGEffectNode.h"
+#include "modules/sksg/include/SkSGEffectNode.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/include/SkSGMerge.h b/modules/sksg/include/SkSGMerge.h
index b37530a..9599360 100644
--- a/modules/sksg/include/SkSGMerge.h
+++ b/modules/sksg/include/SkSGMerge.h
@@ -8,9 +8,9 @@
 #ifndef SkSGMerge_DEFINED
 #define SkSGMerge_DEFINED
 
-#include "SkSGGeometryNode.h"
+#include "modules/sksg/include/SkSGGeometryNode.h"
 
-#include "SkPath.h"
+#include "include/core/SkPath.h"
 
 #include <vector>
 
diff --git a/modules/sksg/include/SkSGNode.h b/modules/sksg/include/SkSGNode.h
index 68bcbab..7fb3dce 100644
--- a/modules/sksg/include/SkSGNode.h
+++ b/modules/sksg/include/SkSGNode.h
@@ -8,8 +8,8 @@
 #ifndef SkSGNode_DEFINED
 #define SkSGNode_DEFINED
 
-#include "SkRect.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
 
 #include <vector>
 
diff --git a/modules/sksg/include/SkSGOpacityEffect.h b/modules/sksg/include/SkSGOpacityEffect.h
index 8e1105c..126ed3f 100644
--- a/modules/sksg/include/SkSGOpacityEffect.h
+++ b/modules/sksg/include/SkSGOpacityEffect.h
@@ -8,7 +8,7 @@
 #ifndef SkSGOpacityEffect_DEFINED
 #define SkSGOpacityEffect_DEFINED
 
-#include "SkSGEffectNode.h"
+#include "modules/sksg/include/SkSGEffectNode.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/include/SkSGPaint.h b/modules/sksg/include/SkSGPaint.h
index 52dd7b4..59c0de5 100644
--- a/modules/sksg/include/SkSGPaint.h
+++ b/modules/sksg/include/SkSGPaint.h
@@ -8,10 +8,10 @@
 #ifndef SkSGPaint_DEFINED
 #define SkSGPaint_DEFINED
 
-#include "SkSGNode.h"
+#include "modules/sksg/include/SkSGNode.h"
 
-#include "SkColor.h"
-#include "SkPaint.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPaint.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/include/SkSGPath.h b/modules/sksg/include/SkSGPath.h
index 55d16fa..1135fb9 100644
--- a/modules/sksg/include/SkSGPath.h
+++ b/modules/sksg/include/SkSGPath.h
@@ -8,9 +8,9 @@
 #ifndef SkSGPath_DEFINED
 #define SkSGPath_DEFINED
 
-#include "SkSGGeometryNode.h"
+#include "modules/sksg/include/SkSGGeometryNode.h"
 
-#include "SkPath.h"
+#include "include/core/SkPath.h"
 
 class SkCanvas;
 class SkPaint;
diff --git a/modules/sksg/include/SkSGPlane.h b/modules/sksg/include/SkSGPlane.h
index f8338a1..994ed6b 100644
--- a/modules/sksg/include/SkSGPlane.h
+++ b/modules/sksg/include/SkSGPlane.h
@@ -8,7 +8,7 @@
 #ifndef SkSGPlane_DEFINED
 #define SkSGPlane_DEFINED
 
-#include "SkSGGeometryNode.h"
+#include "modules/sksg/include/SkSGGeometryNode.h"
 
 class SkCanvas;
 class SkPaint;
diff --git a/modules/sksg/include/SkSGRect.h b/modules/sksg/include/SkSGRect.h
index a4666b4..29456a0 100644
--- a/modules/sksg/include/SkSGRect.h
+++ b/modules/sksg/include/SkSGRect.h
@@ -8,11 +8,11 @@
 #ifndef SkSGRect_DEFINED
 #define SkSGRect_DEFINED
 
-#include "SkSGGeometryNode.h"
+#include "modules/sksg/include/SkSGGeometryNode.h"
 
-#include "SkPath.h"
-#include "SkRect.h"
-#include "SkRRect.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRect.h"
 
 class SkCanvas;
 class SkPaint;
diff --git a/modules/sksg/include/SkSGRenderEffect.h b/modules/sksg/include/SkSGRenderEffect.h
index 3d9a830..b401361 100644
--- a/modules/sksg/include/SkSGRenderEffect.h
+++ b/modules/sksg/include/SkSGRenderEffect.h
@@ -8,11 +8,11 @@
 #ifndef SkSGRenderEffect_DEFINED
 #define SkSGRenderEffect_DEFINED
 
-#include "SkSGEffectNode.h"
+#include "modules/sksg/include/SkSGEffectNode.h"
 
-#include "SkBlendMode.h"
-#include "SkBlurImageFilter.h"
-#include "SkColor.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkColor.h"
+#include "include/effects/SkBlurImageFilter.h"
 
 #include <memory>
 #include <vector>
diff --git a/modules/sksg/include/SkSGRenderNode.h b/modules/sksg/include/SkSGRenderNode.h
index b76ea9d..7703075 100644
--- a/modules/sksg/include/SkSGRenderNode.h
+++ b/modules/sksg/include/SkSGRenderNode.h
@@ -8,11 +8,11 @@
 #ifndef SkSGRenderNode_DEFINED
 #define SkSGRenderNode_DEFINED
 
-#include "SkSGNode.h"
+#include "modules/sksg/include/SkSGNode.h"
 
-#include "SkBlendMode.h"
-#include "SkColorFilter.h"
-#include "SkShader.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkShader.h"
 
 class SkCanvas;
 class SkImageFilter;
diff --git a/modules/sksg/include/SkSGRoundEffect.h b/modules/sksg/include/SkSGRoundEffect.h
index 4787a8c..20a02d0 100644
--- a/modules/sksg/include/SkSGRoundEffect.h
+++ b/modules/sksg/include/SkSGRoundEffect.h
@@ -8,9 +8,9 @@
 #ifndef SkSGRoundEffect_DEFINED
 #define SkSGRoundEffect_DEFINED
 
-#include "SkSGGeometryNode.h"
+#include "modules/sksg/include/SkSGGeometryNode.h"
 
-#include "SkPath.h"
+#include "include/core/SkPath.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/include/SkSGScene.h b/modules/sksg/include/SkSGScene.h
index 9261cf4..19d5f87 100644
--- a/modules/sksg/include/SkSGScene.h
+++ b/modules/sksg/include/SkSGScene.h
@@ -8,8 +8,8 @@
 #ifndef SkSGScene_DEFINED
 #define SkSGScene_DEFINED
 
-#include "SkRefCnt.h"
-#include "SkTypes.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypes.h"
 
 #include <memory>
 #include <vector>
diff --git a/modules/sksg/include/SkSGText.h b/modules/sksg/include/SkSGText.h
index e2cf788..ebe7835 100644
--- a/modules/sksg/include/SkSGText.h
+++ b/modules/sksg/include/SkSGText.h
@@ -8,13 +8,13 @@
 #ifndef SkSGText_DEFINED
 #define SkSGText_DEFINED
 
-#include "SkSGGeometryNode.h"
+#include "modules/sksg/include/SkSGGeometryNode.h"
 
-#include "SkFont.h"
-#include "SkPoint.h"
-#include "SkString.h"
-#include "SkTextBlob.h"
-#include "SkTextUtils.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTextBlob.h"
+#include "include/utils/SkTextUtils.h"
 
 class SkCanvas;
 class SkPaint;
diff --git a/modules/sksg/include/SkSGTransform.h b/modules/sksg/include/SkSGTransform.h
index d8408da..0d68da7 100644
--- a/modules/sksg/include/SkSGTransform.h
+++ b/modules/sksg/include/SkSGTransform.h
@@ -8,10 +8,10 @@
 #ifndef SkSGTransform_DEFINED
 #define SkSGTransform_DEFINED
 
-#include "SkSGEffectNode.h"
+#include "modules/sksg/include/SkSGEffectNode.h"
 
-#include "SkMatrix.h"
-#include "SkMatrix44.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkMatrix44.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/include/SkSGTrimEffect.h b/modules/sksg/include/SkSGTrimEffect.h
index ea2fd253..804f028 100644
--- a/modules/sksg/include/SkSGTrimEffect.h
+++ b/modules/sksg/include/SkSGTrimEffect.h
@@ -8,10 +8,10 @@
 #ifndef SkSGTrimEffect_DEFINED
 #define SkSGTrimEffect_DEFINED
 
-#include "SkSGGeometryNode.h"
+#include "modules/sksg/include/SkSGGeometryNode.h"
 
-#include "SkPath.h"
-#include "SkTrimPathEffect.h"
+#include "include/core/SkPath.h"
+#include "include/effects/SkTrimPathEffect.h"
 
 class SkCanvas;
 class SkPaint;
diff --git a/modules/sksg/samples/SampleSVGPong.cpp b/modules/sksg/samples/SampleSVGPong.cpp
index bb2ba1a..034d433 100644
--- a/modules/sksg/samples/SampleSVGPong.cpp
+++ b/modules/sksg/samples/SampleSVGPong.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "Sample.h"
-#include "SkRRect.h"
-#include "SkRandom.h"
+#include "include/core/SkRRect.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
+#include "tools/timer/AnimTimer.h"
 
-#include "SkSGDraw.h"
-#include "SkSGGroup.h"
-#include "SkSGPaint.h"
-#include "SkSGPath.h"
-#include "SkSGRect.h"
-#include "SkSGScene.h"
-#include "SkSGTransform.h"
+#include "modules/sksg/include/SkSGDraw.h"
+#include "modules/sksg/include/SkSGGroup.h"
+#include "modules/sksg/include/SkSGPaint.h"
+#include "modules/sksg/include/SkSGPath.h"
+#include "modules/sksg/include/SkSGRect.h"
+#include "modules/sksg/include/SkSGScene.h"
+#include "modules/sksg/include/SkSGTransform.h"
 
 namespace {
 
diff --git a/modules/sksg/src/SkSGClipEffect.cpp b/modules/sksg/src/SkSGClipEffect.cpp
index 4969e3b..8e98d5c 100644
--- a/modules/sksg/src/SkSGClipEffect.cpp
+++ b/modules/sksg/src/SkSGClipEffect.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGClipEffect.h"
+#include "modules/sksg/include/SkSGClipEffect.h"
 
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkSGGeometryNode.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "modules/sksg/include/SkSGGeometryNode.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGColorFilter.cpp b/modules/sksg/src/SkSGColorFilter.cpp
index f247f05..939484d 100644
--- a/modules/sksg/src/SkSGColorFilter.cpp
+++ b/modules/sksg/src/SkSGColorFilter.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGColorFilter.h"
+#include "modules/sksg/include/SkSGColorFilter.h"
 
-#include "SkColorData.h"
-#include "SkColorFilter.h"
-#include "SkSGPaint.h"
-#include "SkTableColorFilter.h"
+#include "include/core/SkColorFilter.h"
+#include "include/effects/SkTableColorFilter.h"
+#include "include/private/SkColorData.h"
+#include "modules/sksg/include/SkSGPaint.h"
 
 #include <cmath>
 
diff --git a/modules/sksg/src/SkSGDraw.cpp b/modules/sksg/src/SkSGDraw.cpp
index 797b58a..373d4b1 100644
--- a/modules/sksg/src/SkSGDraw.cpp
+++ b/modules/sksg/src/SkSGDraw.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGDraw.h"
+#include "modules/sksg/include/SkSGDraw.h"
 
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkSGGeometryNode.h"
-#include "SkSGInvalidationController.h"
-#include "SkSGPaint.h"
-#include "SkTLazy.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "modules/sksg/include/SkSGGeometryNode.h"
+#include "modules/sksg/include/SkSGInvalidationController.h"
+#include "modules/sksg/include/SkSGPaint.h"
+#include "src/core/SkTLazy.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGEffectNode.cpp b/modules/sksg/src/SkSGEffectNode.cpp
index 8ea2eea..a17c705 100644
--- a/modules/sksg/src/SkSGEffectNode.cpp
+++ b/modules/sksg/src/SkSGEffectNode.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGEffectNode.h"
+#include "modules/sksg/include/SkSGEffectNode.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGGeometryNode.cpp b/modules/sksg/src/SkSGGeometryNode.cpp
index 78ef6e6..653866e 100644
--- a/modules/sksg/src/SkSGGeometryNode.cpp
+++ b/modules/sksg/src/SkSGGeometryNode.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGGeometryNode.h"
+#include "modules/sksg/include/SkSGGeometryNode.h"
 
-#include "SkPath.h"
+#include "include/core/SkPath.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGGeometryTransform.cpp b/modules/sksg/src/SkSGGeometryTransform.cpp
index 224d46b..d0ff83ea 100644
--- a/modules/sksg/src/SkSGGeometryTransform.cpp
+++ b/modules/sksg/src/SkSGGeometryTransform.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGGeometryTransform.h"
+#include "modules/sksg/include/SkSGGeometryTransform.h"
 
-#include "SkCanvas.h"
-#include "SkSGTransform.h"
-#include "SkSGTransformPriv.h"
+#include "include/core/SkCanvas.h"
+#include "modules/sksg/include/SkSGTransform.h"
+#include "modules/sksg/src/SkSGTransformPriv.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGGradient.cpp b/modules/sksg/src/SkSGGradient.cpp
index d2575e0..4834a9d 100644
--- a/modules/sksg/src/SkSGGradient.cpp
+++ b/modules/sksg/src/SkSGGradient.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGGradient.h"
+#include "modules/sksg/include/SkSGGradient.h"
 
-#include "SkGradientShader.h"
-#include "SkPaint.h"
+#include "include/core/SkPaint.h"
+#include "include/effects/SkGradientShader.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGGroup.cpp b/modules/sksg/src/SkSGGroup.cpp
index 27e4622..2732279 100644
--- a/modules/sksg/src/SkSGGroup.cpp
+++ b/modules/sksg/src/SkSGGroup.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGGroup.h"
+#include "modules/sksg/include/SkSGGroup.h"
 
-#include "SkCanvas.h"
+#include "include/core/SkCanvas.h"
 
 #include <algorithm>
 
diff --git a/modules/sksg/src/SkSGImage.cpp b/modules/sksg/src/SkSGImage.cpp
index 768f920..0b5e86b 100644
--- a/modules/sksg/src/SkSGImage.cpp
+++ b/modules/sksg/src/SkSGImage.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGImage.h"
+#include "modules/sksg/include/SkSGImage.h"
 
-#include "SkCanvas.h"
-#include "SkImage.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGInvalidationController.cpp b/modules/sksg/src/SkSGInvalidationController.cpp
index df711ab..d53a9c8 100644
--- a/modules/sksg/src/SkSGInvalidationController.cpp
+++ b/modules/sksg/src/SkSGInvalidationController.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGInvalidationController.h"
+#include "modules/sksg/include/SkSGInvalidationController.h"
 
-#include "SkRect.h"
-#include "SkTLazy.h"
+#include "include/core/SkRect.h"
+#include "src/core/SkTLazy.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGMaskEffect.cpp b/modules/sksg/src/SkSGMaskEffect.cpp
index 0bcddcd..ce5bdf5 100644
--- a/modules/sksg/src/SkSGMaskEffect.cpp
+++ b/modules/sksg/src/SkSGMaskEffect.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGMaskEffect.h"
+#include "modules/sksg/include/SkSGMaskEffect.h"
 
-#include "SkCanvas.h"
+#include "include/core/SkCanvas.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGMerge.cpp b/modules/sksg/src/SkSGMerge.cpp
index a882647..69cd6f2 100644
--- a/modules/sksg/src/SkSGMerge.cpp
+++ b/modules/sksg/src/SkSGMerge.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGMerge.h"
+#include "modules/sksg/include/SkSGMerge.h"
 
-#include "SkCanvas.h"
-#include "SkPathOps.h"
+#include "include/core/SkCanvas.h"
+#include "include/pathops/SkPathOps.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGNode.cpp b/modules/sksg/src/SkSGNode.cpp
index 1d4f63d..eeacabf 100644
--- a/modules/sksg/src/SkSGNode.cpp
+++ b/modules/sksg/src/SkSGNode.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkRectPriv.h"
-#include "SkSGNode.h"
-#include "SkSGInvalidationController.h"
+#include "modules/sksg/include/SkSGInvalidationController.h"
+#include "modules/sksg/include/SkSGNode.h"
+#include "src/core/SkRectPriv.h"
 
 #include <algorithm>
 
diff --git a/modules/sksg/src/SkSGOpacityEffect.cpp b/modules/sksg/src/SkSGOpacityEffect.cpp
index d6abfa2..bb1f94d 100644
--- a/modules/sksg/src/SkSGOpacityEffect.cpp
+++ b/modules/sksg/src/SkSGOpacityEffect.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGOpacityEffect.h"
+#include "modules/sksg/include/SkSGOpacityEffect.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGPaint.cpp b/modules/sksg/src/SkSGPaint.cpp
index 16e0657..9b69f56 100644
--- a/modules/sksg/src/SkSGPaint.cpp
+++ b/modules/sksg/src/SkSGPaint.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGPaint.h"
+#include "modules/sksg/include/SkSGPaint.h"
 
-#include "SkSGRenderEffect.h"
+#include "modules/sksg/include/SkSGRenderEffect.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGPath.cpp b/modules/sksg/src/SkSGPath.cpp
index 3b63182..9895ee6 100644
--- a/modules/sksg/src/SkSGPath.cpp
+++ b/modules/sksg/src/SkSGPath.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGPath.h"
+#include "modules/sksg/include/SkSGPath.h"
 
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkRectPriv.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "src/core/SkRectPriv.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGPlane.cpp b/modules/sksg/src/SkSGPlane.cpp
index 989f40c..122ee53 100644
--- a/modules/sksg/src/SkSGPlane.cpp
+++ b/modules/sksg/src/SkSGPlane.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGPlane.h"
+#include "modules/sksg/include/SkSGPlane.h"
 
-#include "SkCanvas.h"
-#include "SkPath.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGRect.cpp b/modules/sksg/src/SkSGRect.cpp
index 091751b..e5acd65 100644
--- a/modules/sksg/src/SkSGRect.cpp
+++ b/modules/sksg/src/SkSGRect.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGRect.h"
+#include "modules/sksg/include/SkSGRect.h"
 
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGRenderEffect.cpp b/modules/sksg/src/SkSGRenderEffect.cpp
index 7765b2e..6310ed2 100644
--- a/modules/sksg/src/SkSGRenderEffect.cpp
+++ b/modules/sksg/src/SkSGRenderEffect.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGRenderEffect.h"
+#include "modules/sksg/include/SkSGRenderEffect.h"
 
-#include "SkCanvas.h"
-#include "SkDropShadowImageFilter.h"
-#include "SkMakeUnique.h"
-#include "SkShader.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkShader.h"
+#include "include/effects/SkDropShadowImageFilter.h"
+#include "src/core/SkMakeUnique.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGRenderNode.cpp b/modules/sksg/src/SkSGRenderNode.cpp
index 961966b..532c237 100644
--- a/modules/sksg/src/SkSGRenderNode.cpp
+++ b/modules/sksg/src/SkSGRenderNode.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGRenderNode.h"
+#include "modules/sksg/include/SkSGRenderNode.h"
 
-#include "SkCanvas.h"
-#include "SkImageFilter.h"
-#include "SkPaint.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkPaint.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGRoundEffect.cpp b/modules/sksg/src/SkSGRoundEffect.cpp
index 14b8e1d..ba5db05 100644
--- a/modules/sksg/src/SkSGRoundEffect.cpp
+++ b/modules/sksg/src/SkSGRoundEffect.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGRoundEffect.h"
+#include "modules/sksg/include/SkSGRoundEffect.h"
 
-#include "SkCanvas.h"
-#include "SkCornerPathEffect.h"
-#include "SkStrokeRec.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/effects/SkCornerPathEffect.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGScene.cpp b/modules/sksg/src/SkSGScene.cpp
index 7d27bb2..0d56821 100644
--- a/modules/sksg/src/SkSGScene.cpp
+++ b/modules/sksg/src/SkSGScene.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGScene.h"
+#include "modules/sksg/include/SkSGScene.h"
 
-#include "SkCanvas.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkSGInvalidationController.h"
-#include "SkSGRenderNode.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "modules/sksg/include/SkSGInvalidationController.h"
+#include "modules/sksg/include/SkSGRenderNode.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGText.cpp b/modules/sksg/src/SkSGText.cpp
index 6e1959e..2147640 100644
--- a/modules/sksg/src/SkSGText.cpp
+++ b/modules/sksg/src/SkSGText.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGText.h"
+#include "modules/sksg/include/SkSGText.h"
 
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkTArray.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkTArray.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGTransform.cpp b/modules/sksg/src/SkSGTransform.cpp
index fff1ba4..7440d7c 100644
--- a/modules/sksg/src/SkSGTransform.cpp
+++ b/modules/sksg/src/SkSGTransform.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGTransform.h"
+#include "modules/sksg/include/SkSGTransform.h"
 
-#include "SkCanvas.h"
-#include "SkSGTransformPriv.h"
+#include "include/core/SkCanvas.h"
+#include "modules/sksg/src/SkSGTransformPriv.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGTransformPriv.h b/modules/sksg/src/SkSGTransformPriv.h
index 20441c1..d0c9818 100644
--- a/modules/sksg/src/SkSGTransformPriv.h
+++ b/modules/sksg/src/SkSGTransformPriv.h
@@ -8,7 +8,7 @@
 #ifndef SkSGTransformPriv_DEFINED
 #define SkSGTransformPriv_DEFINED
 
-#include "SkSGTransform.h"
+#include "modules/sksg/include/SkSGTransform.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGTrimEffect.cpp b/modules/sksg/src/SkSGTrimEffect.cpp
index 53f8f28..4c63b0c 100644
--- a/modules/sksg/src/SkSGTrimEffect.cpp
+++ b/modules/sksg/src/SkSGTrimEffect.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkSGTrimEffect.h"
+#include "modules/sksg/include/SkSGTrimEffect.h"
 
-#include "SkCanvas.h"
-#include "SkStrokeRec.h"
-#include "SkTrimPathEffect.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/effects/SkTrimPathEffect.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/tests/SGTest.cpp b/modules/sksg/tests/SGTest.cpp
index e3ecfdb..84928e6 100644
--- a/modules/sksg/tests/SGTest.cpp
+++ b/modules/sksg/tests/SGTest.cpp
@@ -5,22 +5,22 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if !defined(SK_BUILD_FOR_GOOGLE3)
 
-#include "SkRect.h"
-#include "SkRectPriv.h"
-#include "SkSGDraw.h"
-#include "SkSGGroup.h"
-#include "SkSGInvalidationController.h"
-#include "SkSGPaint.h"
-#include "SkSGRect.h"
-#include "SkSGRenderEffect.h"
-#include "SkSGTransform.h"
-#include "SkTo.h"
+#include "include/core/SkRect.h"
+#include "include/private/SkTo.h"
+#include "modules/sksg/include/SkSGDraw.h"
+#include "modules/sksg/include/SkSGGroup.h"
+#include "modules/sksg/include/SkSGInvalidationController.h"
+#include "modules/sksg/include/SkSGPaint.h"
+#include "modules/sksg/include/SkSGRect.h"
+#include "modules/sksg/include/SkSGRenderEffect.h"
+#include "modules/sksg/include/SkSGTransform.h"
+#include "src/core/SkRectPriv.h"
 
-#include "Test.h"
+#include "tests/Test.h"
 
 #include <vector>
 
diff --git a/modules/skshaper/include/SkShaper.h b/modules/skshaper/include/SkShaper.h
index b42ec04..a0507a2 100644
--- a/modules/skshaper/include/SkShaper.h
+++ b/modules/skshaper/include/SkShaper.h
@@ -8,11 +8,11 @@
 #ifndef SkShaper_DEFINED
 #define SkShaper_DEFINED
 
-#include "SkPoint.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkTextBlob.h"
-#include "SkTypes.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypes.h"
 
 #include <memory>
 
diff --git a/modules/skshaper/src/SkShaper.cpp b/modules/skshaper/src/SkShaper.cpp
index 26f1001..a089ee7 100644
--- a/modules/skshaper/src/SkShaper.cpp
+++ b/modules/skshaper/src/SkShaper.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkFont.h"
-#include "SkFontMetrics.h"
-#include "SkFontMgr.h"
-#include "SkMakeUnique.h"
-#include "SkShaper.h"
-#include "SkString.h"
-#include "SkTFitsIn.h"
-#include "SkTextBlobPriv.h"
-#include "SkTypeface.h"
-#include "SkUTF.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkTFitsIn.h"
+#include "modules/skshaper/include/SkShaper.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkTextBlobPriv.h"
+#include "src/utils/SkUTF.h"
 
 #include <limits.h>
 #include <string.h>
diff --git a/modules/skshaper/src/SkShaper_harfbuzz.cpp b/modules/skshaper/src/SkShaper_harfbuzz.cpp
index ae30461..9423732 100644
--- a/modules/skshaper/src/SkShaper_harfbuzz.cpp
+++ b/modules/skshaper/src/SkShaper_harfbuzz.cpp
@@ -5,29 +5,29 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmaskEnum.h"
-#include "SkFont.h"
-#include "SkFontArguments.h"
-#include "SkFontMetrics.h"
-#include "SkFontMgr.h"
-#include "SkFontTypes.h"
-#include "SkMakeUnique.h"
-#include "SkMalloc.h"
-#include "SkPaint.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkShaper.h"
-#include "SkStream.h"
-#include "SkTArray.h"
-#include "SkTDPQueue.h"
-#include "SkTFitsIn.h"
-#include "SkTemplates.h"
-#include "SkTo.h"
-#include "SkTypeface.h"
-#include "SkTypes.h"
-#include "SkUTF.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkFontArguments.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkFontTypes.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkBitmaskEnum.h"
+#include "include/private/SkMalloc.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTFitsIn.h"
+#include "include/private/SkTemplates.h"
+#include "include/private/SkTo.h"
+#include "modules/skshaper/include/SkShaper.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkTDPQueue.h"
+#include "src/utils/SkUTF.h"
 
 #include <hb.h>
 #include <hb-icu.h>
diff --git a/modules/skshaper/src/SkShaper_primitive.cpp b/modules/skshaper/src/SkShaper_primitive.cpp
index 30b7c7a..5f1e95d 100644
--- a/modules/skshaper/src/SkShaper_primitive.cpp
+++ b/modules/skshaper/src/SkShaper_primitive.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontMetrics.h"
-#include "SkMakeUnique.h"
-#include "SkShaper.h"
-#include "SkStream.h"
-#include "SkTo.h"
-#include "SkTypeface.h"
-#include "SkUTF.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkTo.h"
+#include "modules/skshaper/include/SkShaper.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/utils/SkUTF.h"
 
 class SkShaperPrimitive : public SkShaper {
 public:
diff --git a/platform_tools/android/apps/arcore/src/main/cpp/SkArCamera.cpp b/platform_tools/android/apps/arcore/src/main/cpp/SkArCamera.cpp
index f27aebb..f773582 100644
--- a/platform_tools/android/apps/arcore/src/main/cpp/SkArCamera.cpp
+++ b/platform_tools/android/apps/arcore/src/main/cpp/SkArCamera.cpp
@@ -6,7 +6,7 @@
  */
 
 #include <arcore_c_api.h>
-#include "SkArCamera.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/SkArCamera.h"
 #include "SkArUtil.h"
 
 std::unique_ptr<SkArCamera> SkArCamera::Make(SkArSession* session, SkArFrame* frame) {
diff --git a/platform_tools/android/apps/arcore/src/main/cpp/anchor_wrapper.cc b/platform_tools/android/apps/arcore/src/main/cpp/anchor_wrapper.cc
index 832a8b0..1ef6fb8 100644
--- a/platform_tools/android/apps/arcore/src/main/cpp/anchor_wrapper.cc
+++ b/platform_tools/android/apps/arcore/src/main/cpp/anchor_wrapper.cc
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#include "hello_ar_application.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/hello_ar_application.h"
 #include "arcore_c_api.h"
-#include "anchor_wrapper.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/anchor_wrapper.h"
 
 namespace hello_ar {
 
diff --git a/platform_tools/android/apps/arcore/src/main/cpp/background_renderer.cc b/platform_tools/android/apps/arcore/src/main/cpp/background_renderer.cc
index ea7a7c7..c701dbd 100644
--- a/platform_tools/android/apps/arcore/src/main/cpp/background_renderer.cc
+++ b/platform_tools/android/apps/arcore/src/main/cpp/background_renderer.cc
@@ -19,7 +19,7 @@
 
 #include <type_traits>
 
-#include "background_renderer.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/background_renderer.h"
 
 namespace hello_ar {
     namespace {
diff --git a/platform_tools/android/apps/arcore/src/main/cpp/background_renderer.h b/platform_tools/android/apps/arcore/src/main/cpp/background_renderer.h
index 0e4f701..e0624f5 100644
--- a/platform_tools/android/apps/arcore/src/main/cpp/background_renderer.h
+++ b/platform_tools/android/apps/arcore/src/main/cpp/background_renderer.h
@@ -22,7 +22,7 @@
 #include <cstdlib>
 
 #include "arcore_c_api.h"
-#include "util.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/util.h"
 
 namespace hello_ar {
 
diff --git a/platform_tools/android/apps/arcore/src/main/cpp/hello_ar_application.cc b/platform_tools/android/apps/arcore/src/main/cpp/hello_ar_application.cc
index 34fb87a..4b8dad8 100644
--- a/platform_tools/android/apps/arcore/src/main/cpp/hello_ar_application.cc
+++ b/platform_tools/android/apps/arcore/src/main/cpp/hello_ar_application.cc
@@ -14,32 +14,32 @@
  * limitations under the License.
  */
 
-#include "hello_ar_application.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/hello_ar_application.h"
 #include <gtx/string_cast.hpp>
 
 #include <math.h> /* acos */
-#include "AnimTimer.h"
-#include "GrBackendSurface.h"
-#include "GrContext.h"
-#include "Resources.h"
-#include "Sk3D.h"
-#include "SkCanvas.h"
-#include "SkFontStyle.h"
-#include "SkMatrix.h"
-#include "SkMatrix44.h"
-#include "SkPoint3.h"
-#include "SkShaper.h"
-#include "SkStream.h"
-#include "SkSurface.h"
-#include "SkTextBlob.h"
-#include "SkTypeface.h"
-#include "Skottie.h"
-#include "anchor_wrapper.h"
-#include "gl/GrGLTypes.h"
-#include "glm.h"
-#include "pending_anchor.h"
-#include "plane_renderer.h"
-#include "util.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkMatrix44.h"
+#include "include/core/SkPoint3.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/gl/GrGLTypes.h"
+#include "include/utils/Sk3D.h"
+#include "modules/skottie/include/Skottie.h"
+#include "modules/skshaper/include/SkShaper.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/anchor_wrapper.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/glm.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/pending_anchor.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/plane_renderer.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/util.h"
+#include "tools/Resources.h"
+#include "tools/timer/AnimTimer.h"
 
 namespace hello_ar {
     namespace {
diff --git a/platform_tools/android/apps/arcore/src/main/cpp/hello_ar_application.h b/platform_tools/android/apps/arcore/src/main/cpp/hello_ar_application.h
index e78e359..323ec59 100644
--- a/platform_tools/android/apps/arcore/src/main/cpp/hello_ar_application.h
+++ b/platform_tools/android/apps/arcore/src/main/cpp/hello_ar_application.h
@@ -17,11 +17,11 @@
 #ifndef C_ARCORE_HELLOE_AR_HELLO_AR_APPLICATION_H_
 #define C_ARCORE_HELLOE_AR_HELLO_AR_APPLICATION_H_
 
-#include "GrBackendSurface.h"
-#include "GrContext.h"
-#include "SkSurface.h"
-#include "Skottie.h"
-#include "gl/GrGLTypes.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/gl/GrGLTypes.h"
+#include "modules/skottie/include/Skottie.h"
 #include <GLES2/gl2.h>
 #include <GLES2/gl2ext.h>
 #include <android/asset_manager.h>
@@ -32,12 +32,12 @@
 #include <unordered_map>
 
 #include "arcore_c_api.h"
-#include "background_renderer.h"
-#include "glm.h"
-#include "plane_renderer.h"
-#include "point_cloud_renderer.h"
-#include "util.h"
-#include "pending_anchor.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/background_renderer.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/glm.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/pending_anchor.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/plane_renderer.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/point_cloud_renderer.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/util.h"
 
 namespace hello_ar {
 
diff --git a/platform_tools/android/apps/arcore/src/main/cpp/jni_interface.cc b/platform_tools/android/apps/arcore/src/main/cpp/jni_interface.cc
index 01cbff2..898c20d 100644
--- a/platform_tools/android/apps/arcore/src/main/cpp/jni_interface.cc
+++ b/platform_tools/android/apps/arcore/src/main/cpp/jni_interface.cc
@@ -18,7 +18,7 @@
 #include <android/asset_manager_jni.h>
 #include <jni.h>
 
-#include "hello_ar_application.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/hello_ar_application.h"
 
 #define JNI_METHOD(return_type, method_name) \
   JNIEXPORT return_type JNICALL              \
diff --git a/platform_tools/android/apps/arcore/src/main/cpp/pending_anchor.cc b/platform_tools/android/apps/arcore/src/main/cpp/pending_anchor.cc
index f6a9c67..3ff5e60 100644
--- a/platform_tools/android/apps/arcore/src/main/cpp/pending_anchor.cc
+++ b/platform_tools/android/apps/arcore/src/main/cpp/pending_anchor.cc
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#include "hello_ar_application.h"
-#include "plane_renderer.h"
-#include "util.h"
-#include "SkCanvas.h"
+#include "include/core/SkCanvas.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/hello_ar_application.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/plane_renderer.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/util.h"
 
 namespace hello_ar {
     PendingAnchor::PendingAnchor(SkPoint touchLocation) : touchLocation(touchLocation) {}
diff --git a/platform_tools/android/apps/arcore/src/main/cpp/pending_anchor.h b/platform_tools/android/apps/arcore/src/main/cpp/pending_anchor.h
index 18db3e9..c301e1a 100644
--- a/platform_tools/android/apps/arcore/src/main/cpp/pending_anchor.h
+++ b/platform_tools/android/apps/arcore/src/main/cpp/pending_anchor.h
@@ -17,11 +17,11 @@
 #ifndef C_ARCORE_HELLO_AR_PENDING_ANCHOR_H_
 #define C_ARCORE_HELLO_AR_PENDING_ANCHOR_H_
 
-#include "GrBackendSurface.h"
-#include "gl/GrGLTypes.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/gl/GrGLTypes.h"
 
 #include "arcore_c_api.h"
-#include "glm.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/glm.h"
 
 namespace hello_ar {
     class PendingAnchor {
diff --git a/platform_tools/android/apps/arcore/src/main/cpp/plane_renderer.cc b/platform_tools/android/apps/arcore/src/main/cpp/plane_renderer.cc
index 50d8f8b..b62652d 100644
--- a/platform_tools/android/apps/arcore/src/main/cpp/plane_renderer.cc
+++ b/platform_tools/android/apps/arcore/src/main/cpp/plane_renderer.cc
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#include "plane_renderer.h"
-#include "util.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/plane_renderer.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/util.h"
 
 namespace hello_ar {
     namespace {
diff --git a/platform_tools/android/apps/arcore/src/main/cpp/plane_renderer.h b/platform_tools/android/apps/arcore/src/main/cpp/plane_renderer.h
index c1f75f2..b8fd415 100644
--- a/platform_tools/android/apps/arcore/src/main/cpp/plane_renderer.h
+++ b/platform_tools/android/apps/arcore/src/main/cpp/plane_renderer.h
@@ -27,7 +27,7 @@
 #include <vector>
 
 #include "arcore_c_api.h"
-#include "glm.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/glm.h"
 
 namespace hello_ar {
 
diff --git a/platform_tools/android/apps/arcore/src/main/cpp/point_cloud_renderer.cc b/platform_tools/android/apps/arcore/src/main/cpp/point_cloud_renderer.cc
index c9ab693..111e716 100644
--- a/platform_tools/android/apps/arcore/src/main/cpp/point_cloud_renderer.cc
+++ b/platform_tools/android/apps/arcore/src/main/cpp/point_cloud_renderer.cc
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#include "point_cloud_renderer.h"
-#include "util.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/point_cloud_renderer.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/util.h"
 
 namespace hello_ar {
     namespace {
diff --git a/platform_tools/android/apps/arcore/src/main/cpp/point_cloud_renderer.h b/platform_tools/android/apps/arcore/src/main/cpp/point_cloud_renderer.h
index 95f70e5..faba4d3 100644
--- a/platform_tools/android/apps/arcore/src/main/cpp/point_cloud_renderer.h
+++ b/platform_tools/android/apps/arcore/src/main/cpp/point_cloud_renderer.h
@@ -23,7 +23,7 @@
 #include <vector>
 
 #include "arcore_c_api.h"
-#include "glm.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/glm.h"
 
 namespace hello_ar {
 
diff --git a/platform_tools/android/apps/arcore/src/main/cpp/util.cc b/platform_tools/android/apps/arcore/src/main/cpp/util.cc
index ffc4c68..945d3da 100644
--- a/platform_tools/android/apps/arcore/src/main/cpp/util.cc
+++ b/platform_tools/android/apps/arcore/src/main/cpp/util.cc
@@ -13,15 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include "util.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/util.h"
 
-#include "SkMatrix44.h"
+#include "include/core/SkMatrix44.h"
 #include <gtx/string_cast.inl>
 #include <sstream>
 #include <string>
 #include <unistd.h>
 
-#include "jni_interface.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/jni_interface.h"
 
 namespace hello_ar {
     namespace util {
diff --git a/platform_tools/android/apps/arcore/src/main/cpp/util.h b/platform_tools/android/apps/arcore/src/main/cpp/util.h
index 770c99e..fbd664d 100644
--- a/platform_tools/android/apps/arcore/src/main/cpp/util.h
+++ b/platform_tools/android/apps/arcore/src/main/cpp/util.h
@@ -17,7 +17,7 @@
 #ifndef C_ARCORE_HELLOE_AR_UTIL_H_
 #define C_ARCORE_HELLOE_AR_UTIL_H_
 
-#include "SkMatrix44.h"
+#include "include/core/SkMatrix44.h"
 #include <GLES2/gl2.h>
 #include <GLES2/gl2ext.h>
 #include <android/asset_manager.h>
@@ -29,7 +29,7 @@
 #include <vector>
 
 #include "arcore_c_api.h"
-#include "glm.h"
+#include "platform_tools/android/apps/arcore/src/main/cpp/glm.h"
 
 #ifndef LOGI
 #define LOGI(...) \
diff --git a/platform_tools/android/apps/skottie/src/main/cpp/JavaInputStreamAdaptor.cpp b/platform_tools/android/apps/skottie/src/main/cpp/JavaInputStreamAdaptor.cpp
index dcdf4b7..caeb859 100644
--- a/platform_tools/android/apps/skottie/src/main/cpp/JavaInputStreamAdaptor.cpp
+++ b/platform_tools/android/apps/skottie/src/main/cpp/JavaInputStreamAdaptor.cpp
@@ -15,8 +15,8 @@
  */
 
 
-#include "JavaInputStreamAdaptor.h"
-#include "SkPostConfig.h"
+#include "include/core/SkTypes.h"
+#include "platform_tools/android/apps/skottie/src/main/cpp/JavaInputStreamAdaptor.h"
 
 static jclass findClassCheck(JNIEnv* env, const char classname[]) {
     jclass clazz = env->FindClass(classname);
diff --git a/platform_tools/android/apps/skottie/src/main/cpp/JavaInputStreamAdaptor.h b/platform_tools/android/apps/skottie/src/main/cpp/JavaInputStreamAdaptor.h
index c7ffc9b..8cfc2a4 100644
--- a/platform_tools/android/apps/skottie/src/main/cpp/JavaInputStreamAdaptor.h
+++ b/platform_tools/android/apps/skottie/src/main/cpp/JavaInputStreamAdaptor.h
@@ -16,8 +16,8 @@
 
 #pragma once
 
-#include "SkStream.h"
-#include "SkMalloc.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkMalloc.h"
 #include <jni.h>
 
 SkStreamRewindable* CopyJavaInputStream(JNIEnv* env, jobject stream,
diff --git a/platform_tools/android/apps/skottie/src/main/cpp/native-lib.cpp b/platform_tools/android/apps/skottie/src/main/cpp/native-lib.cpp
index 50f578c..a869fa5 100644
--- a/platform_tools/android/apps/skottie/src/main/cpp/native-lib.cpp
+++ b/platform_tools/android/apps/skottie/src/main/cpp/native-lib.cpp
@@ -6,30 +6,30 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkSurface.h"
-#include "SkTime.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTime.h"
 #include <jni.h>
 #include <math.h>
 #include <string>
 #include <utility>
 
-#include "GrBackendSurface.h"
-#include "GrContext.h"
-#include "GrContextOptions.h"
-#include "gl/GrGLInterface.h"
-#include "gl/GrGLTypes.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrContextOptions.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "include/gpu/gl/GrGLTypes.h"
 
-#include "Skottie.h"
+#include "modules/skottie/include/Skottie.h"
 
 #include <GLES2/gl2.h>
 #include <GLES2/gl2ext.h>
 
 #include <GLES3/gl3.h>
 #include <android/trace.h>
-#include "JavaInputStreamAdaptor.h"
+#include "platform_tools/android/apps/skottie/src/main/cpp/JavaInputStreamAdaptor.h"
 
 #define STENCIL_BUFFER_SIZE 8
 
diff --git a/public.bzl b/public.bzl
index 4fa50e4..060f15c 100644
--- a/public.bzl
+++ b/public.bzl
@@ -406,6 +406,7 @@
 
 # Includes needed by Skia implementation.  Not public includes.
 INCLUDES = [
+    ".",
     "include/android",
     "include/c",
     "include/codec",
@@ -540,6 +541,7 @@
 ################################################################################
 
 DM_INCLUDES = [
+    ".",
     "dm",
     "gm",
     "experimental/pipe",
@@ -687,6 +689,7 @@
 ################################################################################
 
 SKOTTIE_TOOL_INCLUDES = [
+    ".",
     "modules/skottie/utils",
     "tools/flags",
 ]
@@ -705,6 +708,7 @@
 ################################################################################
 
 SKSHAPER_INCLUDES = [
+    ".",
     "modules/skshaper/include",
 ]
 
diff --git a/samplecode/DecodeFile.h b/samplecode/DecodeFile.h
index eeb1cce..a8907e7 100644
--- a/samplecode/DecodeFile.h
+++ b/samplecode/DecodeFile.h
@@ -8,10 +8,10 @@
 #ifndef DecodeFile_DEFINED
 #define DecodeFile_DEFINED
 
-#include "SkBitmap.h"
-#include "SkCodec.h"
-#include "SkData.h"
-#include "SkImage.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
 
 static inline bool decode_file(const char* filename, SkBitmap* bitmap,
                                SkColorType colorType = kN32_SkColorType,
diff --git a/samplecode/PerlinPatch.cpp b/samplecode/PerlinPatch.cpp
index dc6ce3f..5950f7e 100644
--- a/samplecode/PerlinPatch.cpp
+++ b/samplecode/PerlinPatch.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkPatchUtils.h"
-#include "SkPerlinNoiseShader.h"
+#include "include/core/SkCanvas.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/effects/SkPerlinNoiseShader.h"
+#include "samplecode/Sample.h"
+#include "src/utils/SkPatchUtils.h"
+#include "tools/timer/AnimTimer.h"
 
 static void draw_control_points(SkCanvas* canvas, const SkPoint cubics[12]) {
     //draw control points
diff --git a/samplecode/Sample.cpp b/samplecode/Sample.cpp
index 895cd83..9cff539 100644
--- a/samplecode/Sample.cpp
+++ b/samplecode/Sample.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkString.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkString.h"
+#include "samplecode/Sample.h"
 
 #if SK_SUPPORT_GPU
-#   include "GrContext.h"
+#   include "include/gpu/GrContext.h"
 #else
 class GrContext;
 #endif
diff --git a/samplecode/Sample.h b/samplecode/Sample.h
index ecf3189..1f1bb4b 100644
--- a/samplecode/Sample.h
+++ b/samplecode/Sample.h
@@ -8,13 +8,13 @@
 #ifndef SampleCode_DEFINED
 #define SampleCode_DEFINED
 
-#include "Registry.h"
-#include "SkColor.h"
-#include "SkMacros.h"
-#include "SkMetaData.h"
-#include "SkPoint.h"
-#include "SkRefCnt.h"
-#include "SkString.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkString.h"
+#include "include/private/SkMacros.h"
+#include "src/utils/SkMetaData.h"
+#include "tools/Registry.h"
 
 class AnimTimer;
 class SkCanvas;
diff --git a/samplecode/Sample2PtRadial.cpp b/samplecode/Sample2PtRadial.cpp
index 5a93bd0..44dec2f 100644
--- a/samplecode/Sample2PtRadial.cpp
+++ b/samplecode/Sample2PtRadial.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
+#include "include/core/SkCanvas.h"
+#include "include/effects/SkGradientShader.h"
+#include "samplecode/Sample.h"
 
 
 class TwoPtConicalView : public Sample {
diff --git a/samplecode/SampleAAClip.cpp b/samplecode/SampleAAClip.cpp
index 0003c6a..8ed1727 100644
--- a/samplecode/SampleAAClip.cpp
+++ b/samplecode/SampleAAClip.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkAAClip.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkAAClip.h"
 
 static void testop(const SkIRect& r0, const SkIRect& r1, SkRegion::Op op,
                    const SkIRect& expectedR) {
diff --git a/samplecode/SampleAAGeometry.cpp b/samplecode/SampleAAGeometry.cpp
index 2722cad..225d9bc 100644
--- a/samplecode/SampleAAGeometry.cpp
+++ b/samplecode/SampleAAGeometry.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkGeometry.h"
-#include "SkIntersections.h"
-#include "SkMacros.h"
-#include "SkOpEdgeBuilder.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/private/SkMacros.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkGeometry.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkOpEdgeBuilder.h"
 // #include "SkPathOpsSimplifyAA.h"
 // #include "SkPathStroker.h"
-#include "SkPointPriv.h"
-#include "SkString.h"
-#include "SkTextUtils.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkTextUtils.h"
+#include "src/core/SkPointPriv.h"
 
 #if 0
 void SkStrokeSegment::dump() const {
diff --git a/samplecode/SampleAARectModes.cpp b/samplecode/SampleAARectModes.cpp
index c876712..98e7781 100644
--- a/samplecode/SampleAARectModes.cpp
+++ b/samplecode/SampleAARectModes.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkShader.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkShader.h"
+#include "samplecode/Sample.h"
 
 static const SkBlendMode gModes[] = {
     SkBlendMode::kClear,
diff --git a/samplecode/SampleAARects.cpp b/samplecode/SampleAARects.cpp
index d556482..0a7dfed 100644
--- a/samplecode/SampleAARects.cpp
+++ b/samplecode/SampleAARects.cpp
@@ -4,11 +4,11 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkShader.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "samplecode/Sample.h"
 
 static SkBitmap createBitmap(int n) {
     SkBitmap bitmap;
diff --git a/samplecode/SampleAndroidShadows.cpp b/samplecode/SampleAndroidShadows.cpp
index 8449b34..9ddfdd2 100644
--- a/samplecode/SampleAndroidShadows.cpp
+++ b/samplecode/SampleAndroidShadows.cpp
@@ -5,19 +5,19 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "AnimTimer.h"
-#include "Sample.h"
-#include "SkBlurMask.h"
-#include "SkBlurMaskFilter.h"
-#include "SkCamera.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkPath.h"
-#include "SkPathOps.h"
-#include "SkPoint3.h"
-#include "SkShadowUtils.h"
-#include "SkUTF.h"
-#include "ToolUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint3.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "include/pathops/SkPathOps.h"
+#include "include/utils/SkCamera.h"
+#include "include/utils/SkShadowUtils.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkBlurMask.h"
+#include "src/utils/SkUTF.h"
+#include "tools/ToolUtils.h"
+#include "tools/timer/AnimTimer.h"
 
 ////////////////////////////////////////////////////////////////////////////
 
diff --git a/samplecode/SampleAnimBlur.cpp b/samplecode/SampleAnimBlur.cpp
index 21d886d..4d8f186 100644
--- a/samplecode/SampleAnimBlur.cpp
+++ b/samplecode/SampleAnimBlur.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkMaskFilter.h"
-#include "SkRandom.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
+#include "tools/timer/AnimTimer.h"
 
 SkScalar get_anim_sin(double secs, SkScalar amplitude, SkScalar periodInSec, SkScalar phaseInSec) {
     if (!periodInSec) {
diff --git a/samplecode/SampleAnimatedImage.cpp b/samplecode/SampleAnimatedImage.cpp
index 9f66f3a..d603259 100644
--- a/samplecode/SampleAnimatedImage.cpp
+++ b/samplecode/SampleAnimatedImage.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "SkAndroidCodec.h"
-#include "SkAnimatedImage.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkPaint.h"
-#include "SkPictureRecorder.h"
-#include "SkRect.h"
-#include "SkScalar.h"
-#include "SkString.h"
+#include "include/android/SkAnimatedImage.h"
+#include "include/codec/SkAndroidCodec.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkString.h"
+#include "tools/timer/AnimTimer.h"
 
-#include "Sample.h"
-#include "Resources.h"
+#include "samplecode/Sample.h"
+#include "tools/Resources.h"
 
 static constexpr char kPauseKey = 'p';
 static constexpr char kResetKey = 'r';
diff --git a/samplecode/SampleAnimatedText.cpp b/samplecode/SampleAnimatedText.cpp
index e927ffc..079eafc 100644
--- a/samplecode/SampleAnimatedText.cpp
+++ b/samplecode/SampleAnimatedText.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkUTF.h"
-#include "SkColorPriv.h"
-#include "SkColorFilter.h"
-#include "SkImage.h"
-#include "SkRandom.h"
-#include "SkTime.h"
-#include "SkTypeface.h"
-#include "Timer.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkTime.h"
+#include "include/core/SkTypeface.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
+#include "src/utils/SkUTF.h"
+#include "tools/timer/Timer.h"
 
 #if SK_SUPPORT_GPU
-#include "GrContext.h"
-#include "GrContextPriv.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrContextPriv.h"
 #endif
 
 SkRandom gRand;
diff --git a/samplecode/SampleArc.cpp b/samplecode/SampleArc.cpp
index 8c840ea..d640078 100644
--- a/samplecode/SampleArc.cpp
+++ b/samplecode/SampleArc.cpp
@@ -5,26 +5,26 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "Sample.h"
-#include "Sk1DPathEffect.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkColorPriv.h"
-#include "SkCornerPathEffect.h"
-#include "SkDrawable.h"
-#include "SkGradientShader.h"
-#include "SkPath.h"
-#include "SkPathMeasure.h"
-#include "SkPictureRecorder.h"
-#include "SkRandom.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkString.h"
-#include "SkTextUtils.h"
-#include "SkUTF.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkDrawable.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPathMeasure.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/effects/Sk1DPathEffect.h"
+#include "include/effects/SkCornerPathEffect.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkRandom.h"
+#include "include/utils/SkTextUtils.h"
+#include "samplecode/Sample.h"
+#include "src/utils/SkUTF.h"
+#include "tools/timer/AnimTimer.h"
 
-#include "SkParsePath.h"
+#include "include/utils/SkParsePath.h"
 static void testparse() {
     SkRect r;
     r.set(0, 0, 10, 10.5f);
diff --git a/samplecode/SampleAtlas.cpp b/samplecode/SampleAtlas.cpp
index a2ef015..22c8861 100644
--- a/samplecode/SampleAtlas.cpp
+++ b/samplecode/SampleAtlas.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkDrawable.h"
-#include "SkPath.h"
-#include "SkRSXform.h"
-#include "SkRandom.h"
-#include "SkSurface.h"
-#include "SkTextUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkDrawable.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRSXform.h"
+#include "include/core/SkSurface.h"
+#include "include/utils/SkRandom.h"
+#include "include/utils/SkTextUtils.h"
+#include "samplecode/Sample.h"
+#include "tools/timer/AnimTimer.h"
 
 typedef void (*DrawAtlasProc)(SkCanvas*, SkImage*, const SkRSXform[], const SkRect[],
                               const SkColor[], int, const SkRect*, const SkPaint*);
diff --git a/samplecode/SampleBigBlur.cpp b/samplecode/SampleBigBlur.cpp
index d7bc5f0..d711fab 100644
--- a/samplecode/SampleBigBlur.cpp
+++ b/samplecode/SampleBigBlur.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkMaskFilter.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMaskFilter.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkBlurMask.h"
 
 class BigBlurView : public Sample {
 public:
diff --git a/samplecode/SampleBigGradient.cpp b/samplecode/SampleBigGradient.cpp
index dbfc332..20a629d 100644
--- a/samplecode/SampleBigGradient.cpp
+++ b/samplecode/SampleBigGradient.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkMakeUnique.h"
+#include "include/core/SkCanvas.h"
+#include "include/effects/SkGradientShader.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkMakeUnique.h"
 
 static sk_sp<SkShader> make_grad(SkScalar w, SkScalar h) {
     SkColor colors[] = { 0xFF000000, 0xFF333333 };
@@ -47,7 +47,7 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkRasterHandleAllocator.h"
+#include "include/core/SkRasterHandleAllocator.h"
 
 class GraphicsPort {
 protected:
@@ -84,7 +84,7 @@
 
 #ifdef SK_BUILD_FOR_MAC
 
-#include "SkCGUtils.h"
+#include "include/utils/mac/SkCGUtils.h"
 class CGGraphicsPort : public GraphicsPort {
 public:
     CGGraphicsPort(SkCanvas* canvas) : GraphicsPort(canvas) {}
diff --git a/samplecode/SampleBitmapRect.cpp b/samplecode/SampleBitmapRect.cpp
index 0d9b7f8..2bc2ba0 100644
--- a/samplecode/SampleBitmapRect.cpp
+++ b/samplecode/SampleBitmapRect.cpp
@@ -5,24 +5,24 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "Sample.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkColorPriv.h"
-#include "SkFont.h"
-#include "SkGradientShader.h"
-#include "SkGraphics.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkTime.h"
-#include "SkTypeface.h"
-#include "SkUTF.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkTime.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkGradientShader.h"
+#include "samplecode/Sample.h"
+#include "src/utils/SkUTF.h"
+#include "tools/timer/AnimTimer.h"
 
-#include "SkOSFile.h"
-#include "SkStream.h"
+#include "include/core/SkStream.h"
+#include "src/core/SkOSFile.h"
 
 #define INT_SIZE        64
 #define SCALAR_SIZE     SkIntToScalar(INT_SIZE)
diff --git a/samplecode/SampleCCPRGeometry.cpp b/samplecode/SampleCCPRGeometry.cpp
index 1fe801f..1ec7c1a 100644
--- a/samplecode/SampleCCPRGeometry.cpp
+++ b/samplecode/SampleCCPRGeometry.cpp
@@ -5,31 +5,31 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if SK_SUPPORT_GPU
 
-#include "GrClip.h"
-#include "GrContextPriv.h"
-#include "GrMemoryPool.h"
-#include "GrPathUtils.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "GrResourceProvider.h"
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkMakeUnique.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRectPriv.h"
-#include "ccpr/GrCCCoverageProcessor.h"
-#include "ccpr/GrCCFillGeometry.h"
-#include "ccpr/GrCCStroker.h"
-#include "ccpr/GrGSCoverageProcessor.h"
-#include "ccpr/GrVSCoverageProcessor.h"
-#include "gl/GrGLGpu.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "ops/GrDrawOp.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkRectPriv.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrPathUtils.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/ccpr/GrCCCoverageProcessor.h"
+#include "src/gpu/ccpr/GrCCFillGeometry.h"
+#include "src/gpu/ccpr/GrCCStroker.h"
+#include "src/gpu/ccpr/GrGSCoverageProcessor.h"
+#include "src/gpu/ccpr/GrVSCoverageProcessor.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/ops/GrDrawOp.h"
 
 using TriPointInstance = GrCCCoverageProcessor::TriPointInstance;
 using QuadPointInstance = GrCCCoverageProcessor::QuadPointInstance;
diff --git a/samplecode/SampleCamera.cpp b/samplecode/SampleCamera.cpp
index 3b3b98c..28bbb1d 100644
--- a/samplecode/SampleCamera.cpp
+++ b/samplecode/SampleCamera.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "DecodeFile.h"
-#include "Sample.h"
-#include "SkCamera.h"
-#include "SkCanvas.h"
-#include "SkEmbossMaskFilter.h"
-#include "SkGradientShader.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkString.h"
-#include "SkUTF.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkCamera.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/DecodeFile.h"
+#include "samplecode/Sample.h"
+#include "src/effects/SkEmbossMaskFilter.h"
+#include "src/utils/SkUTF.h"
+#include "tools/timer/AnimTimer.h"
 
 class CameraView : public Sample {
     SkTArray<sk_sp<SkShader>> fShaders;
diff --git a/samplecode/SampleChart.cpp b/samplecode/SampleChart.cpp
index 6356dec..4e9c3ef 100644
--- a/samplecode/SampleChart.cpp
+++ b/samplecode/SampleChart.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRandom.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
 
 // Generates y values for the chart plots.
 static void gen_data(SkScalar yAvg, SkScalar ySpread, int count, SkTDArray<SkScalar>* dataPts) {
diff --git a/samplecode/SampleChineseFling.cpp b/samplecode/SampleChineseFling.cpp
index d5e2479..1c2d7d3 100644
--- a/samplecode/SampleChineseFling.cpp
+++ b/samplecode/SampleChineseFling.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "Sample.h"
-#include "ToolUtils.h"
+#include "samplecode/Sample.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
-#include "SkCanvas.h"
-#include "SkFontMetrics.h"
-#include "SkFontMgr.h"
-#include "SkRandom.h"
-#include "SkTypeface.h"
-#include "SkTextBlob.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "include/utils/SkRandom.h"
 
 #if SK_SUPPORT_GPU
-#include "GrContext.h"
-#include "GrContextPriv.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrContextPriv.h"
 #endif
 
 static sk_sp<SkTypeface> chinese_typeface() {
diff --git a/samplecode/SampleCircle.cpp b/samplecode/SampleCircle.cpp
index fd9f157..56aaa62 100644
--- a/samplecode/SampleCircle.cpp
+++ b/samplecode/SampleCircle.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "samplecode/Sample.h"
 
 // ensure that we don't accidentally screw up the bounds when the oval is
 // fractional, and the impl computes the center and radii, and uses them to
diff --git a/samplecode/SampleClip.cpp b/samplecode/SampleClip.cpp
index c901151..05162a8 100644
--- a/samplecode/SampleClip.cpp
+++ b/samplecode/SampleClip.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkAAClip.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkFont.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkClipOpPriv.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkAAClip.h"
+#include "src/core/SkClipOpPriv.h"
 
 constexpr int W = 150;
 constexpr int H = 200;
diff --git a/samplecode/SampleClipDrawMatch.cpp b/samplecode/SampleClipDrawMatch.cpp
index 3b556ba..375a286 100644
--- a/samplecode/SampleClipDrawMatch.cpp
+++ b/samplecode/SampleClipDrawMatch.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkInterpolator.h"
-#include "SkPath.h"
-#include "SkRRect.h"
-#include "SkTime.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkTime.h"
+#include "include/utils/SkInterpolator.h"
+#include "samplecode/Sample.h"
 
 // This slide tests out the match up between BW clipping and rendering. It can
 // draw a large rect through some clip geometry and draw the same geometry
diff --git a/samplecode/SampleClock.cpp b/samplecode/SampleClock.cpp
index 2bd65e2..aac04bf 100644
--- a/samplecode/SampleClock.cpp
+++ b/samplecode/SampleClock.cpp
@@ -4,13 +4,13 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
+#include "samplecode/Sample.h"
 
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkRRect.h"
-#include "SkTime.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkTime.h"
+#include "include/utils/SkRandom.h"
 
 // Implementation in C++ of Mozilla Canvas2D benchmark Canvas Clock Test
 // See https://code.google.com/p/skia/issues/detail?id=1626
diff --git a/samplecode/SampleColorFilter.cpp b/samplecode/SampleColorFilter.cpp
index 9c28231..e394249 100644
--- a/samplecode/SampleColorFilter.cpp
+++ b/samplecode/SampleColorFilter.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkPaint.h"
-#include "SkShader.h"
-#include "ToolUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "samplecode/Sample.h"
+#include "tools/ToolUtils.h"
 
 static int inflate5To8(int x) {
     return (x << 3) | (x >> 2);
diff --git a/samplecode/SampleComplexClip.cpp b/samplecode/SampleComplexClip.cpp
index f4da38c..59065cb 100644
--- a/samplecode/SampleComplexClip.cpp
+++ b/samplecode/SampleComplexClip.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkPath.h"
-#include "SkClipOpPriv.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPath.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkClipOpPriv.h"
 
 class ComplexClipView : public Sample {
 public:
diff --git a/samplecode/SampleConcavePaths.cpp b/samplecode/SampleConcavePaths.cpp
index a2a5143..fd69298 100644
--- a/samplecode/SampleConcavePaths.cpp
+++ b/samplecode/SampleConcavePaths.cpp
@@ -5,21 +5,21 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkGraphics.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkUTF.h"
-#include "SkColorPriv.h"
-#include "SkColorFilter.h"
-#include "SkParsePath.h"
-#include "SkTime.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkTime.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkParsePath.h"
+#include "samplecode/Sample.h"
+#include "src/utils/SkUTF.h"
 
-#include "SkGeometry.h"
+#include "src/core/SkGeometry.h"
 
 class ConcavePathView : public Sample {
 public:
diff --git a/samplecode/SampleCowboy.cpp b/samplecode/SampleCowboy.cpp
index e598f87..0a2346a 100644
--- a/samplecode/SampleCowboy.cpp
+++ b/samplecode/SampleCowboy.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #ifdef SK_XML
 
-#include "Sample.h"
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkDOM.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkRect.h"
-#include "SkStream.h"
-#include "SkSVGDOM.h"
+#include "experimental/svg/model/SkSVGDOM.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkStream.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkOSFile.h"
+#include "src/utils/SkOSPath.h"
+#include "src/xml/SkDOM.h"
+#include "tools/Resources.h"
 
 namespace {
 
diff --git a/samplecode/SampleCusp.cpp b/samplecode/SampleCusp.cpp
index d978e33025..b287bbd 100644
--- a/samplecode/SampleCusp.cpp
+++ b/samplecode/SampleCusp.cpp
@@ -6,12 +6,12 @@
  */
 
 #include <string>
-#include "AnimTimer.h"
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkGeometry.h"
-#include "SkPath.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPath.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkGeometry.h"
+#include "tools/timer/AnimTimer.h"
 
 // This draws an animation where every cubic has a cusp, to test drawing a circle
 // at the cusp point. Create a unit square. A cubic with its control points
diff --git a/samplecode/SampleDegenerateQuads.cpp b/samplecode/SampleDegenerateQuads.cpp
index 72ee612..13510ac 100644
--- a/samplecode/SampleDegenerateQuads.cpp
+++ b/samplecode/SampleDegenerateQuads.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
+#include "samplecode/Sample.h"
 
-#include "GrQuad.h"
-#include "ops/GrQuadPerEdgeAA.h"
+#include "src/gpu/GrQuad.h"
+#include "src/gpu/ops/GrQuadPerEdgeAA.h"
 
-#include "SkCanvas.h"
-#include "SkDashPathEffect.h"
-#include "SkPaint.h"
-#include "SkPathOps.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "include/pathops/SkPathOps.h"
 
 // Draw a line through the two points, outset by a fixed length in screen space
 static void draw_extended_line(SkCanvas* canvas, const SkPaint paint,
diff --git a/samplecode/SampleDegenerateTwoPtRadials.cpp b/samplecode/SampleDegenerateTwoPtRadials.cpp
index 6721669..be9d650 100644
--- a/samplecode/SampleDegenerateTwoPtRadials.cpp
+++ b/samplecode/SampleDegenerateTwoPtRadials.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkGradientShader.h"
-#include "SkString.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkGradientShader.h"
+#include "samplecode/Sample.h"
+#include "tools/timer/AnimTimer.h"
 
 static void draw_gradient2(SkCanvas* canvas, const SkRect& rect, SkScalar delta) {
     SkColor colors[] = { SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, SK_ColorMAGENTA };
diff --git a/samplecode/SampleEffects.cpp b/samplecode/SampleEffects.cpp
index 31a4d37..a8b2905 100644
--- a/samplecode/SampleEffects.cpp
+++ b/samplecode/SampleEffects.cpp
@@ -4,14 +4,14 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkColorMatrixFilter.h"
-#include "SkDiscretePathEffect.h"
-#include "SkEmbossMaskFilter.h"
-#include "SkGradientShader.h"
-#include "SkPaint.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/effects/SkColorMatrixFilter.h"
+#include "include/effects/SkDiscretePathEffect.h"
+#include "include/effects/SkGradientShader.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkBlurMask.h"
+#include "src/effects/SkEmbossMaskFilter.h"
 
 
 //#define COLOR 0xFFFF8844
diff --git a/samplecode/SampleEmboss.cpp b/samplecode/SampleEmboss.cpp
index 1e08fe1..3ac15d8 100644
--- a/samplecode/SampleEmboss.cpp
+++ b/samplecode/SampleEmboss.cpp
@@ -5,21 +5,21 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkEmbossMaskFilter.h"
-#include "SkGradientShader.h"
-#include "SkGraphics.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkUTF.h"
-#include "SkColorPriv.h"
-#include "SkColorFilter.h"
-#include "SkTime.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkTime.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkBlurMask.h"
+#include "src/effects/SkEmbossMaskFilter.h"
+#include "src/utils/SkUTF.h"
 
 class EmbossView : public Sample {
     SkEmbossMaskFilter::Light   fLight;
diff --git a/samplecode/SampleFatBits.cpp b/samplecode/SampleFatBits.cpp
index 06735a2..6d3c9e8 100644
--- a/samplecode/SampleFatBits.cpp
+++ b/samplecode/SampleFatBits.cpp
@@ -5,25 +5,25 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkBlendMode.h"
-#include "SkCanvas.h"
-#include "SkClipOpPriv.h"
-#include "SkColor.h"
-#include "SkImageInfo.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPoint.h"
-#include "SkPointPriv.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkShader.h"
-#include "SkString.h"
-#include "SkSurface.h"
-#include "SkTypes.h"
-#include "ToolUtils.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTypes.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkClipOpPriv.h"
+#include "src/core/SkPointPriv.h"
+#include "tools/ToolUtils.h"
 
 class SkEvent;
 
diff --git a/samplecode/SampleFillType.cpp b/samplecode/SampleFillType.cpp
index cf5825a..3ee684d 100644
--- a/samplecode/SampleFillType.cpp
+++ b/samplecode/SampleFillType.cpp
@@ -4,14 +4,14 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkCornerPathEffect.h"
-#include "SkGradientShader.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkUTF.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/effects/SkCornerPathEffect.h"
+#include "include/effects/SkGradientShader.h"
+#include "samplecode/Sample.h"
+#include "src/utils/SkUTF.h"
 
 class FillTypeView : public Sample {
     SkPath fPath;
diff --git a/samplecode/SampleFilter2.cpp b/samplecode/SampleFilter2.cpp
index 7a7acf0..b1e5251 100644
--- a/samplecode/SampleFilter2.cpp
+++ b/samplecode/SampleFilter2.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "DecodeFile.h"
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkColorPriv.h"
-#include "SkGradientShader.h"
-#include "SkGraphics.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkString.h"
-#include "SkTextUtils.h"
-#include "SkTime.h"
-#include "SkUTF.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTime.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkTextUtils.h"
+#include "samplecode/DecodeFile.h"
+#include "samplecode/Sample.h"
+#include "src/utils/SkUTF.h"
 
 static const char* gNames[] = {
     "/skimages/background_01.png"
diff --git a/samplecode/SampleFilterQuality.cpp b/samplecode/SampleFilterQuality.cpp
index 6d1d465..05ef3a1 100644
--- a/samplecode/SampleFilterQuality.cpp
+++ b/samplecode/SampleFilterQuality.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "Resources.h"
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkData.h"
-#include "SkFont.h"
-#include "SkGradientShader.h"
-#include "SkInterpolator.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkSurface.h"
-#include "SkTime.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTime.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkInterpolator.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
+#include "tools/Resources.h"
+#include "tools/timer/AnimTimer.h"
 
 static sk_sp<SkSurface> make_surface(SkCanvas* canvas, const SkImageInfo& info) {
     auto surface = canvas->makeSurface(info);
diff --git a/samplecode/SampleFlutterAnimate.cpp b/samplecode/SampleFlutterAnimate.cpp
index 0953fe8..77d132d 100644
--- a/samplecode/SampleFlutterAnimate.cpp
+++ b/samplecode/SampleFlutterAnimate.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkColorPriv.h"
-#include "SkFont.h"
-#include "SkImage.h"
-#include "SkRandom.h"
-#include "SkTime.h"
-#include "SkTypeface.h"
-#include "Timer.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkTime.h"
+#include "include/core/SkTypeface.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
+#include "tools/timer/AnimTimer.h"
+#include "tools/timer/Timer.h"
 
 #if SK_SUPPORT_GPU
-#include "GrContext.h"
+#include "include/gpu/GrContext.h"
 #endif
 
 // Create an animation of a bunch of letters that rotate in place. This is intended to stress
diff --git a/samplecode/SampleFontCache.cpp b/samplecode/SampleFontCache.cpp
index f5952c4..d9f4f04 100644
--- a/samplecode/SampleFontCache.cpp
+++ b/samplecode/SampleFontCache.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkGraphics.h"
-#include "SkRandom.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkGraphics.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
 
 #include <pthread.h>
 
diff --git a/samplecode/SampleGlyphTransform.cpp b/samplecode/SampleGlyphTransform.cpp
index 497a6be..35058e0 100644
--- a/samplecode/SampleGlyphTransform.cpp
+++ b/samplecode/SampleGlyphTransform.cpp
@@ -4,15 +4,15 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "ToolUtils.h"
+#include "samplecode/Sample.h"
+#include "tools/ToolUtils.h"
 
-#include "AnimTimer.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkRRect.h"
-#include "SkRandom.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkTypeface.h"
+#include "include/utils/SkRandom.h"
+#include "tools/timer/AnimTimer.h"
 
 #include <cmath>
 
diff --git a/samplecode/SampleGradients.cpp b/samplecode/SampleGradients.cpp
index a0ae5d4..eec5354 100644
--- a/samplecode/SampleGradients.cpp
+++ b/samplecode/SampleGradients.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
+#include "include/core/SkCanvas.h"
+#include "include/effects/SkGradientShader.h"
+#include "samplecode/Sample.h"
 
 static sk_sp<SkShader> setgrad(const SkRect& r, SkColor c0, SkColor c1) {
     SkColor colors[] = { c0, c1 };
diff --git a/samplecode/SampleHT.cpp b/samplecode/SampleHT.cpp
index 05b9aec..c8065f0 100644
--- a/samplecode/SampleHT.cpp
+++ b/samplecode/SampleHT.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkDrawable.h"
-#include "SkInterpolator.h"
-#include "SkPictureRecorder.h"
-#include "SkPointPriv.h"
-#include "SkRandom.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkDrawable.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/utils/SkInterpolator.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkPointPriv.h"
+#include "tools/timer/AnimTimer.h"
 
 const SkRect gUnitSquare = { -1, -1, 1, 1 };
 
diff --git a/samplecode/SampleHairCurves.cpp b/samplecode/SampleHairCurves.cpp
index a865815..2d84320 100644
--- a/samplecode/SampleHairCurves.cpp
+++ b/samplecode/SampleHairCurves.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkRandom.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
 
 class HairCurvesView : public Sample {
 public:
diff --git a/samplecode/SampleHairModes.cpp b/samplecode/SampleHairModes.cpp
index 781d212..21608e5 100644
--- a/samplecode/SampleHairModes.cpp
+++ b/samplecode/SampleHairModes.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkShader.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkShader.h"
+#include "samplecode/Sample.h"
 
 static const SkBlendMode gModes[] = {
     SkBlendMode::kClear,
diff --git a/samplecode/SampleHairline.cpp b/samplecode/SampleHairline.cpp
index f6ec0ca..51efead 100644
--- a/samplecode/SampleHairline.cpp
+++ b/samplecode/SampleHairline.cpp
@@ -5,24 +5,24 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "Sample.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkColorPriv.h"
-#include "SkCornerPathEffect.h"
-#include "SkGradientShader.h"
-#include "SkGraphics.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkStream.h"
-#include "SkTime.h"
-#include "SkTo.h"
-#include "SkTypeface.h"
-#include "SkUTF.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTime.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkCornerPathEffect.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
+#include "src/utils/SkUTF.h"
+#include "tools/timer/AnimTimer.h"
 
 static SkRandom gRand;
 
diff --git a/samplecode/SampleIdentityScale.cpp b/samplecode/SampleIdentityScale.cpp
index bb3ff54..6df29d3 100644
--- a/samplecode/SampleIdentityScale.cpp
+++ b/samplecode/SampleIdentityScale.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "DecodeFile.h"
-#include "Resources.h"
-#include "Sample.h"
-#include "SkBlurMaskFilter.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkFont.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkStream.h"
-#include "SkTime.h"
-#include "SkClipOpPriv.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTime.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/DecodeFile.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkClipOpPriv.h"
+#include "tools/Resources.h"
 
 // Intended to exercise pixel snapping observed with scaled images (and
 // with non-scaled images, but for a different reason):  Bug 1145
diff --git a/samplecode/SampleLCD.cpp b/samplecode/SampleLCD.cpp
index 5cf6f5a..2245228 100644
--- a/samplecode/SampleLCD.cpp
+++ b/samplecode/SampleLCD.cpp
@@ -4,11 +4,11 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkPaint.h"
-#include "SkShader.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "samplecode/Sample.h"
 
 class LCDView : public Sample {
 public:
diff --git a/samplecode/SampleLayerMask.cpp b/samplecode/SampleLayerMask.cpp
index b13ef31..380f193 100644
--- a/samplecode/SampleLayerMask.cpp
+++ b/samplecode/SampleLayerMask.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "samplecode/Sample.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 
diff --git a/samplecode/SampleLayers.cpp b/samplecode/SampleLayers.cpp
index b4b51a9..bcdcdae 100644
--- a/samplecode/SampleLayers.cpp
+++ b/samplecode/SampleLayers.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkBlurMaskFilter.h"
-#include "SkCamera.h"
-#include "SkColorFilter.h"
-#include "SkColorPriv.h"
-#include "SkGradientShader.h"
-#include "SkImage.h"
-#include "SkInterpolator.h"
-#include "SkMaskFilter.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkTime.h"
-#include "SkTypeface.h"
-#include "SkUTF.h"
-#include "SkClipOpPriv.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkTime.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkCamera.h"
+#include "include/utils/SkInterpolator.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkClipOpPriv.h"
+#include "src/utils/SkUTF.h"
 
 static void make_paint(SkPaint* paint, const SkMatrix& localMatrix) {
     SkColor colors[] = { 0, SK_ColorWHITE };
@@ -180,12 +180,12 @@
 
 //////////////////////////////////////////////////////////////////////////////
 
-#include "SkBlurImageFilter.h"
-#include "SkMatrixConvolutionImageFilter.h"
-#include "SkMorphologyImageFilter.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkMatrixConvolutionImageFilter.h"
+#include "include/effects/SkMorphologyImageFilter.h"
 
-#include "AnimTimer.h"
-#include "Resources.h"
+#include "tools/Resources.h"
+#include "tools/timer/AnimTimer.h"
 
 class BackdropView : public Sample {
     SkPoint fCenter;
diff --git a/samplecode/SampleLighting.cpp b/samplecode/SampleLighting.cpp
index 154b7c3..3589ee9 100644
--- a/samplecode/SampleLighting.cpp
+++ b/samplecode/SampleLighting.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "DecodeFile.h"
-#include "Sample.h"
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkLightingShader.h"
-#include "SkNormalSource.h"
-#include "SkPoint3.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPoint3.h"
+#include "samplecode/DecodeFile.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkNormalSource.h"
+#include "src/shaders/SkLightingShader.h"
+#include "tools/Resources.h"
 
 static sk_sp<SkLights> create_lights(SkScalar angle, SkScalar blue) {
 
diff --git a/samplecode/SampleLines.cpp b/samplecode/SampleLines.cpp
index 1ec4748..806f9d8 100644
--- a/samplecode/SampleLines.cpp
+++ b/samplecode/SampleLines.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "DecodeFile.h"
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkCornerPathEffect.h"
-#include "SkGradientShader.h"
-#include "SkGraphics.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkUTF.h"
-#include "SkColorPriv.h"
-#include "SkColorFilter.h"
-#include "SkTime.h"
-#include "SkTypeface.h"
-#include "SkStream.h"
-#include "SkColorPriv.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTime.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkCornerPathEffect.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/DecodeFile.h"
+#include "samplecode/Sample.h"
+#include "src/utils/SkUTF.h"
 
 class LinesView : public Sample {
 public:
diff --git a/samplecode/SampleLitAtlas.cpp b/samplecode/SampleLitAtlas.cpp
index b2d7f97..1e1d921 100644
--- a/samplecode/SampleLitAtlas.cpp
+++ b/samplecode/SampleLitAtlas.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "Sample.h"
-#include "SkBitmapProcShader.h"
-#include "SkCanvas.h"
-#include "SkDrawable.h"
-#include "SkLightingShader.h"
-#include "SkLights.h"
-#include "SkNormalSource.h"
-#include "SkRSXform.h"
-#include "SkRandom.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkDrawable.h"
+#include "include/core/SkRSXform.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkNormalSource.h"
+#include "src/shaders/SkBitmapProcShader.h"
+#include "src/shaders/SkLightingShader.h"
+#include "src/shaders/SkLights.h"
+#include "tools/timer/AnimTimer.h"
 
-#include "ToolUtils.h"
+#include "tools/ToolUtils.h"
 
 // A crude normal mapped asteroids-like sample
 class DrawLitAtlasDrawable : public SkDrawable {
diff --git a/samplecode/SampleLua.cpp b/samplecode/SampleLua.cpp
index 68cfc1d..582a0ca 100644
--- a/samplecode/SampleLua.cpp
+++ b/samplecode/SampleLua.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkLua.h"
-#include "SkCanvas.h"
-#include "Resources.h"
-#include "SkData.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/utils/SkLua.h"
+#include "samplecode/Sample.h"
+#include "tools/Resources.h"
 
 extern "C" {
 #include "lua.h"
diff --git a/samplecode/SampleManyRects.cpp b/samplecode/SampleManyRects.cpp
index 779c9e9..4209d99 100644
--- a/samplecode/SampleManyRects.cpp
+++ b/samplecode/SampleManyRects.cpp
@@ -4,11 +4,11 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkRandom.h"
-#include "SkShader.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
 
 /**
  * Animated sample used to develop a predecessor of GrDrawOp combining.
diff --git a/samplecode/SampleMegaStroke.cpp b/samplecode/SampleMegaStroke.cpp
index 3248ab9..19912a3 100644
--- a/samplecode/SampleMegaStroke.cpp
+++ b/samplecode/SampleMegaStroke.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkRandom.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
 
 class MegaStrokeView : public Sample {
 public:
diff --git a/samplecode/SampleMixer.cpp b/samplecode/SampleMixer.cpp
index f9c5702..75e3086 100644
--- a/samplecode/SampleMixer.cpp
+++ b/samplecode/SampleMixer.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkGradientShader.h"
-#include "SkImage.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkUtils.h"
-#include "Resources.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/effects/SkGradientShader.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkUtils.h"
+#include "tools/Resources.h"
 
 const SkScalar gMat[] = {
     .3f, .6f, .1f, 0, 0,
@@ -97,8 +97,8 @@
 
 //////////////////////////////////////////////////////////////////////////////
 
-#include "SkMaskFilter.h"
-#include "SkSurface.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkSurface.h"
 
 static sk_sp<SkShader> make_resource_shader(const char path[], int size) {
     auto img = GetResourceAsImage(path);
diff --git a/samplecode/SampleNima.cpp b/samplecode/SampleNima.cpp
index 3ecd764..8a1ab11 100644
--- a/samplecode/SampleNima.cpp
+++ b/samplecode/SampleNima.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
+#include "samplecode/Sample.h"
 
-#include "AnimTimer.h"
-#include "Resources.h"
-#include "nima/NimaActor.h"
+#include "experimental/nima/NimaActor.h"
+#include "tools/Resources.h"
+#include "tools/timer/AnimTimer.h"
 
 #include <nima/Animation/ActorAnimationInstance.hpp>
 #include <cmath>
diff --git a/samplecode/SamplePatch.cpp b/samplecode/SamplePatch.cpp
index 9bd9dbd..3e01b47 100644
--- a/samplecode/SamplePatch.cpp
+++ b/samplecode/SamplePatch.cpp
@@ -5,27 +5,27 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "DecodeFile.h"
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkColorPriv.h"
-#include "SkGradientShader.h"
-#include "SkGraphics.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkTime.h"
-#include "SkTypeface.h"
-#include "SkUTF.h"
-#include "SkVertices.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkTime.h"
+#include "include/core/SkTypeface.h"
+#include "include/core/SkVertices.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/DecodeFile.h"
+#include "samplecode/Sample.h"
+#include "src/utils/SkUTF.h"
+#include "tools/timer/AnimTimer.h"
 
-#include "SkOSFile.h"
-#include "SkStream.h"
+#include "include/core/SkStream.h"
+#include "src/core/SkOSFile.h"
 
-#include "SkGeometry.h" // private include :(
+#include "src/core/SkGeometry.h"
 
 static sk_sp<SkShader> make_shader0(SkIPoint* size) {
     SkBitmap    bm;
@@ -329,8 +329,8 @@
 
 //////////////////////////////////////////////////////////////////////////////
 
-#include "SkContourMeasure.h"
-#include "SkTDArray.h"
+#include "include/core/SkContourMeasure.h"
+#include "include/private/SkTDArray.h"
 
 static sk_sp<SkVertices> make_verts(const SkPath& path, SkScalar width) {
     auto meas = SkContourMeasureIter(path, false).next();
@@ -436,7 +436,7 @@
 };
 DEF_SAMPLE( return new PseudoInkView(); )
 
-#include "SkOpPathEffect.h"
+#include "include/effects/SkOpPathEffect.h"
 // Show stroking options using patheffects (and pathops)
 // and why strokeandfill is a hacks
 class ManyStrokesView : public Sample {
diff --git a/samplecode/SamplePath.cpp b/samplecode/SamplePath.cpp
index 0cd31ab..2a27459 100644
--- a/samplecode/SamplePath.cpp
+++ b/samplecode/SamplePath.cpp
@@ -5,24 +5,24 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "Sample.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkColorPriv.h"
-#include "SkFont.h"
-#include "SkGradientShader.h"
-#include "SkGraphics.h"
-#include "SkParsePath.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkTime.h"
-#include "SkTypeface.h"
-#include "SkUTF.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkTime.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkParsePath.h"
+#include "samplecode/Sample.h"
+#include "src/utils/SkUTF.h"
+#include "tools/timer/AnimTimer.h"
 
-#include "SkGeometry.h"
+#include "src/core/SkGeometry.h"
 
 #include <stdlib.h>
 
@@ -207,8 +207,8 @@
 
 //////////////////////////////////////////////////////////////////////////////
 
-#include "SkCornerPathEffect.h"
-#include "SkRandom.h"
+#include "include/effects/SkCornerPathEffect.h"
+#include "include/utils/SkRandom.h"
 
 class ArcToView : public Sample {
     bool fDoFrame, fDoCorner, fDoConic;
diff --git a/samplecode/SamplePathClip.cpp b/samplecode/SamplePathClip.cpp
index 521c5a0..a6f3b3b 100644
--- a/samplecode/SamplePathClip.cpp
+++ b/samplecode/SamplePathClip.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkColorPriv.h"
-#include "SkGradientShader.h"
-#include "SkGraphics.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkTime.h"
-#include "SkTo.h"
-#include "SkTypeface.h"
-#include "SkUTF.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkTime.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/private/SkTo.h"
+#include "samplecode/Sample.h"
+#include "src/utils/SkUTF.h"
 
 #include <utility>
 
diff --git a/samplecode/SamplePathEffects.cpp b/samplecode/SamplePathEffects.cpp
index e4a7422..ded0f35 100644
--- a/samplecode/SamplePathEffects.cpp
+++ b/samplecode/SamplePathEffects.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "Sample.h"
-#include "Sk1DPathEffect.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkCornerPathEffect.h"
-#include "SkGradientShader.h"
-#include "SkPath.h"
-#include "SkPathMeasure.h"
-#include "SkRandom.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkUTF.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPathMeasure.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/effects/Sk1DPathEffect.h"
+#include "include/effects/SkCornerPathEffect.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
+#include "src/utils/SkUTF.h"
+#include "tools/timer/AnimTimer.h"
 
 #define CORNER_RADIUS   12
 
@@ -65,7 +65,7 @@
 
 ///////////////////////////////////////////////////////////
 
-#include "SkColorFilter.h"
+#include "include/core/SkColorFilter.h"
 
 class PathEffectView : public Sample {
     SkPath  fPath;
diff --git a/samplecode/SamplePathOverstroke.cpp b/samplecode/SamplePathOverstroke.cpp
index 0ed6e4b..8f7d6d6 100644
--- a/samplecode/SamplePathOverstroke.cpp
+++ b/samplecode/SamplePathOverstroke.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "samplecode/Sample.h"
 
 #include <iostream>
 #include <cmath>
diff --git a/samplecode/SamplePathText.cpp b/samplecode/SamplePathText.cpp
index 57a8268..10c7f5b 100644
--- a/samplecode/SamplePathText.cpp
+++ b/samplecode/SamplePathText.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkStrike.h"
-#include "SkStrikeCache.h"
-#include "SkTaskGroup.h"
-#include "ToolUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkStrike.h"
+#include "src/core/SkStrikeCache.h"
+#include "src/core/SkTaskGroup.h"
+#include "tools/ToolUtils.h"
+#include "tools/timer/AnimTimer.h"
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 // Static text from paths.
diff --git a/samplecode/SamplePdfFileViewer.cpp b/samplecode/SamplePdfFileViewer.cpp
index 97ab0e5..3c5423c 100644
--- a/samplecode/SamplePdfFileViewer.cpp
+++ b/samplecode/SamplePdfFileViewer.cpp
@@ -5,25 +5,25 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #ifdef SAMPLE_PDF_FILE_VIEWER
 
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkGraphics.h"
-#include "SkOSFile.h"
-#include "SkPath.h"
-#include "SkPicture.h"
-#include "SkRandom.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkUTF.h"
-#include "SkColorPriv.h"
-#include "SkColorFilter.h"
-#include "SkTime.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkTime.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkOSFile.h"
+#include "src/utils/SkUTF.h"
 #include "SkPdfRenderer.h"
 
 class PdfFileViewer : public Sample {
diff --git a/samplecode/SamplePoints.cpp b/samplecode/SamplePoints.cpp
index 1570bdd..9f2cd42 100644
--- a/samplecode/SamplePoints.cpp
+++ b/samplecode/SamplePoints.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkGraphics.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkUTF.h"
-#include "SkColorPriv.h"
-#include "SkColorFilter.h"
-#include "SkTime.h"
-#include "SkTypeface.h"
-#include "SkStream.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTime.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
+#include "src/utils/SkUTF.h"
 
 class PointsView : public Sample {
 public:
diff --git a/samplecode/SamplePolyToPoly.cpp b/samplecode/SamplePolyToPoly.cpp
index f8a90ee..ab94d03 100644
--- a/samplecode/SamplePolyToPoly.cpp
+++ b/samplecode/SamplePolyToPoly.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkFontMetrics.h"
-#include "SkGraphics.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkString.h"
-#include "SkTextUtils.h"
-#include "SkTime.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTime.h"
+#include "include/utils/SkRandom.h"
+#include "include/utils/SkTextUtils.h"
+#include "samplecode/Sample.h"
 
 class PolyToPolyView : public Sample {
 public:
diff --git a/samplecode/SampleQuadStroker.cpp b/samplecode/SampleQuadStroker.cpp
index 6122f4b..c4e08bc 100644
--- a/samplecode/SampleQuadStroker.cpp
+++ b/samplecode/SampleQuadStroker.cpp
@@ -5,32 +5,32 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkBlendMode.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkFont.h"
-#include "SkGeometry.h"
-#include "SkImageInfo.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPathMeasure.h"
-#include "SkPoint.h"
-#include "SkPointPriv.h"
-#include "SkRRect.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkShader.h"
-#include "SkString.h"
-#include "SkStroke.h"
-#include "SkSurface.h"
-#include "SkTArray.h"
-#include "SkTemplates.h"
-#include "SkTextUtils.h"
-#include "SkTypes.h"
-#include "ToolUtils.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPathMeasure.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTemplates.h"
+#include "include/utils/SkTextUtils.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkPointPriv.h"
+#include "src/core/SkStroke.h"
+#include "tools/ToolUtils.h"
 
 #include <cfloat>
 
diff --git a/samplecode/SampleRectanizer.cpp b/samplecode/SampleRectanizer.cpp
index 2e7f92f..ecf44c5 100644
--- a/samplecode/SampleRectanizer.cpp
+++ b/samplecode/SampleRectanizer.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkRandom.h"
-#include "SkPaint.h"
-#include "SkUTF.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPaint.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
+#include "src/utils/SkUTF.h"
 #if SK_SUPPORT_GPU
-#include "GrRectanizer_pow2.h"
-#include "GrRectanizer_skyline.h"
+#include "src/gpu/GrRectanizer_pow2.h"
+#include "src/gpu/GrRectanizer_skyline.h"
 
 // This slide visualizes the various GrRectanizer-derived classes behavior
 // for various input sets
diff --git a/samplecode/SampleRegion.cpp b/samplecode/SampleRegion.cpp
index 47e46af..b0cf062 100644
--- a/samplecode/SampleRegion.cpp
+++ b/samplecode/SampleRegion.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkFontMetrics.h"
-#include "SkGradientShader.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkUTF.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/effects/SkGradientShader.h"
+#include "samplecode/Sample.h"
+#include "src/utils/SkUTF.h"
 
 #include <math.h>
 
diff --git a/samplecode/SampleRepeatTile.cpp b/samplecode/SampleRepeatTile.cpp
index dfde1cf..1ba6b69 100644
--- a/samplecode/SampleRepeatTile.cpp
+++ b/samplecode/SampleRepeatTile.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkShader.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkShader.h"
+#include "samplecode/Sample.h"
 
 static void make_bitmap(SkBitmap* bm) {
     const int W = 100;
diff --git a/samplecode/SampleSG.cpp b/samplecode/SampleSG.cpp
index dfdde81..a5db8cc 100644
--- a/samplecode/SampleSG.cpp
+++ b/samplecode/SampleSG.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkFontMetrics.h"
-#include "SkPath.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkPath.h"
+#include "samplecode/Sample.h"
 
-#include "SkSGDraw.h"
-#include "SkSGGroup.h"
-#include "SkSGPaint.h"
-#include "SkSGRect.h"
-#include "SkSGScene.h"
+#include "modules/sksg/include/SkSGDraw.h"
+#include "modules/sksg/include/SkSGGroup.h"
+#include "modules/sksg/include/SkSGPaint.h"
+#include "modules/sksg/include/SkSGRect.h"
+#include "modules/sksg/include/SkSGScene.h"
 
 struct PerNodeInfo {
     // key
diff --git a/samplecode/SampleSVGFile.cpp b/samplecode/SampleSVGFile.cpp
index ba043ff..b3e3285 100644
--- a/samplecode/SampleSVGFile.cpp
+++ b/samplecode/SampleSVGFile.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #ifdef SK_XML
 
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkDOM.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkStream.h"
-#include "SkSVGDOM.h"
+#include "experimental/svg/model/SkSVGDOM.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkStream.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkOSFile.h"
+#include "src/utils/SkOSPath.h"
+#include "src/xml/SkDOM.h"
 
 namespace {
 
diff --git a/samplecode/SampleShaders.cpp b/samplecode/SampleShaders.cpp
index f861bd1..212da37 100644
--- a/samplecode/SampleShaders.cpp
+++ b/samplecode/SampleShaders.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "DecodeFile.h"
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkGraphics.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkUTF.h"
-#include "SkColorPriv.h"
-#include "SkColorFilter.h"
-#include "SkTime.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkTime.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkGradientShader.h"
+#include "samplecode/DecodeFile.h"
+#include "samplecode/Sample.h"
+#include "src/utils/SkUTF.h"
 
 static sk_sp<SkShader> make_bitmapfade(const SkBitmap& bm) {
     SkPoint pts[2];
diff --git a/samplecode/SampleShadowColor.cpp b/samplecode/SampleShadowColor.cpp
index 0536060..334452c 100644
--- a/samplecode/SampleShadowColor.cpp
+++ b/samplecode/SampleShadowColor.cpp
@@ -5,15 +5,15 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "Resources.h"
+#include "samplecode/Sample.h"
+#include "tools/Resources.h"
 
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkImage.h"
-#include "SkPath.h"
-#include "SkPoint3.h"
-#include "SkShadowUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint3.h"
+#include "include/utils/SkShadowUtils.h"
 
 ////////////////////////////////////////////////////////////////////////////
 // Sample to demonstrate tonal color shadows
diff --git a/samplecode/SampleShadowReference.cpp b/samplecode/SampleShadowReference.cpp
index 5e60b74..e629af8 100644
--- a/samplecode/SampleShadowReference.cpp
+++ b/samplecode/SampleShadowReference.cpp
@@ -5,13 +5,13 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkImage.h"
-#include "SkPath.h"
-#include "SkPoint3.h"
-#include "SkShadowUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint3.h"
+#include "include/utils/SkShadowUtils.h"
+#include "samplecode/Sample.h"
+#include "tools/Resources.h"
 
 ////////////////////////////////////////////////////////////////////////////
 // Sample to compare the Material Design shadow reference to our results
diff --git a/samplecode/SampleShadowUtils.cpp b/samplecode/SampleShadowUtils.cpp
index c7ab6de..d43a7e3 100644
--- a/samplecode/SampleShadowUtils.cpp
+++ b/samplecode/SampleShadowUtils.cpp
@@ -5,19 +5,19 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "AnimTimer.h"
-#include "Sample.h"
-#include "SkBlurMask.h"
-#include "SkBlurMaskFilter.h"
-#include "SkCamera.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkPath.h"
-#include "SkPathOps.h"
-#include "SkPoint3.h"
-#include "SkShadowUtils.h"
-#include "SkUTF.h"
-#include "ToolUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint3.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "include/pathops/SkPathOps.h"
+#include "include/utils/SkCamera.h"
+#include "include/utils/SkShadowUtils.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkBlurMask.h"
+#include "src/utils/SkUTF.h"
+#include "tools/ToolUtils.h"
+#include "tools/timer/AnimTimer.h"
 
 ////////////////////////////////////////////////////////////////////////////
 
diff --git a/samplecode/SampleShip.cpp b/samplecode/SampleShip.cpp
index 7e3cbd4..9b96e67 100644
--- a/samplecode/SampleShip.cpp
+++ b/samplecode/SampleShip.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "Resources.h"
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkRSXform.h"
-#include "SkSurface.h"
-#include "Timer.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkRSXform.h"
+#include "include/core/SkSurface.h"
+#include "samplecode/Sample.h"
+#include "tools/Resources.h"
+#include "tools/timer/AnimTimer.h"
+#include "tools/timer/Timer.h"
 
 #include <stdio.h>
 
diff --git a/samplecode/SampleSlides.cpp b/samplecode/SampleSlides.cpp
index 2ede187..8db5116 100644
--- a/samplecode/SampleSlides.cpp
+++ b/samplecode/SampleSlides.cpp
@@ -4,17 +4,17 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "SkBlurMask.h"
-#include "SkBlurMaskFilter.h"
-#include "SkCanvas.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
-#include "SkGradientShader.h"
-#include "SkPaint.h"
-#include "SkVertices.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkVertices.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkBlurMask.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 
-#include "ToolUtils.h"
+#include "tools/ToolUtils.h"
 
 #define BG_COLOR    0xFFDDDDDD
 
@@ -22,11 +22,11 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "Sk1DPathEffect.h"
-#include "Sk2DPathEffect.h"
-#include "SkCornerPathEffect.h"
-#include "SkDashPathEffect.h"
-#include "SkDiscretePathEffect.h"
+#include "include/effects/Sk1DPathEffect.h"
+#include "include/effects/Sk2DPathEffect.h"
+#include "include/effects/SkCornerPathEffect.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "include/effects/SkDiscretePathEffect.h"
 
 static void compose_pe(SkPaint* paint) {
     SkPathEffect* pe = paint->getPathEffect();
@@ -150,7 +150,7 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkGradientShader.h"
+#include "include/effects/SkGradientShader.h"
 
 struct GradData {
     int             fCount;
@@ -236,10 +236,10 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "DecodeFile.h"
-#include "SkOSFile.h"
-#include "SkRandom.h"
-#include "SkStream.h"
+#include "include/core/SkStream.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/DecodeFile.h"
+#include "src/core/SkOSFile.h"
 
 static sk_sp<SkShader> make_shader0(SkIPoint* size) {
     SkBitmap    bm;
@@ -390,11 +390,11 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkTypeface.h"
+#include "include/core/SkTypeface.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkImageEncoder.h"
+#include "include/core/SkImageEncoder.h"
 
 static const SlideProc gProc[] = {
     patheffect_slide,
diff --git a/samplecode/SampleStringArt.cpp b/samplecode/SampleStringArt.cpp
index 70a8dd1..6062e90 100644
--- a/samplecode/SampleStringArt.cpp
+++ b/samplecode/SampleStringArt.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "samplecode/Sample.h"
 
 // Reproduces https://code.google.com/p/chromium/issues/detail?id=279014
 
diff --git a/samplecode/SampleStrokePath.cpp b/samplecode/SampleStrokePath.cpp
index 3eb6af1..bdebc61 100644
--- a/samplecode/SampleStrokePath.cpp
+++ b/samplecode/SampleStrokePath.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
+#include "samplecode/Sample.h"
 
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkMaskFilter.h"
-#include "SkParsePath.h"
-#include "SkPath.h"
-#include "SkRandom.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPath.h"
+#include "include/utils/SkParsePath.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkBlurMask.h"
 
 
 static void test_huge_stroke(SkCanvas* canvas) {
diff --git a/samplecode/SampleStrokeRect.cpp b/samplecode/SampleStrokeRect.cpp
index d80afe7..17f1b8b 100644
--- a/samplecode/SampleStrokeRect.cpp
+++ b/samplecode/SampleStrokeRect.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "samplecode/Sample.h"
 
 class StrokeRectSample : public Sample {
 public:
diff --git a/samplecode/SampleSubpixelTranslate.cpp b/samplecode/SampleSubpixelTranslate.cpp
index 16efda2..a48a9ff 100644
--- a/samplecode/SampleSubpixelTranslate.cpp
+++ b/samplecode/SampleSubpixelTranslate.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
+#include "samplecode/Sample.h"
 
-#include "DecodeFile.h"
-#include "Resources.h"
-#include "SkBlurMaskFilter.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkFont.h"
-#include "SkRandom.h"
-#include "SkStream.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkStream.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/DecodeFile.h"
+#include "tools/Resources.h"
 
 // Intended to exercise pixel snapping observed with scaled images (and
 // with non-scaled images, but for a different reason):  Bug 1145
diff --git a/samplecode/SampleTextBox.cpp b/samplecode/SampleTextBox.cpp
index b588c46c..014ecb3 100644
--- a/samplecode/SampleTextBox.cpp
+++ b/samplecode/SampleTextBox.cpp
@@ -4,26 +4,26 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
+#include "samplecode/Sample.h"
 
-#include "SkBlurMaskFilter.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkColorPriv.h"
-#include "SkColorShader.h"
-#include "SkGradientShader.h"
-#include "SkGraphics.h"
-#include "SkOSFile.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkShaper.h"
-#include "SkStream.h"
-#include "SkTextBlob.h"
-#include "SkTime.h"
-#include "SkTypeface.h"
-#include "SkUTF.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTime.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkRandom.h"
+#include "modules/skshaper/include/SkShaper.h"
+#include "src/core/SkOSFile.h"
+#include "src/shaders/SkColorShader.h"
+#include "src/utils/SkUTF.h"
 
 static const char gText[] =
     "When in the Course of human events it becomes necessary for one people "
diff --git a/samplecode/SampleTextEffects.cpp b/samplecode/SampleTextEffects.cpp
index 43b4827..4893936 100644
--- a/samplecode/SampleTextEffects.cpp
+++ b/samplecode/SampleTextEffects.cpp
@@ -4,25 +4,25 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
-#include "SkGradientShader.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkUTF.h"
-#include "SkColorPriv.h"
-#include "SkColorFilter.h"
-#include "SkStrokeRec.h"
-#include "SkTextUtils.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkTextUtils.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/utils/SkUTF.h"
 
-#include "SkGradientShader.h"
-#include "SkBlurMaskFilter.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "include/effects/SkGradientShader.h"
 
-#include "Sk2DPathEffect.h"
+#include "include/effects/Sk2DPathEffect.h"
 
 class Dot2DPathEffect : public Sk2DPathEffect {
 public:
diff --git a/samplecode/SampleTextureDomain.cpp b/samplecode/SampleTextureDomain.cpp
index 3de6cee..6807dc5 100644
--- a/samplecode/SampleTextureDomain.cpp
+++ b/samplecode/SampleTextureDomain.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkBlurMask.h"
-#include "SkBlurMaskFilter.h"
-#include "SkCanvas.h"
-#include "SkSurface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkBlurMask.h"
 
 static SkBitmap make_bitmap() {
     SkBitmap bm;
diff --git a/samplecode/SampleThinAA.cpp b/samplecode/SampleThinAA.cpp
index d3c7e38..febb4c5 100644
--- a/samplecode/SampleThinAA.cpp
+++ b/samplecode/SampleThinAA.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
+#include "samplecode/Sample.h"
 
-#include "AnimTimer.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkFont.h"
-#include "SkImage.h"
-#include "SkPath.h"
-#include "SkSurface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkSurface.h"
+#include "tools/timer/AnimTimer.h"
 
 namespace skiagm {
 
diff --git a/samplecode/SampleTiling.cpp b/samplecode/SampleTiling.cpp
index 3c219a2..9812666 100644
--- a/samplecode/SampleTiling.cpp
+++ b/samplecode/SampleTiling.cpp
@@ -5,25 +5,25 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPictureRecorder.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkUTF.h"
-#include "SkColorPriv.h"
-#include "SkColorFilter.h"
-#include "SkPicture.h"
-#include "SkTextUtils.h"
-#include "SkTypeface.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkTypeface.h"
+#include "include/utils/SkTextUtils.h"
+#include "samplecode/Sample.h"
+#include "src/utils/SkUTF.h"
 
 // effects
-#include "SkGradientShader.h"
-#include "SkBlurMask.h"
-#include "SkBlurDrawLooper.h"
+#include "include/effects/SkBlurDrawLooper.h"
+#include "include/effects/SkGradientShader.h"
+#include "src/core/SkBlurMask.h"
 
 static void makebm(SkBitmap* bm, SkColorType ct, int w, int h) {
     bm->allocPixels(SkImageInfo::Make(w, h, ct, kPremul_SkAlphaType));
diff --git a/samplecode/SampleUnpremul.cpp b/samplecode/SampleUnpremul.cpp
index e7278ff..5f191da 100644
--- a/samplecode/SampleUnpremul.cpp
+++ b/samplecode/SampleUnpremul.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "DecodeFile.h"
-#include "Resources.h"
-#include "Sample.h"
-#include "SkBlurDrawLooper.h"
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkTypes.h"
-#include "SkUTF.h"
-#include "ToolUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "include/effects/SkBlurDrawLooper.h"
+#include "samplecode/DecodeFile.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkBlurMask.h"
+#include "src/core/SkOSFile.h"
+#include "src/utils/SkOSPath.h"
+#include "src/utils/SkUTF.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
 /**
  *  Interprets c as an unpremultiplied color, and returns the
diff --git a/samplecode/SampleVertices.cpp b/samplecode/SampleVertices.cpp
index a6c5ab3..f3c90e2 100644
--- a/samplecode/SampleVertices.cpp
+++ b/samplecode/SampleVertices.cpp
@@ -4,24 +4,24 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkGraphics.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkUTF.h"
-#include "SkColorPriv.h"
-#include "SkColorFilter.h"
-#include "SkTime.h"
-#include "SkTypeface.h"
-#include "SkVertices.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkTime.h"
+#include "include/core/SkTypeface.h"
+#include "include/core/SkVertices.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkRandom.h"
+#include "samplecode/Sample.h"
+#include "src/utils/SkUTF.h"
 
-#include "SkOSFile.h"
-#include "SkStream.h"
+#include "include/core/SkStream.h"
+#include "src/core/SkOSFile.h"
 
 static sk_sp<SkShader> make_shader0(SkIPoint* size) {
     SkBitmap    bm;
diff --git a/samplecode/SampleWritePixels.cpp b/samplecode/SampleWritePixels.cpp
index eaf14b4..298e58a 100644
--- a/samplecode/SampleWritePixels.cpp
+++ b/samplecode/SampleWritePixels.cpp
@@ -4,15 +4,15 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Sample.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkCornerPathEffect.h"
-#include "SkGradientShader.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkUTF.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/effects/SkCornerPathEffect.h"
+#include "include/effects/SkGradientShader.h"
+#include "samplecode/Sample.h"
+#include "src/utils/SkUTF.h"
 
 static void create_bitmap(SkBitmap* bitmap) {
     const int W = 100;
diff --git a/samplecode/SampleXfer.cpp b/samplecode/SampleXfer.cpp
index 7f05e01..81534f7 100644
--- a/samplecode/SampleXfer.cpp
+++ b/samplecode/SampleXfer.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "AnimTimer.h"
-#include "Sample.h"
-#include "SkCanvas.h"
-#include "SkDrawable.h"
-#include "SkGradientShader.h"
-#include "SkPath.h"
-#include "SkRSXform.h"
-#include "SkRandom.h"
-#include "SkString.h"
-#include "SkSurface.h"
-#include "SkTextUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkDrawable.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRSXform.h"
+#include "include/core/SkString.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkRandom.h"
+#include "include/utils/SkTextUtils.h"
+#include "samplecode/Sample.h"
+#include "tools/timer/AnimTimer.h"
 
 const SkBlendMode gModes[] = {
     SkBlendMode::kSrcOver,
diff --git a/samplecode/SampleXfermodesBlur.cpp b/samplecode/SampleXfermodesBlur.cpp
index 079ba3c..5b89474 100644
--- a/samplecode/SampleXfermodesBlur.cpp
+++ b/samplecode/SampleXfermodesBlur.cpp
@@ -5,28 +5,28 @@
  * found in the LICENSE file.
  */
 
-#include "Sample.h"
-#include "SkBitmap.h"
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkCornerPathEffect.h"
-#include "SkFont.h"
-#include "SkGradientShader.h"
-#include "SkGraphics.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkRegion.h"
-#include "SkShader.h"
-#include "SkUTF.h"
-#include "SkColorPriv.h"
-#include "SkColorFilter.h"
-#include "SkTextUtils.h"
-#include "SkTime.h"
-#include "SkTypeface.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkTime.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkCornerPathEffect.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/utils/SkRandom.h"
+#include "include/utils/SkTextUtils.h"
+#include "samplecode/Sample.h"
+#include "src/core/SkBlurMask.h"
+#include "src/utils/SkUTF.h"
 
-#include "SkStream.h"
-#include "SkColorPriv.h"
-#include "SkBlurMaskFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkStream.h"
+#include "include/effects/SkBlurMaskFilter.h"
 
 static void setNamedTypeface(SkFont* font, const char name[]) {
     font->setTypeface(SkTypeface::MakeFromName(name, SkFontStyle()));
diff --git a/samplecode/vertexdump.cpp b/samplecode/vertexdump.cpp
index 69fd967..cc43608 100644
--- a/samplecode/vertexdump.cpp
+++ b/samplecode/vertexdump.cpp
@@ -4,7 +4,7 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkPoint.h"
+#include "include/core/SkPoint.h"
 
 void setup_vertexbug(SkPoint verts[], SkPoint texs[], uint16_t index[]);
 
diff --git a/src/android/SkAndroidFrameworkUtils.cpp b/src/android/SkAndroidFrameworkUtils.cpp
index a13e8a2..d5d5333 100644
--- a/src/android/SkAndroidFrameworkUtils.cpp
+++ b/src/android/SkAndroidFrameworkUtils.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "SkAndroidFrameworkUtils.h"
-#include "SkCanvas.h"
-#include "SkDevice.h"
-#include "SkPaintFilterCanvas.h"
-#include "SkSurface_Base.h"
+#include "include/android/SkAndroidFrameworkUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/utils/SkPaintFilterCanvas.h"
+#include "src/core/SkDevice.h"
+#include "src/image/SkSurface_Base.h"
 
 #if SK_SUPPORT_GPU
-#include "GrStyle.h"
-#include "GrClip.h"
-#include "GrRenderTargetContext.h"
-#include "GrUserStencilSettings.h"
-#include "effects/GrDisableColorXP.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrStyle.h"
+#include "src/gpu/GrUserStencilSettings.h"
+#include "src/gpu/effects/GrDisableColorXP.h"
 #endif //SK_SUPPORT_GPU
 
 #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
diff --git a/src/android/SkAnimatedImage.cpp b/src/android/SkAnimatedImage.cpp
index c2104c8..cf0d889 100644
--- a/src/android/SkAnimatedImage.cpp
+++ b/src/android/SkAnimatedImage.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkAndroidCodec.h"
-#include "SkAnimatedImage.h"
-#include "SkCanvas.h"
-#include "SkCodec.h"
-#include "SkCodecPriv.h"
-#include "SkImagePriv.h"
-#include "SkPicture.h"
-#include "SkPictureRecorder.h"
-#include "SkPixelRef.h"
+#include "include/android/SkAnimatedImage.h"
+#include "include/codec/SkAndroidCodec.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkPixelRef.h"
+#include "src/codec/SkCodecPriv.h"
+#include "src/core/SkImagePriv.h"
 
 #include <utility>
 
diff --git a/src/android/SkBitmapRegionCodec.cpp b/src/android/SkBitmapRegionCodec.cpp
index f3e4b82..f74f9db 100644
--- a/src/android/SkBitmapRegionCodec.cpp
+++ b/src/android/SkBitmapRegionCodec.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkAndroidCodec.h"
-#include "SkBitmapRegionCodec.h"
-#include "SkBitmapRegionDecoderPriv.h"
-#include "SkCodecPriv.h"
+#include "include/codec/SkAndroidCodec.h"
+#include "src/android/SkBitmapRegionCodec.h"
+#include "src/android/SkBitmapRegionDecoderPriv.h"
+#include "src/codec/SkCodecPriv.h"
 
 SkBitmapRegionCodec::SkBitmapRegionCodec(SkAndroidCodec* codec)
     : INHERITED(codec->getInfo().width(), codec->getInfo().height())
diff --git a/src/android/SkBitmapRegionCodec.h b/src/android/SkBitmapRegionCodec.h
index 94194c0..2185951 100644
--- a/src/android/SkBitmapRegionCodec.h
+++ b/src/android/SkBitmapRegionCodec.h
@@ -8,9 +8,9 @@
 #ifndef SkBitmapRegionCodec_DEFINED
 #define SkBitmapRegionCodec_DEFINED
 
-#include "SkBitmap.h"
-#include "SkBitmapRegionDecoder.h"
-#include "SkAndroidCodec.h"
+#include "include/android/SkBitmapRegionDecoder.h"
+#include "include/codec/SkAndroidCodec.h"
+#include "include/core/SkBitmap.h"
 
 /*
  * This class implements SkBitmapRegionDecoder using an SkAndroidCodec.
diff --git a/src/android/SkBitmapRegionDecoder.cpp b/src/android/SkBitmapRegionDecoder.cpp
index 72363f5..328daa3 100644
--- a/src/android/SkBitmapRegionDecoder.cpp
+++ b/src/android/SkBitmapRegionDecoder.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmapRegionCodec.h"
-#include "SkBitmapRegionDecoder.h"
-#include "SkAndroidCodec.h"
-#include "SkCodec.h"
-#include "SkCodecPriv.h"
+#include "include/android/SkBitmapRegionDecoder.h"
+#include "include/codec/SkAndroidCodec.h"
+#include "include/codec/SkCodec.h"
+#include "src/android/SkBitmapRegionCodec.h"
+#include "src/codec/SkCodecPriv.h"
 
 SkBitmapRegionDecoder* SkBitmapRegionDecoder::Create(
         sk_sp<SkData> data, Strategy strategy) {
diff --git a/src/android/SkBitmapRegionDecoderPriv.h b/src/android/SkBitmapRegionDecoderPriv.h
index db7bd42..5f1613a 100644
--- a/src/android/SkBitmapRegionDecoderPriv.h
+++ b/src/android/SkBitmapRegionDecoderPriv.h
@@ -8,7 +8,7 @@
 #ifndef SkBitmapRegionDecoderPriv_DEFINED
 #define SkBitmapRegionDecoderPriv_DEFINED
 
-#include "SkRect.h"
+#include "include/core/SkRect.h"
 
 enum SubsetType {
     kFullyInside_SubsetType,
diff --git a/src/atlastext/SkAtlasTextContext.cpp b/src/atlastext/SkAtlasTextContext.cpp
index 85e7911..91e7713 100644
--- a/src/atlastext/SkAtlasTextContext.cpp
+++ b/src/atlastext/SkAtlasTextContext.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkAtlasTextContext.h"
-#include "SkAtlasTextRenderer.h"
-#include "SkInternalAtlasTextContext.h"
+#include "include/atlastext/SkAtlasTextContext.h"
+#include "include/atlastext/SkAtlasTextRenderer.h"
+#include "src/atlastext/SkInternalAtlasTextContext.h"
 
 sk_sp<SkAtlasTextContext> SkAtlasTextContext::Make(sk_sp<SkAtlasTextRenderer> renderer) {
     return sk_sp<SkAtlasTextContext>(new SkAtlasTextContext(std::move(renderer)));
diff --git a/src/atlastext/SkAtlasTextTarget.cpp b/src/atlastext/SkAtlasTextTarget.cpp
index 2a84d40..e6f1d4e 100644
--- a/src/atlastext/SkAtlasTextTarget.cpp
+++ b/src/atlastext/SkAtlasTextTarget.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "SkAtlasTextTarget.h"
+#include "include/atlastext/SkAtlasTextTarget.h"
 
-#include "GrClip.h"
-#include "GrContextPriv.h"
-#include "GrDrawingManager.h"
-#include "GrMemoryPool.h"
-#include "SkAtlasTextContext.h"
-#include "SkAtlasTextFont.h"
-#include "SkAtlasTextRenderer.h"
-#include "SkGlyphRunPainter.h"
-#include "SkGr.h"
-#include "SkInternalAtlasTextContext.h"
-#include "ops/GrAtlasTextOp.h"
-#include "text/GrTextContext.h"
+#include "include/atlastext/SkAtlasTextContext.h"
+#include "include/atlastext/SkAtlasTextFont.h"
+#include "include/atlastext/SkAtlasTextRenderer.h"
+#include "src/atlastext/SkInternalAtlasTextContext.h"
+#include "src/core/SkGlyphRunPainter.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrDrawingManager.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/ops/GrAtlasTextOp.h"
+#include "src/gpu/text/GrTextContext.h"
 
 static constexpr int kMaxBatchLookBack = 10;
 
diff --git a/src/atlastext/SkInternalAtlasTextContext.cpp b/src/atlastext/SkInternalAtlasTextContext.cpp
index 9be17a7..725be72 100644
--- a/src/atlastext/SkInternalAtlasTextContext.cpp
+++ b/src/atlastext/SkInternalAtlasTextContext.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkInternalAtlasTextContext.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "SkAtlasTextContext.h"
-#include "SkAtlasTextRenderer.h"
-#include "text/GrStrikeCache.h"
+#include "include/atlastext/SkAtlasTextContext.h"
+#include "include/atlastext/SkAtlasTextRenderer.h"
+#include "include/gpu/GrContext.h"
+#include "src/atlastext/SkInternalAtlasTextContext.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/text/GrStrikeCache.h"
 
 SkAtlasTextRenderer* SkGetAtlasTextRendererFromInternalContext(
         class SkInternalAtlasTextContext& internal) {
diff --git a/src/atlastext/SkInternalAtlasTextContext.h b/src/atlastext/SkInternalAtlasTextContext.h
index a4e2e29..a3381b9 100644
--- a/src/atlastext/SkInternalAtlasTextContext.h
+++ b/src/atlastext/SkInternalAtlasTextContext.h
@@ -8,10 +8,10 @@
 #ifndef SkInternalAtlasTextContext_DEFINED
 #define SkInternalAtlasTextContext_DEFINED
 
-#include "GrDeferredUpload.h"
-#include "SkArenaAlloc.h"
-#include "SkArenaAllocList.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkArenaAllocList.h"
+#include "src/gpu/GrDeferredUpload.h"
 
 class GrContext;
 class GrStrikeCache;
diff --git a/src/c/sk_effects.cpp b/src/c/sk_effects.cpp
index b18f80f..7e226cd 100644
--- a/src/c/sk_effects.cpp
+++ b/src/c/sk_effects.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "sk_types_priv.h"
-#include "SkMatrix.h"
+#include "include/core/SkMatrix.h"
+#include "src/c/sk_types_priv.h"
 
 static void from_c_matrix(const sk_matrix_t* cmatrix, SkMatrix* matrix) {
     matrix->setAll(cmatrix->mat[0], cmatrix->mat[1], cmatrix->mat[2],
@@ -14,8 +14,8 @@
                    cmatrix->mat[6], cmatrix->mat[7], cmatrix->mat[8]);
 }
 
-#include "../../include/effects/SkGradientShader.h"
-#include "sk_shader.h"
+#include "include/c/sk_shader.h"
+#include "include/effects/SkGradientShader.h"
 
 const struct {
     sk_shader_tilemode_t    fC;
@@ -144,8 +144,8 @@
 
 ///////////////////////////////////////////////////////////////////////////////////////////
 
-#include "sk_maskfilter.h"
-#include "SkMaskFilter.h"
+#include "include/c/sk_maskfilter.h"
+#include "include/core/SkMaskFilter.h"
 
 const struct {
     sk_blurstyle_t  fC;
diff --git a/src/c/sk_imageinfo.cpp b/src/c/sk_imageinfo.cpp
index 992fc36..95f5deb 100644
--- a/src/c/sk_imageinfo.cpp
+++ b/src/c/sk_imageinfo.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkImageInfo.h"
-#include "SkColorSpace.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkImageInfo.h"
 
-#include "sk_imageinfo.h"
-#include "sk_colorspace.h"
+#include "include/c/sk_colorspace.h"
+#include "include/c/sk_imageinfo.h"
 
 const struct {
     sk_colortype_t  fC;
diff --git a/src/c/sk_paint.cpp b/src/c/sk_paint.cpp
index 126170c..0236270 100644
--- a/src/c/sk_paint.cpp
+++ b/src/c/sk_paint.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlendMode.h"
-#include "SkMaskFilter.h"
-#include "SkPaint.h"
-#include "SkShader.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
 
-#include "sk_paint.h"
-#include "sk_types_priv.h"
+#include "include/c/sk_paint.h"
+#include "src/c/sk_types_priv.h"
 
 #define MAKE_FROM_TO_NAME(FROM)     g_ ## FROM ## _map
 
@@ -36,12 +36,12 @@
 #define CType           sk_stroke_cap_t
 #define SKType          SkPaint::Cap
 #define CTypeSkTypeMap  MAKE_FROM_TO_NAME(sk_stroke_cap_t)
-#include "sk_c_from_to.h"
+#include "src/c/sk_c_from_to.h"
 
 #define CType           sk_stroke_join_t
 #define SKType          SkPaint::Join
 #define CTypeSkTypeMap  MAKE_FROM_TO_NAME(sk_stroke_join_t)
-#include "sk_c_from_to.h"
+#include "src/c/sk_c_from_to.h"
 
 //////////////////////////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/c/sk_surface.cpp b/src/c/sk_surface.cpp
index 36894e0..4d73ecf 100644
--- a/src/c/sk_surface.cpp
+++ b/src/c/sk_surface.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkData.h"
-#include "SkImage.h"
-#include "SkMaskFilter.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPictureRecorder.h"
-#include "SkSurface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkSurface.h"
 
-#include "sk_canvas.h"
-#include "sk_data.h"
-#include "sk_image.h"
-#include "sk_paint.h"
-#include "sk_path.h"
-#include "sk_surface.h"
-#include "sk_types_priv.h"
+#include "include/c/sk_canvas.h"
+#include "include/c/sk_data.h"
+#include "include/c/sk_image.h"
+#include "include/c/sk_paint.h"
+#include "include/c/sk_path.h"
+#include "include/c/sk_surface.h"
+#include "src/c/sk_types_priv.h"
 
 const struct {
     sk_pixelgeometry_t fC;
diff --git a/src/c/sk_types_priv.h b/src/c/sk_types_priv.h
index 92089d7..ea62646 100644
--- a/src/c/sk_types_priv.h
+++ b/src/c/sk_types_priv.h
@@ -8,7 +8,7 @@
 #ifndef sk_types_priv_DEFINED
 #define sk_types_priv_DEFINED
 
-#include "sk_types.h"
+#include "include/c/sk_types.h"
 
 class SkMaskFilter;
 class SkPaint;
diff --git a/src/codec/SkAndroidCodec.cpp b/src/codec/SkAndroidCodec.cpp
index 443d899..b90dbe7 100644
--- a/src/codec/SkAndroidCodec.cpp
+++ b/src/codec/SkAndroidCodec.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkAndroidCodec.h"
-#include "SkAndroidCodecAdapter.h"
-#include "SkCodec.h"
-#include "SkCodecPriv.h"
-#include "SkMakeUnique.h"
-#include "SkPixmap.h"
-#include "SkPixmapPriv.h"
-#include "SkSampledCodec.h"
+#include "include/codec/SkAndroidCodec.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkPixmap.h"
+#include "src/codec/SkAndroidCodecAdapter.h"
+#include "src/codec/SkCodecPriv.h"
+#include "src/codec/SkSampledCodec.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkPixmapPriv.h"
 
 static bool is_valid_sample_size(int sampleSize) {
     // FIXME: As Leon has mentioned elsewhere, surely there is also a maximum sampleSize?
diff --git a/src/codec/SkAndroidCodecAdapter.cpp b/src/codec/SkAndroidCodecAdapter.cpp
index 7f882e1..5551136 100644
--- a/src/codec/SkAndroidCodecAdapter.cpp
+++ b/src/codec/SkAndroidCodecAdapter.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkAndroidCodecAdapter.h"
-#include "SkCodecPriv.h"
+#include "src/codec/SkAndroidCodecAdapter.h"
+#include "src/codec/SkCodecPriv.h"
 
 SkAndroidCodecAdapter::SkAndroidCodecAdapter(SkCodec* codec, ExifOrientationBehavior behavior)
     : INHERITED(codec, behavior)
diff --git a/src/codec/SkAndroidCodecAdapter.h b/src/codec/SkAndroidCodecAdapter.h
index ac494c9..7a5d093 100644
--- a/src/codec/SkAndroidCodecAdapter.h
+++ b/src/codec/SkAndroidCodecAdapter.h
@@ -7,7 +7,7 @@
 #ifndef SkAndroidCodecAdapter_DEFINED
 #define SkAndroidCodecAdapter_DEFINED
 
-#include "SkAndroidCodec.h"
+#include "include/codec/SkAndroidCodec.h"
 
 /**
  *  This class wraps SkCodec to implement the functionality of SkAndroidCodec.
diff --git a/src/codec/SkBmpBaseCodec.cpp b/src/codec/SkBmpBaseCodec.cpp
index 2b0ed1f..32a1d37 100644
--- a/src/codec/SkBmpBaseCodec.cpp
+++ b/src/codec/SkBmpBaseCodec.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkBmpBaseCodec.h"
-#include "../private/SkMalloc.h"
+#include "include/private/SkMalloc.h"
+#include "src/codec/SkBmpBaseCodec.h"
 
 SkBmpBaseCodec::~SkBmpBaseCodec() {}
 
diff --git a/src/codec/SkBmpBaseCodec.h b/src/codec/SkBmpBaseCodec.h
index 8a076a5..1c57ce6 100644
--- a/src/codec/SkBmpBaseCodec.h
+++ b/src/codec/SkBmpBaseCodec.h
@@ -7,8 +7,8 @@
 #ifndef SkBmpBaseCodec_DEFINED
 #define SkBmpBaseCodec_DEFINED
 
-#include "SkBmpCodec.h"
-#include "SkTemplates.h"
+#include "include/private/SkTemplates.h"
+#include "src/codec/SkBmpCodec.h"
 
 /*
  * Common base class for SkBmpStandardCodec and SkBmpMaskCodec.
diff --git a/src/codec/SkBmpCodec.cpp b/src/codec/SkBmpCodec.cpp
index b09d39e..615c8a4 100644
--- a/src/codec/SkBmpCodec.cpp
+++ b/src/codec/SkBmpCodec.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkBmpCodec.h"
-#include "SkBmpMaskCodec.h"
-#include "SkBmpRLECodec.h"
-#include "SkBmpStandardCodec.h"
-#include "SkCodecPriv.h"
-#include "SkColorData.h"
-#include "SkStream.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkColorData.h"
+#include "src/codec/SkBmpCodec.h"
+#include "src/codec/SkBmpMaskCodec.h"
+#include "src/codec/SkBmpRLECodec.h"
+#include "src/codec/SkBmpStandardCodec.h"
+#include "src/codec/SkCodecPriv.h"
 
 /*
  * Defines the version and type of the second bitmap header
diff --git a/src/codec/SkBmpCodec.h b/src/codec/SkBmpCodec.h
index eff1891..97a15b6 100644
--- a/src/codec/SkBmpCodec.h
+++ b/src/codec/SkBmpCodec.h
@@ -7,13 +7,13 @@
 #ifndef SkBmpCodec_DEFINED
 #define SkBmpCodec_DEFINED
 
-#include "SkCodec.h"
-#include "SkColorSpace.h"
-#include "SkColorTable.h"
-#include "SkImageInfo.h"
-#include "SkStream.h"
-#include "SkSwizzler.h"
-#include "SkTypes.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypes.h"
+#include "src/codec/SkColorTable.h"
+#include "src/codec/SkSwizzler.h"
 
 /*
  * This class enables code sharing between its bmp codec subclasses.  The
diff --git a/src/codec/SkBmpMaskCodec.cpp b/src/codec/SkBmpMaskCodec.cpp
index 055954c..874056a 100644
--- a/src/codec/SkBmpMaskCodec.cpp
+++ b/src/codec/SkBmpMaskCodec.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkBmpMaskCodec.h"
-#include "SkCodecPriv.h"
-#include "SkColorData.h"
+#include "include/private/SkColorData.h"
+#include "src/codec/SkBmpMaskCodec.h"
+#include "src/codec/SkCodecPriv.h"
 
 /*
  * Creates an instance of the decoder
diff --git a/src/codec/SkBmpMaskCodec.h b/src/codec/SkBmpMaskCodec.h
index 370cddb..eaef50d 100644
--- a/src/codec/SkBmpMaskCodec.h
+++ b/src/codec/SkBmpMaskCodec.h
@@ -8,10 +8,10 @@
 #ifndef SkBmpMaskCodec_DEFINED
 #define SkBmpMaskCodec_DEFINED
 
-#include "SkBmpBaseCodec.h"
-#include "SkImageInfo.h"
-#include "SkMaskSwizzler.h"
-#include "SkTypes.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkTypes.h"
+#include "src/codec/SkBmpBaseCodec.h"
+#include "src/codec/SkMaskSwizzler.h"
 
 /*
  * This class implements the decoding for bmp images using bit masks
diff --git a/src/codec/SkBmpRLECodec.cpp b/src/codec/SkBmpRLECodec.cpp
index 6690629..fc5d298 100644
--- a/src/codec/SkBmpRLECodec.cpp
+++ b/src/codec/SkBmpRLECodec.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkBmpRLECodec.h"
-#include "SkCodecPriv.h"
-#include "SkColorData.h"
-#include "SkStream.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkColorData.h"
+#include "src/codec/SkBmpRLECodec.h"
+#include "src/codec/SkCodecPriv.h"
 
 /*
  * Creates an instance of the decoder
diff --git a/src/codec/SkBmpRLECodec.h b/src/codec/SkBmpRLECodec.h
index 4ed12d0..80acf42 100644
--- a/src/codec/SkBmpRLECodec.h
+++ b/src/codec/SkBmpRLECodec.h
@@ -7,11 +7,11 @@
 #ifndef SkBmpRLECodec_DEFINED
 #define SkBmpRLECodec_DEFINED
 
-#include "SkBmpCodec.h"
-#include "SkColorTable.h"
-#include "SkImageInfo.h"
-#include "SkSampler.h"
-#include "SkTypes.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkTypes.h"
+#include "src/codec/SkBmpCodec.h"
+#include "src/codec/SkColorTable.h"
+#include "src/codec/SkSampler.h"
 
 /*
  * This class implements the decoding for bmp images that use an RLE encoding
diff --git a/src/codec/SkBmpStandardCodec.cpp b/src/codec/SkBmpStandardCodec.cpp
index 1f7593e..e60100a 100644
--- a/src/codec/SkBmpStandardCodec.cpp
+++ b/src/codec/SkBmpStandardCodec.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkBmpStandardCodec.h"
-#include "SkCodecPriv.h"
-#include "SkColorData.h"
-#include "SkMathPriv.h"
-#include "SkStream.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkColorData.h"
+#include "src/codec/SkBmpStandardCodec.h"
+#include "src/codec/SkCodecPriv.h"
+#include "src/core/SkMathPriv.h"
 
 /*
  * Creates an instance of the decoder
diff --git a/src/codec/SkBmpStandardCodec.h b/src/codec/SkBmpStandardCodec.h
index 84a1299..966330e 100644
--- a/src/codec/SkBmpStandardCodec.h
+++ b/src/codec/SkBmpStandardCodec.h
@@ -7,11 +7,11 @@
 #ifndef SkBmpStandardCodec_DEFINED
 #define SkBmpStandardCodec_DEFINED
 
-#include "SkBmpBaseCodec.h"
-#include "SkColorTable.h"
-#include "SkImageInfo.h"
-#include "SkSwizzler.h"
-#include "SkTypes.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkTypes.h"
+#include "src/codec/SkBmpBaseCodec.h"
+#include "src/codec/SkColorTable.h"
+#include "src/codec/SkSwizzler.h"
 
 /*
  * This class implements the decoding for bmp images that use "standard" modes,
diff --git a/src/codec/SkCodec.cpp b/src/codec/SkCodec.cpp
index 1eecc1a..a09af36 100644
--- a/src/codec/SkCodec.cpp
+++ b/src/codec/SkCodec.cpp
@@ -5,29 +5,29 @@
  * found in the LICENSE file.
  */
 
-#include "SkBmpCodec.h"
-#include "SkCodec.h"
-#include "SkCodecPriv.h"
-#include "SkColorSpace.h"
-#include "SkData.h"
-#include "SkFrameHolder.h"
-#include "SkHalf.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkData.h"
+#include "include/private/SkHalf.h"
+#include "src/codec/SkBmpCodec.h"
+#include "src/codec/SkCodecPriv.h"
+#include "src/codec/SkFrameHolder.h"
 #ifdef SK_HAS_HEIF_LIBRARY
-#include "SkHeifCodec.h"
+#include "src/codec/SkHeifCodec.h"
 #endif
-#include "SkIcoCodec.h"
-#include "SkJpegCodec.h"
+#include "src/codec/SkIcoCodec.h"
+#include "src/codec/SkJpegCodec.h"
 #ifdef SK_HAS_PNG_LIBRARY
-#include "SkPngCodec.h"
+#include "src/codec/SkPngCodec.h"
 #endif
-#include "SkRawCodec.h"
-#include "SkStream.h"
-#include "SkWbmpCodec.h"
-#include "SkWebpCodec.h"
+#include "include/core/SkStream.h"
+#include "src/codec/SkRawCodec.h"
+#include "src/codec/SkWbmpCodec.h"
+#include "src/codec/SkWebpCodec.h"
 #ifdef SK_HAS_WUFFS_LIBRARY
-#include "SkWuffsCodec.h"
+#include "src/codec/SkWuffsCodec.h"
 #else
-#include "SkGifCodec.h"
+#include "src/codec/SkGifCodec.h"
 #endif
 
 struct DecoderProc {
diff --git a/src/codec/SkCodecImageGenerator.cpp b/src/codec/SkCodecImageGenerator.cpp
index 8341df8..b790947 100644
--- a/src/codec/SkCodecImageGenerator.cpp
+++ b/src/codec/SkCodecImageGenerator.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkCodecImageGenerator.h"
-#include "SkMakeUnique.h"
-#include "SkPixmapPriv.h"
-#include "SkYUVAIndex.h"
+#include "include/core/SkYUVAIndex.h"
+#include "src/codec/SkCodecImageGenerator.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkPixmapPriv.h"
 
 std::unique_ptr<SkImageGenerator> SkCodecImageGenerator::MakeFromEncodedCodec(sk_sp<SkData> data) {
     auto codec = SkCodec::MakeFromData(data);
diff --git a/src/codec/SkCodecImageGenerator.h b/src/codec/SkCodecImageGenerator.h
index afd0b99..3d8404f 100644
--- a/src/codec/SkCodecImageGenerator.h
+++ b/src/codec/SkCodecImageGenerator.h
@@ -7,9 +7,9 @@
 #ifndef SkCodecImageGenerator_DEFINED
 #define SkCodecImageGenerator_DEFINED
 
-#include "SkCodec.h"
-#include "SkData.h"
-#include "SkImageGenerator.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageGenerator.h"
 
 class SkCodecImageGenerator : public SkImageGenerator {
 public:
diff --git a/src/codec/SkCodecPriv.h b/src/codec/SkCodecPriv.h
index 1602130..2f77fc7 100644
--- a/src/codec/SkCodecPriv.h
+++ b/src/codec/SkCodecPriv.h
@@ -8,12 +8,12 @@
 #ifndef SkCodecPriv_DEFINED
 #define SkCodecPriv_DEFINED
 
-#include "SkColorData.h"
-#include "SkColorTable.h"
-#include "SkEncodedInfo.h"
-#include "SkEncodedOrigin.h"
-#include "SkImageInfo.h"
-#include "SkTypes.h"
+#include "include/codec/SkEncodedOrigin.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkEncodedInfo.h"
+#include "src/codec/SkColorTable.h"
 
 #ifdef SK_PRINT_CODEC_MESSAGES
     #define SkCodecPrintf SkDebugf
diff --git a/src/codec/SkColorTable.cpp b/src/codec/SkColorTable.cpp
index 5699d87..c15c452 100644
--- a/src/codec/SkColorTable.cpp
+++ b/src/codec/SkColorTable.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorTable.h"
-#include "../private/SkMalloc.h"
+#include "include/private/SkMalloc.h"
+#include "src/codec/SkColorTable.h"
 
 SkColorTable::SkColorTable(const SkPMColor colors[], int count) {
     SkASSERT(0 == count || colors);
diff --git a/src/codec/SkColorTable.h b/src/codec/SkColorTable.h
index 57681a9..e83498e 100644
--- a/src/codec/SkColorTable.h
+++ b/src/codec/SkColorTable.h
@@ -8,8 +8,8 @@
 #ifndef SkColorTable_DEFINED
 #define SkColorTable_DEFINED
 
-#include "SkColor.h"
-#include "SkRefCnt.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkRefCnt.h"
 
 /** \class SkColorTable
 
diff --git a/src/codec/SkEncodedInfo.cpp b/src/codec/SkEncodedInfo.cpp
index 93b960b..75c4d30 100644
--- a/src/codec/SkEncodedInfo.cpp
+++ b/src/codec/SkEncodedInfo.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkEncodedInfo.h"
+#include "include/private/SkEncodedInfo.h"
 
 std::unique_ptr<SkEncodedInfo::ICCProfile> SkEncodedInfo::ICCProfile::Make(sk_sp<SkData> data) {
     if (data) {
diff --git a/src/codec/SkFrameHolder.h b/src/codec/SkFrameHolder.h
index 7ac015b..1990acb 100644
--- a/src/codec/SkFrameHolder.h
+++ b/src/codec/SkFrameHolder.h
@@ -8,10 +8,10 @@
 #ifndef SkFrameHolder_DEFINED
 #define SkFrameHolder_DEFINED
 
-#include "SkTypes.h"
-#include "SkCodecAnimation.h"
-#include "SkCodecAnimationPriv.h"
-#include "SkRect.h"
+#include "include/codec/SkCodecAnimation.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkTypes.h"
+#include "src/codec/SkCodecAnimationPriv.h"
 
 /**
  *  Base class for a single frame of an animated image.
diff --git a/src/codec/SkGifCodec.cpp b/src/codec/SkGifCodec.cpp
index 10e7ce6..b2185d1 100644
--- a/src/codec/SkGifCodec.cpp
+++ b/src/codec/SkGifCodec.cpp
@@ -30,14 +30,14 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "SkCodecAnimation.h"
-#include "SkCodecPriv.h"
-#include "SkColorData.h"
-#include "SkColorTable.h"
-#include "SkGifCodec.h"
-#include "SkMakeUnique.h"
-#include "SkStream.h"
-#include "SkSwizzler.h"
+#include "include/codec/SkCodecAnimation.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkColorData.h"
+#include "src/codec/SkCodecPriv.h"
+#include "src/codec/SkColorTable.h"
+#include "src/codec/SkGifCodec.h"
+#include "src/codec/SkSwizzler.h"
+#include "src/core/SkMakeUnique.h"
 
 #include <algorithm>
 
diff --git a/src/codec/SkGifCodec.h b/src/codec/SkGifCodec.h
index 4dd1f0b..1a825fa 100644
--- a/src/codec/SkGifCodec.h
+++ b/src/codec/SkGifCodec.h
@@ -7,14 +7,14 @@
 #ifndef SkGifCodec_DEFINED
 #define SkGifCodec_DEFINED
 
-#include "SkCodec.h"
-#include "SkCodecAnimation.h"
-#include "SkColorSpace.h"
-#include "SkColorTable.h"
-#include "SkImageInfo.h"
-#include "SkSwizzler.h"
+#include "include/codec/SkCodec.h"
+#include "include/codec/SkCodecAnimation.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkImageInfo.h"
+#include "src/codec/SkColorTable.h"
+#include "src/codec/SkSwizzler.h"
 
-#include "SkGifImageReader.h"
+#include "third_party/gif/SkGifImageReader.h"
 
 /*
  *
diff --git a/src/codec/SkHeifCodec.cpp b/src/codec/SkHeifCodec.cpp
index dadb4cd..93efc87 100644
--- a/src/codec/SkHeifCodec.cpp
+++ b/src/codec/SkHeifCodec.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #ifdef SK_HAS_HEIF_LIBRARY
-#include "SkCodec.h"
-#include "SkCodecPriv.h"
-#include "SkColorData.h"
-#include "SkEndian.h"
-#include "SkStream.h"
-#include "SkHeifCodec.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkColorData.h"
+#include "src/codec/SkCodecPriv.h"
+#include "src/codec/SkHeifCodec.h"
+#include "src/core/SkEndian.h"
 
 #define FOURCC(c1, c2, c3, c4) \
     ((c1) << 24 | (c2) << 16 | (c3) << 8 | (c4))
diff --git a/src/codec/SkHeifCodec.h b/src/codec/SkHeifCodec.h
index d844f57..4b2f182 100644
--- a/src/codec/SkHeifCodec.h
+++ b/src/codec/SkHeifCodec.h
@@ -8,16 +8,16 @@
 #ifndef SkHeifCodec_DEFINED
 #define SkHeifCodec_DEFINED
 
-#include "SkCodec.h"
-#include "SkEncodedOrigin.h"
-#include "SkImageInfo.h"
-#include "SkSwizzler.h"
-#include "SkStream.h"
+#include "include/codec/SkCodec.h"
+#include "include/codec/SkEncodedOrigin.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkStream.h"
+#include "src/codec/SkSwizzler.h"
 
 #if __has_include("HeifDecoderAPI.h")
     #include "HeifDecoderAPI.h"
 #else
-    #include "SkStubHeifDecoderAPI.h"
+    #include "src/codec/SkStubHeifDecoderAPI.h"
 #endif
 
 class SkHeifCodec : public SkCodec {
diff --git a/src/codec/SkIcoCodec.cpp b/src/codec/SkIcoCodec.cpp
index 3e5d3ec..e70a9cd 100644
--- a/src/codec/SkIcoCodec.cpp
+++ b/src/codec/SkIcoCodec.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkBmpCodec.h"
-#include "SkCodecPriv.h"
-#include "SkColorData.h"
-#include "SkData.h"
-#include "SkIcoCodec.h"
-#include "SkPngCodec.h"
-#include "SkStream.h"
-#include "SkTDArray.h"
-#include "SkTSort.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkTDArray.h"
+#include "src/codec/SkBmpCodec.h"
+#include "src/codec/SkCodecPriv.h"
+#include "src/codec/SkIcoCodec.h"
+#include "src/codec/SkPngCodec.h"
+#include "src/core/SkTSort.h"
 
 /*
  * Checks the start of the stream to see if the image is an Ico or Cur
diff --git a/src/codec/SkIcoCodec.h b/src/codec/SkIcoCodec.h
index 9464f47..c1b27dc 100644
--- a/src/codec/SkIcoCodec.h
+++ b/src/codec/SkIcoCodec.h
@@ -7,11 +7,11 @@
 #ifndef SkIcoCodec_DEFINED
 #define SkIcoCodec_DEFINED
 
-#include "SkCodec.h"
-#include "SkImageInfo.h"
-#include "SkStream.h"
-#include "SkTArray.h"
-#include "SkTypes.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTArray.h"
 
 /*
  * This class implements the decoding for bmp images
diff --git a/src/codec/SkJpegCodec.cpp b/src/codec/SkJpegCodec.cpp
index ca3ac3b..c8adb5c 100644
--- a/src/codec/SkJpegCodec.cpp
+++ b/src/codec/SkJpegCodec.cpp
@@ -5,21 +5,21 @@
  * found in the LICENSE file.
  */
 
-#include "SkJpegCodec.h"
+#include "src/codec/SkJpegCodec.h"
 
-#include "SkCodec.h"
-#include "SkCodecPriv.h"
-#include "SkColorData.h"
-#include "SkJpegDecoderMgr.h"
-#include "SkJpegInfo.h"
-#include "SkStream.h"
-#include "SkTemplates.h"
-#include "SkTo.h"
-#include "SkTypes.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkTemplates.h"
+#include "include/private/SkTo.h"
+#include "src/codec/SkCodecPriv.h"
+#include "src/codec/SkJpegDecoderMgr.h"
+#include "src/pdf/SkJpegInfo.h"
 
 // stdio is needed for libjpeg-turbo
 #include <stdio.h>
-#include "SkJpegUtility.h"
+#include "src/codec/SkJpegUtility.h"
 
 // This warning triggers false postives way too often in here.
 #if defined(__GNUC__) && !defined(__clang__)
diff --git a/src/codec/SkJpegCodec.h b/src/codec/SkJpegCodec.h
index 5617c6b..986d283 100644
--- a/src/codec/SkJpegCodec.h
+++ b/src/codec/SkJpegCodec.h
@@ -8,11 +8,11 @@
 #ifndef SkJpegCodec_DEFINED
 #define SkJpegCodec_DEFINED
 
-#include "SkCodec.h"
-#include "SkImageInfo.h"
-#include "SkSwizzler.h"
-#include "SkStream.h"
-#include "SkTemplates.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkTemplates.h"
+#include "src/codec/SkSwizzler.h"
 
 class JpegDecoderMgr;
 
diff --git a/src/codec/SkJpegDecoderMgr.cpp b/src/codec/SkJpegDecoderMgr.cpp
index 0c2db52..0ada6d8 100644
--- a/src/codec/SkJpegDecoderMgr.cpp
+++ b/src/codec/SkJpegDecoderMgr.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkJpegDecoderMgr.h"
+#include "src/codec/SkJpegDecoderMgr.h"
 
-#include "SkJpegUtility.h"
+#include "src/codec/SkJpegUtility.h"
 
 #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
-    #include "SkAndroidFrameworkUtils.h"
+    #include "include/android/SkAndroidFrameworkUtils.h"
 #endif
 
 /*
diff --git a/src/codec/SkJpegDecoderMgr.h b/src/codec/SkJpegDecoderMgr.h
index f3834fe..f992bf5 100644
--- a/src/codec/SkJpegDecoderMgr.h
+++ b/src/codec/SkJpegDecoderMgr.h
@@ -8,10 +8,10 @@
 #ifndef SkJpegDecoderMgr_DEFINED
 #define SkJpegDecoderMgr_DEFINED
 
-#include "SkCodec.h"
-#include "SkCodecPriv.h"
+#include "include/codec/SkCodec.h"
+#include "src/codec/SkCodecPriv.h"
 #include <stdio.h>
-#include "SkJpegUtility.h"
+#include "src/codec/SkJpegUtility.h"
 
 extern "C" {
     #include "jpeglib.h"
diff --git a/src/codec/SkJpegPriv.h b/src/codec/SkJpegPriv.h
index ce2da56..2e36397 100644
--- a/src/codec/SkJpegPriv.h
+++ b/src/codec/SkJpegPriv.h
@@ -9,8 +9,8 @@
 #ifndef SkJpegPriv_DEFINED
 #define SkJpegPriv_DEFINED
 
-#include "SkStream.h"
-#include "SkTArray.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkTArray.h"
 
 #include <setjmp.h>
 // stdio is needed for jpeglib
diff --git a/src/codec/SkJpegUtility.cpp b/src/codec/SkJpegUtility.cpp
index 4eee287..d313892 100644
--- a/src/codec/SkJpegUtility.cpp
+++ b/src/codec/SkJpegUtility.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkJpegUtility.h"
+#include "src/codec/SkJpegUtility.h"
 
-#include "SkCodecPriv.h"
+#include "src/codec/SkCodecPriv.h"
 
 /*
  * Call longjmp to continue execution on an error
diff --git a/src/codec/SkJpegUtility.h b/src/codec/SkJpegUtility.h
index 33f4fbd..350f154 100644
--- a/src/codec/SkJpegUtility.h
+++ b/src/codec/SkJpegUtility.h
@@ -9,8 +9,8 @@
 #ifndef SkJpegUtility_codec_DEFINED
 #define SkJpegUtility_codec_DEFINED
 
-#include "SkJpegPriv.h"
-#include "SkStream.h"
+#include "include/core/SkStream.h"
+#include "src/codec/SkJpegPriv.h"
 
 #include <setjmp.h>
 // stdio is needed for jpeglib
diff --git a/src/codec/SkMaskSwizzler.cpp b/src/codec/SkMaskSwizzler.cpp
index eeae007..d3f1f36 100644
--- a/src/codec/SkMaskSwizzler.cpp
+++ b/src/codec/SkMaskSwizzler.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkCodecPriv.h"
-#include "SkColorData.h"
-#include "SkMaskSwizzler.h"
+#include "include/private/SkColorData.h"
+#include "src/codec/SkCodecPriv.h"
+#include "src/codec/SkMaskSwizzler.h"
 
 static void swizzle_mask16_to_rgba_opaque(
         void* dstRow, const uint8_t* srcRow, int width, SkMasks* masks,
diff --git a/src/codec/SkMaskSwizzler.h b/src/codec/SkMaskSwizzler.h
index eff43ee..c7c44fd 100644
--- a/src/codec/SkMaskSwizzler.h
+++ b/src/codec/SkMaskSwizzler.h
@@ -7,10 +7,10 @@
 #ifndef SkMaskSwizzler_DEFINED
 #define SkMaskSwizzler_DEFINED
 
-#include "SkMasks.h"
-#include "SkSampler.h"
-#include "SkSwizzler.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "src/codec/SkMasks.h"
+#include "src/codec/SkSampler.h"
+#include "src/codec/SkSwizzler.h"
 
 /*
  *
diff --git a/src/codec/SkMasks.cpp b/src/codec/SkMasks.cpp
index 2063ffa..e10551c 100644
--- a/src/codec/SkMasks.cpp
+++ b/src/codec/SkMasks.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkCodecPriv.h"
-#include "SkMasks.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "src/codec/SkCodecPriv.h"
+#include "src/codec/SkMasks.h"
 
 /*
  *
diff --git a/src/codec/SkMasks.h b/src/codec/SkMasks.h
index 55abb11..473d6f8 100644
--- a/src/codec/SkMasks.h
+++ b/src/codec/SkMasks.h
@@ -7,7 +7,7 @@
 #ifndef SkMasks_DEFINED
 #define SkMasks_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 /*
  *
diff --git a/src/codec/SkPngCodec.cpp b/src/codec/SkPngCodec.cpp
index ed549b7..4eaa034 100644
--- a/src/codec/SkPngCodec.cpp
+++ b/src/codec/SkPngCodec.cpp
@@ -5,28 +5,28 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkCodecPriv.h"
-#include "SkColorData.h"
-#include "SkColorSpace.h"
-#include "SkColorTable.h"
-#include "SkMacros.h"
-#include "SkMath.h"
-#include "SkOpts.h"
-#include "SkPngCodec.h"
-#include "SkPngPriv.h"
-#include "SkPoint3.h"
-#include "SkSize.h"
-#include "SkStream.h"
-#include "SkSwizzler.h"
-#include "SkTemplates.h"
-#include "SkUtils.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkMath.h"
+#include "include/core/SkPoint3.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkMacros.h"
+#include "include/private/SkTemplates.h"
+#include "src/codec/SkCodecPriv.h"
+#include "src/codec/SkColorTable.h"
+#include "src/codec/SkPngCodec.h"
+#include "src/codec/SkPngPriv.h"
+#include "src/codec/SkSwizzler.h"
+#include "src/core/SkOpts.h"
+#include "src/core/SkUtils.h"
 
 #include "png.h"
 #include <algorithm>
 
 #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
-    #include "SkAndroidFrameworkUtils.h"
+    #include "include/android/SkAndroidFrameworkUtils.h"
 #endif
 
 // This warning triggers false postives way too often in here.
diff --git a/src/codec/SkPngCodec.h b/src/codec/SkPngCodec.h
index bf068ea..4233316 100644
--- a/src/codec/SkPngCodec.h
+++ b/src/codec/SkPngCodec.h
@@ -7,13 +7,13 @@
 #ifndef SkPngCodec_DEFINED
 #define SkPngCodec_DEFINED
 
-#include "SkCodec.h"
-#include "SkColorTable.h"
-#include "SkPngChunkReader.h"
-#include "SkEncodedImageFormat.h"
-#include "SkImageInfo.h"
-#include "SkRefCnt.h"
-#include "SkSwizzler.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkEncodedImageFormat.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkPngChunkReader.h"
+#include "include/core/SkRefCnt.h"
+#include "src/codec/SkColorTable.h"
+#include "src/codec/SkSwizzler.h"
 
 class SkStream;
 
diff --git a/src/codec/SkPngPriv.h b/src/codec/SkPngPriv.h
index 3269309..5760179 100644
--- a/src/codec/SkPngPriv.h
+++ b/src/codec/SkPngPriv.h
@@ -8,7 +8,7 @@
 #ifndef SkPngPriv_DEFINED
 #define SkPngPriv_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 // We store kAlpha_8 images as GrayAlpha in png. Our private signal is significant bits for gray.
 // If that is set to 1, we assume the gray channel can be ignored, and we output just alpha.
diff --git a/src/codec/SkRawCodec.cpp b/src/codec/SkRawCodec.cpp
index a8ec40b..2503270 100644
--- a/src/codec/SkRawCodec.cpp
+++ b/src/codec/SkRawCodec.cpp
@@ -5,22 +5,22 @@
  * found in the LICENSE file.
  */
 
-#include "SkCodec.h"
-#include "SkCodecPriv.h"
-#include "SkColorSpacePriv.h"
-#include "SkColorData.h"
-#include "SkData.h"
-#include "SkJpegCodec.h"
-#include "SkMakeUnique.h"
-#include "SkMutex.h"
-#include "SkRawCodec.h"
-#include "SkRefCnt.h"
-#include "SkStream.h"
-#include "SkStreamPriv.h"
-#include "SkTArray.h"
-#include "SkTaskGroup.h"
-#include "SkTemplates.h"
-#include "SkTypes.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkData.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTemplates.h"
+#include "src/codec/SkCodecPriv.h"
+#include "src/codec/SkJpegCodec.h"
+#include "src/codec/SkRawCodec.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkStreamPriv.h"
+#include "src/core/SkTaskGroup.h"
 
 #include "dng_area_task.h"
 #include "dng_color_space.h"
diff --git a/src/codec/SkRawCodec.h b/src/codec/SkRawCodec.h
index fb8e338..d1c5131 100644
--- a/src/codec/SkRawCodec.h
+++ b/src/codec/SkRawCodec.h
@@ -8,10 +8,10 @@
 #ifndef SkRawCodec_DEFINED
 #define SkRawCodec_DEFINED
 
-#include "SkCodec.h"
-#include "SkColorSpace.h"
-#include "SkImageInfo.h"
-#include "SkTypes.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkTypes.h"
 
 class SkDngImage;
 class SkStream;
diff --git a/src/codec/SkSampledCodec.cpp b/src/codec/SkSampledCodec.cpp
index 3876d6f..8e1cf07 100644
--- a/src/codec/SkSampledCodec.cpp
+++ b/src/codec/SkSampledCodec.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkCodec.h"
-#include "SkCodecPriv.h"
-#include "SkMath.h"
-#include "SkMathPriv.h"
-#include "SkSampledCodec.h"
-#include "SkSampler.h"
-#include "SkTemplates.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkMath.h"
+#include "include/private/SkTemplates.h"
+#include "src/codec/SkCodecPriv.h"
+#include "src/codec/SkSampledCodec.h"
+#include "src/codec/SkSampler.h"
+#include "src/core/SkMathPriv.h"
 
 SkSampledCodec::SkSampledCodec(SkCodec* codec, ExifOrientationBehavior behavior)
     : INHERITED(codec, behavior)
diff --git a/src/codec/SkSampledCodec.h b/src/codec/SkSampledCodec.h
index faa955c..c92f944 100644
--- a/src/codec/SkSampledCodec.h
+++ b/src/codec/SkSampledCodec.h
@@ -7,8 +7,8 @@
 #ifndef SkSampledCodec_DEFINED
 #define SkSampledCodec_DEFINED
 
-#include "SkAndroidCodec.h"
-#include "SkCodec.h"
+#include "include/codec/SkAndroidCodec.h"
+#include "include/codec/SkCodec.h"
 
 /**
  *  This class implements the functionality of SkAndroidCodec.  Scaling will
diff --git a/src/codec/SkSampler.cpp b/src/codec/SkSampler.cpp
index d580786..3820d71 100644
--- a/src/codec/SkSampler.cpp
+++ b/src/codec/SkSampler.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkCodec.h"
-#include "SkCodecPriv.h"
-#include "SkSampler.h"
-#include "SkUtils.h"
+#include "include/codec/SkCodec.h"
+#include "src/codec/SkCodecPriv.h"
+#include "src/codec/SkSampler.h"
+#include "src/core/SkUtils.h"
 
 void SkSampler::Fill(const SkImageInfo& info, void* dst, size_t rowBytes,
                      SkCodec::ZeroInitialized zeroInit) {
diff --git a/src/codec/SkSampler.h b/src/codec/SkSampler.h
index 05043b9..d03b80a 100644
--- a/src/codec/SkSampler.h
+++ b/src/codec/SkSampler.h
@@ -7,9 +7,9 @@
 #ifndef SkSampler_DEFINED
 #define SkSampler_DEFINED
 
-#include "SkCodec.h"
-#include "SkCodecPriv.h"
-#include "SkTypes.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkTypes.h"
+#include "src/codec/SkCodecPriv.h"
 
 class SkSampler : public SkNoncopyable {
 public:
diff --git a/src/codec/SkScalingCodec.h b/src/codec/SkScalingCodec.h
index 46aed71..a53ecf3 100644
--- a/src/codec/SkScalingCodec.h
+++ b/src/codec/SkScalingCodec.h
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkCodec.h"
+#include "include/codec/SkCodec.h"
 
 // Helper class for an SkCodec that supports arbitrary downscaling.
 class SkScalingCodec : public SkCodec {
diff --git a/src/codec/SkStreamBuffer.cpp b/src/codec/SkStreamBuffer.cpp
index e8a6e90..cdac862 100644
--- a/src/codec/SkStreamBuffer.cpp
+++ b/src/codec/SkStreamBuffer.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkStreamBuffer.h"
+#include "src/codec/SkStreamBuffer.h"
 
 SkStreamBuffer::SkStreamBuffer(std::unique_ptr<SkStream> stream)
     : fStream(std::move(stream))
diff --git a/src/codec/SkStreamBuffer.h b/src/codec/SkStreamBuffer.h
index 7543e32..465d2f5 100644
--- a/src/codec/SkStreamBuffer.h
+++ b/src/codec/SkStreamBuffer.h
@@ -8,10 +8,10 @@
 #ifndef SkStreamBuffer_DEFINED
 #define SkStreamBuffer_DEFINED
 
-#include "SkData.h"
-#include "SkStream.h"
-#include "SkTypes.h"
-#include "../private/SkTHash.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTHash.h"
 
 /**
  *  Helper class for reading from a stream that may not have all its data
diff --git a/src/codec/SkSwizzler.cpp b/src/codec/SkSwizzler.cpp
index e74b72d..e29c414 100644
--- a/src/codec/SkSwizzler.cpp
+++ b/src/codec/SkSwizzler.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkCodecPriv.h"
-#include "SkColorData.h"
-#include "SkHalf.h"
-#include "SkOpts.h"
-#include "SkSwizzler.h"
-#include "SkTemplates.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkHalf.h"
+#include "include/private/SkTemplates.h"
+#include "src/codec/SkCodecPriv.h"
+#include "src/codec/SkSwizzler.h"
+#include "src/core/SkOpts.h"
 
 #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
-    #include "SkAndroidFrameworkUtils.h"
+    #include "include/android/SkAndroidFrameworkUtils.h"
 #endif
 
 static void copy(void* dst, const uint8_t* src, int width, int bpp, int deltaSrc, int offset,
diff --git a/src/codec/SkSwizzler.h b/src/codec/SkSwizzler.h
index 6f6ab6e..c71b93a 100644
--- a/src/codec/SkSwizzler.h
+++ b/src/codec/SkSwizzler.h
@@ -8,10 +8,10 @@
 #ifndef SkSwizzler_DEFINED
 #define SkSwizzler_DEFINED
 
-#include "SkCodec.h"
-#include "SkColor.h"
-#include "SkImageInfo.h"
-#include "SkSampler.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkImageInfo.h"
+#include "src/codec/SkSampler.h"
 
 class SkSwizzler : public SkSampler {
 public:
diff --git a/src/codec/SkWbmpCodec.cpp b/src/codec/SkWbmpCodec.cpp
index dc80d9d..8190c50 100644
--- a/src/codec/SkWbmpCodec.cpp
+++ b/src/codec/SkWbmpCodec.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkWbmpCodec.h"
+#include "src/codec/SkWbmpCodec.h"
 
-#include "SkCodec.h"
-#include "SkCodecPriv.h"
-#include "SkColorData.h"
-#include "SkColorTable.h"
-#include "SkData.h"
-#include "SkStream.h"
-#include "SkTo.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkTo.h"
+#include "src/codec/SkCodecPriv.h"
+#include "src/codec/SkColorTable.h"
 
 // Each bit represents a pixel, so width is actually a number of bits.
 // A row will always be stored in bytes, so we round width up to the
diff --git a/src/codec/SkWbmpCodec.h b/src/codec/SkWbmpCodec.h
index ec62f17..30af5d7 100644
--- a/src/codec/SkWbmpCodec.h
+++ b/src/codec/SkWbmpCodec.h
@@ -8,9 +8,9 @@
 #ifndef SkCodec_wbmp_DEFINED
 #define SkCodec_wbmp_DEFINED
 
-#include "SkCodec.h"
-#include "SkColorSpace.h"
-#include "SkSwizzler.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkColorSpace.h"
+#include "src/codec/SkSwizzler.h"
 
 class SkWbmpCodec final : public SkCodec {
 public:
diff --git a/src/codec/SkWebpCodec.cpp b/src/codec/SkWebpCodec.cpp
index 1b61fe2..a66b2e5 100644
--- a/src/codec/SkWebpCodec.cpp
+++ b/src/codec/SkWebpCodec.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkWebpCodec.h"
+#include "src/codec/SkWebpCodec.h"
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkCodecAnimation.h"
-#include "SkCodecAnimationPriv.h"
-#include "SkCodecPriv.h"
-#include "SkMakeUnique.h"
-#include "SkRasterPipeline.h"
-#include "SkSampler.h"
-#include "SkStreamPriv.h"
-#include "SkTemplates.h"
-#include "SkTo.h"
+#include "include/codec/SkCodecAnimation.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/private/SkTemplates.h"
+#include "include/private/SkTo.h"
+#include "src/codec/SkCodecAnimationPriv.h"
+#include "src/codec/SkCodecPriv.h"
+#include "src/codec/SkSampler.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/core/SkStreamPriv.h"
 
 // A WebP decoder on top of (subset of) libwebp
 // For more information on WebP image format, and libwebp library, see:
diff --git a/src/codec/SkWebpCodec.h b/src/codec/SkWebpCodec.h
index 568658f..36ff535 100644
--- a/src/codec/SkWebpCodec.h
+++ b/src/codec/SkWebpCodec.h
@@ -8,12 +8,12 @@
 #ifndef SkWebpCodec_DEFINED
 #define SkWebpCodec_DEFINED
 
-#include "SkCodec.h"
-#include "SkEncodedImageFormat.h"
-#include "SkFrameHolder.h"
-#include "SkImageInfo.h"
-#include "SkScalingCodec.h"
-#include "SkTypes.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkEncodedImageFormat.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkTypes.h"
+#include "src/codec/SkFrameHolder.h"
+#include "src/codec/SkScalingCodec.h"
 
 #include <vector>
 
diff --git a/src/codec/SkWuffsCodec.cpp b/src/codec/SkWuffsCodec.cpp
index 49357e9..8561ffc 100644
--- a/src/codec/SkWuffsCodec.cpp
+++ b/src/codec/SkWuffsCodec.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "SkWuffsCodec.h"
+#include "src/codec/SkWuffsCodec.h"
 
-#include "../private/SkMalloc.h"
-#include "SkBitmap.h"
-#include "SkDraw.h"
-#include "SkFrameHolder.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkRasterClip.h"
-#include "SkSampler.h"
-#include "SkScalingCodec.h"
-#include "SkUtils.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/private/SkMalloc.h"
+#include "src/codec/SkFrameHolder.h"
+#include "src/codec/SkSampler.h"
+#include "src/codec/SkScalingCodec.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkUtils.h"
 
 // Wuffs ships as a "single file C library" or "header file library" as per
 // https://github.com/nothings/stb/blob/master/docs/stb_howto.txt
diff --git a/src/codec/SkWuffsCodec.h b/src/codec/SkWuffsCodec.h
index 6dbe62a..373c89c 100644
--- a/src/codec/SkWuffsCodec.h
+++ b/src/codec/SkWuffsCodec.h
@@ -8,7 +8,7 @@
 #ifndef SkWuffsCodec_DEFINED
 #define SkWuffsCodec_DEFINED
 
-#include "SkCodec.h"
+#include "include/codec/SkCodec.h"
 
 // These functions' types match DecoderProc in SkCodec.cpp.
 bool                     SkWuffsCodec_IsFormat(const void*, size_t);
diff --git a/src/core/Sk4px.h b/src/core/Sk4px.h
index e2c30f7..f2c4ea4 100644
--- a/src/core/Sk4px.h
+++ b/src/core/Sk4px.h
@@ -8,9 +8,9 @@
 #ifndef Sk4px_DEFINED
 #define Sk4px_DEFINED
 
-#include "SkNx.h"
-#include "SkColor.h"
-#include "SkColorData.h"
+#include "include/core/SkColor.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkNx.h"
 
 // This file may be included multiple times by .cpp files with different flags, leading
 // to different definitions.  Usually that doesn't matter because it's all inlined, but
@@ -237,14 +237,14 @@
 }  // namespace
 
 #ifdef SKNX_NO_SIMD
-    #include "../opts/Sk4px_none.h"
+    #include "src/opts/Sk4px_none.h"
 #else
     #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2
-        #include "../opts/Sk4px_SSE2.h"
+        #include "src/opts/Sk4px_SSE2.h"
     #elif defined(SK_ARM_HAS_NEON)
-        #include "../opts/Sk4px_NEON.h"
+        #include "src/opts/Sk4px_NEON.h"
     #else
-        #include "../opts/Sk4px_none.h"
+        #include "src/opts/Sk4px_none.h"
     #endif
 #endif
 
diff --git a/src/core/SkAAClip.cpp b/src/core/SkAAClip.cpp
index baf8277..8489644 100644
--- a/src/core/SkAAClip.cpp
+++ b/src/core/SkAAClip.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkAAClip.h"
+#include "src/core/SkAAClip.h"
 
-#include "SkBlitter.h"
-#include "SkColorData.h"
-#include "SkMacros.h"
-#include "SkPath.h"
-#include "SkRectPriv.h"
-#include "SkScan.h"
-#include "SkTo.h"
-#include "SkUTF.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkMacros.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkBlitter.h"
+#include "src/core/SkRectPriv.h"
+#include "src/core/SkScan.h"
+#include "src/utils/SkUTF.h"
 #include <atomic>
 #include <utility>
 
diff --git a/src/core/SkAAClip.h b/src/core/SkAAClip.h
index ff7801f..3c5521f 100644
--- a/src/core/SkAAClip.h
+++ b/src/core/SkAAClip.h
@@ -8,9 +8,9 @@
 #ifndef SkAAClip_DEFINED
 #define SkAAClip_DEFINED
 
-#include "SkAutoMalloc.h"
-#include "SkBlitter.h"
-#include "SkRegion.h"
+#include "include/core/SkRegion.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkBlitter.h"
 
 class SkAAClip {
 public:
diff --git a/src/core/SkATrace.cpp b/src/core/SkATrace.cpp
index bd80461..87cdca9 100644
--- a/src/core/SkATrace.cpp
+++ b/src/core/SkATrace.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkATrace.h"
+#include "src/core/SkATrace.h"
 
-#include "SkTraceEvent.h"
+#include "src/core/SkTraceEvent.h"
 
-#include "SkTraceEventCommon.h"
+#include "src/core/SkTraceEventCommon.h"
 
 #ifdef SK_BUILD_FOR_ANDROID
 #include <dlfcn.h>
diff --git a/src/core/SkATrace.h b/src/core/SkATrace.h
index 12e4bfa..eae6d31 100644
--- a/src/core/SkATrace.h
+++ b/src/core/SkATrace.h
@@ -8,7 +8,7 @@
 #ifndef SkATrace_DEFINED
 #define SkATrace_DEFINED
 
-#include "SkEventTracer.h"
+#include "include/utils/SkEventTracer.h"
 
 /**
  * This class is used to support ATrace in android apps. It hooks into the SkEventTracer system. It
diff --git a/src/core/SkAdvancedTypefaceMetrics.h b/src/core/SkAdvancedTypefaceMetrics.h
index e9af831..84fd020 100644
--- a/src/core/SkAdvancedTypefaceMetrics.h
+++ b/src/core/SkAdvancedTypefaceMetrics.h
@@ -8,9 +8,9 @@
 #ifndef SkAdvancedTypefaceMetrics_DEFINED
 #define SkAdvancedTypefaceMetrics_DEFINED
 
-#include "SkBitmaskEnum.h"
-#include "SkRect.h"
-#include "SkString.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkString.h"
+#include "include/private/SkBitmaskEnum.h"
 
 /** \class SkAdvancedTypefaceMetrics
 
diff --git a/src/core/SkAlphaRuns.cpp b/src/core/SkAlphaRuns.cpp
index c5c4d15..b0e69bc 100644
--- a/src/core/SkAlphaRuns.cpp
+++ b/src/core/SkAlphaRuns.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkAntiRun.h"
-#include "SkTo.h"
-#include "SkUtils.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkAntiRun.h"
+#include "src/core/SkUtils.h"
 
 void SkAlphaRuns::reset(int width) {
     SkASSERT(width > 0);
diff --git a/src/core/SkAnalyticEdge.cpp b/src/core/SkAnalyticEdge.cpp
index 5f97450..2062512 100644
--- a/src/core/SkAnalyticEdge.cpp
+++ b/src/core/SkAnalyticEdge.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkAnalyticEdge.h"
-#include "SkFDot6.h"
-#include "SkMathPriv.h"
-#include "SkTo.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkAnalyticEdge.h"
+#include "src/core/SkFDot6.h"
+#include "src/core/SkMathPriv.h"
 #include <utility>
 
 static const int kInverseTableSize = 1024; // SK_FDot6One * 16
diff --git a/src/core/SkAnalyticEdge.h b/src/core/SkAnalyticEdge.h
index 3bba12f..85d0122 100644
--- a/src/core/SkAnalyticEdge.h
+++ b/src/core/SkAnalyticEdge.h
@@ -8,8 +8,8 @@
 #ifndef SkAnalyticEdge_DEFINED
 #define SkAnalyticEdge_DEFINED
 
-#include "SkEdge.h"
-#include "SkTo.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkEdge.h"
 
 #include <utility>
 
diff --git a/src/core/SkAnnotation.cpp b/src/core/SkAnnotation.cpp
index 09a6296..43b3170 100644
--- a/src/core/SkAnnotation.cpp
+++ b/src/core/SkAnnotation.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkAnnotation.h"
-#include "SkAnnotationKeys.h"
-#include "SkCanvas.h"
-#include "SkPoint.h"
-#include "SkRect.h"
+#include "include/core/SkAnnotation.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "src/core/SkAnnotationKeys.h"
 
 const char* SkAnnotationKeys::URL_Key() {
     return "SkAnnotationKey_URL";
diff --git a/src/core/SkAnnotationKeys.h b/src/core/SkAnnotationKeys.h
index dff9338..90fdc6d 100644
--- a/src/core/SkAnnotationKeys.h
+++ b/src/core/SkAnnotationKeys.h
@@ -8,7 +8,7 @@
 #ifndef SkAnnotationKeys_DEFINED
 #define SkAnnotationKeys_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 class SkAnnotationKeys {
 public:
diff --git a/src/core/SkAntiRun.h b/src/core/SkAntiRun.h
index 92aabff..70ef751 100644
--- a/src/core/SkAntiRun.h
+++ b/src/core/SkAntiRun.h
@@ -8,8 +8,8 @@
 #ifndef SkAntiRun_DEFINED
 #define SkAntiRun_DEFINED
 
-#include "SkBlitter.h"
-#include "SkTo.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkBlitter.h"
 
 /** Sparse array of run-length-encoded alpha (supersampling coverage) values.
     Sparseness allows us to independently compose several paths into the
diff --git a/src/core/SkArenaAlloc.cpp b/src/core/SkArenaAlloc.cpp
index 8fa0442..14ee5d8 100644
--- a/src/core/SkArenaAlloc.cpp
+++ b/src/core/SkArenaAlloc.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkArenaAlloc.h"
+#include "include/private/SkArenaAlloc.h"
 #include <algorithm>
 #include <new>
 
diff --git a/src/core/SkArenaAllocList.h b/src/core/SkArenaAllocList.h
index d2ed123..1c156a4 100644
--- a/src/core/SkArenaAllocList.h
+++ b/src/core/SkArenaAllocList.h
@@ -8,8 +8,8 @@
 #ifndef SkArenaAllocList_DEFINED
 #define SkArenaAllocList_DEFINED
 
-#include "SkArenaAlloc.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkArenaAlloc.h"
 
 /**
  * A singly linked list of Ts stored in a SkArenaAlloc. The arena rather than the list owns
diff --git a/src/core/SkAutoBlitterChoose.h b/src/core/SkAutoBlitterChoose.h
index 40d438e..ff3fc7e 100644
--- a/src/core/SkAutoBlitterChoose.h
+++ b/src/core/SkAutoBlitterChoose.h
@@ -8,10 +8,10 @@
 #ifndef SkAutoBlitterChoose_DEFINED
 #define SkAutoBlitterChoose_DEFINED
 
-#include "SkArenaAlloc.h"
-#include "SkBlitter.h"
-#include "SkDraw.h"
-#include "SkMacros.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkMacros.h"
+#include "src/core/SkBlitter.h"
+#include "src/core/SkDraw.h"
 
 class SkMatrix;
 class SkPaint;
diff --git a/src/core/SkAutoMalloc.h b/src/core/SkAutoMalloc.h
index 4e6be68..4be8ddb 100644
--- a/src/core/SkAutoMalloc.h
+++ b/src/core/SkAutoMalloc.h
@@ -8,10 +8,10 @@
 #ifndef SkAutoMalloc_DEFINED
 #define SkAutoMalloc_DEFINED
 
-#include "SkMacros.h"
-#include "SkMalloc.h"
-#include "SkNoncopyable.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkMacros.h"
+#include "include/private/SkMalloc.h"
+#include "include/private/SkNoncopyable.h"
 
 #include <memory>
 
diff --git a/src/core/SkAutoPixmapStorage.cpp b/src/core/SkAutoPixmapStorage.cpp
index 600f68a..0a63385 100644
--- a/src/core/SkAutoPixmapStorage.cpp
+++ b/src/core/SkAutoPixmapStorage.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkAutoPixmapStorage.h"
-#include "SkData.h"
+#include "include/core/SkData.h"
+#include "src/core/SkAutoPixmapStorage.h"
 
 SkAutoPixmapStorage::SkAutoPixmapStorage() : fStorage(nullptr) {}
 
diff --git a/src/core/SkAutoPixmapStorage.h b/src/core/SkAutoPixmapStorage.h
index c0e01da..494e0a9 100644
--- a/src/core/SkAutoPixmapStorage.h
+++ b/src/core/SkAutoPixmapStorage.h
@@ -8,8 +8,8 @@
 #ifndef SkAutoPixmapStorage_DEFINED
 #define SkAutoPixmapStorage_DEFINED
 
-#include "SkMalloc.h"
-#include "SkPixmap.h"
+#include "include/core/SkPixmap.h"
+#include "include/private/SkMalloc.h"
 
 class SkAutoPixmapStorage : public SkPixmap {
 public:
diff --git a/src/core/SkBBHFactory.cpp b/src/core/SkBBHFactory.cpp
index e8534ca..2d39a60 100644
--- a/src/core/SkBBHFactory.cpp
+++ b/src/core/SkBBHFactory.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkBBHFactory.h"
-#include "SkRect.h"
-#include "SkRTree.h"
-#include "SkScalar.h"
+#include "include/core/SkBBHFactory.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkScalar.h"
+#include "src/core/SkRTree.h"
 
 SkBBoxHierarchy* SkRTreeFactory::operator()(const SkRect& bounds) const {
     SkScalar aspectRatio = bounds.width() / bounds.height();
diff --git a/src/core/SkBBoxHierarchy.h b/src/core/SkBBoxHierarchy.h
index 63e62c2..741f9d7 100644
--- a/src/core/SkBBoxHierarchy.h
+++ b/src/core/SkBBoxHierarchy.h
@@ -8,9 +8,9 @@
 #ifndef SkBBoxHierarchy_DEFINED
 #define SkBBoxHierarchy_DEFINED
 
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkTDArray.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkTDArray.h"
 
 /**
  * Interface for a spatial data structure that stores axis-aligned bounding
diff --git a/src/core/SkBigPicture.cpp b/src/core/SkBigPicture.cpp
index 2ae9248..3ade96b 100644
--- a/src/core/SkBigPicture.cpp
+++ b/src/core/SkBigPicture.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkBBoxHierarchy.h"
-#include "SkBigPicture.h"
-#include "SkPictureCommon.h"
-#include "SkRecord.h"
-#include "SkRecordDraw.h"
-#include "SkTraceEvent.h"
+#include "src/core/SkBBoxHierarchy.h"
+#include "src/core/SkBigPicture.h"
+#include "src/core/SkPictureCommon.h"
+#include "src/core/SkRecord.h"
+#include "src/core/SkRecordDraw.h"
+#include "src/core/SkTraceEvent.h"
 
 SkBigPicture::SkBigPicture(const SkRect& cull,
                            SkRecord* record,
diff --git a/src/core/SkBigPicture.h b/src/core/SkBigPicture.h
index dbb7d53..a4d71aa 100644
--- a/src/core/SkBigPicture.h
+++ b/src/core/SkBigPicture.h
@@ -8,11 +8,11 @@
 #ifndef SkBigPicture_DEFINED
 #define SkBigPicture_DEFINED
 
-#include "SkNoncopyable.h"
-#include "SkOnce.h"
-#include "SkPicture.h"
-#include "SkRect.h"
-#include "SkTemplates.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkRect.h"
+#include "include/private/SkNoncopyable.h"
+#include "include/private/SkOnce.h"
+#include "include/private/SkTemplates.h"
 
 class SkBBoxHierarchy;
 class SkMatrix;
diff --git a/src/core/SkBitmap.cpp b/src/core/SkBitmap.cpp
index 33fe19d..c6d85e1 100644
--- a/src/core/SkBitmap.cpp
+++ b/src/core/SkBitmap.cpp
@@ -5,28 +5,28 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
+#include "include/core/SkBitmap.h"
 
-#include "SkColorData.h"
-#include "SkConvertPixels.h"
-#include "SkData.h"
-#include "SkFilterQuality.h"
-#include "SkHalf.h"
-#include "SkImageInfoPriv.h"
-#include "SkMallocPixelRef.h"
-#include "SkMask.h"
-#include "SkMaskFilterBase.h"
-#include "SkMath.h"
-#include "SkPixelRef.h"
-#include "SkPixmapPriv.h"
-#include "SkReadBuffer.h"
-#include "SkRect.h"
-#include "SkScalar.h"
-#include "SkTemplates.h"
-#include "SkTo.h"
-#include "SkUnPreMultiply.h"
-#include "SkWriteBuffer.h"
-#include "SkWritePixelsRec.h"
+#include "include/core/SkData.h"
+#include "include/core/SkFilterQuality.h"
+#include "include/core/SkMallocPixelRef.h"
+#include "include/core/SkMath.h"
+#include "include/core/SkPixelRef.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkUnPreMultiply.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkHalf.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "include/private/SkTemplates.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkConvertPixels.h"
+#include "src/core/SkMask.h"
+#include "src/core/SkMaskFilterBase.h"
+#include "src/core/SkPixmapPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/core/SkWritePixelsRec.h"
 
 #include <cstring>
 #include <utility>
@@ -530,9 +530,9 @@
     return true;
 }
 
-#include "SkPaint.h"
-#include "SkMaskFilter.h"
-#include "SkMatrix.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
 
 bool SkBitmap::extractAlpha(SkBitmap* dst, const SkPaint* paint,
                             Allocator *allocator, SkIPoint* offset) const {
diff --git a/src/core/SkBitmapCache.cpp b/src/core/SkBitmapCache.cpp
index 75a3f20..f29e6fc 100644
--- a/src/core/SkBitmapCache.cpp
+++ b/src/core/SkBitmapCache.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmapCache.h"
-#include "SkBitmapProvider.h"
-#include "SkImage.h"
-#include "SkResourceCache.h"
-#include "SkMipMap.h"
-#include "SkPixelRef.h"
-#include "SkRect.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPixelRef.h"
+#include "include/core/SkRect.h"
+#include "src/core/SkBitmapCache.h"
+#include "src/core/SkBitmapProvider.h"
+#include "src/core/SkMipMap.h"
+#include "src/core/SkResourceCache.h"
 
 /**
  *  Use this for bitmapcache and mipmapcache entries.
@@ -53,8 +53,8 @@
 }
 
 //////////////////////
-#include "SkDiscardableMemory.h"
-#include "SkNextID.h"
+#include "src/core/SkDiscardableMemory.h"
+#include "src/core/SkNextID.h"
 
 void SkBitmapCache_setImmutableWithID(SkPixelRef* pr, uint32_t id) {
     pr->setImmutableWithID(id);
diff --git a/src/core/SkBitmapCache.h b/src/core/SkBitmapCache.h
index f1984e6..12b5900 100644
--- a/src/core/SkBitmapCache.h
+++ b/src/core/SkBitmapCache.h
@@ -8,7 +8,7 @@
 #ifndef SkBitmapCache_DEFINED
 #define SkBitmapCache_DEFINED
 
-#include "SkRect.h"
+#include "include/core/SkRect.h"
 #include <memory>
 
 class SkBitmap;
diff --git a/src/core/SkBitmapController.cpp b/src/core/SkBitmapController.cpp
index 66d4706..ae29057 100644
--- a/src/core/SkBitmapController.cpp
+++ b/src/core/SkBitmapController.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkArenaAlloc.h"
-#include "SkBitmap.h"
-#include "SkBitmapCache.h"
-#include "SkBitmapController.h"
-#include "SkBitmapProvider.h"
-#include "SkMatrix.h"
-#include "SkMipMap.h"
-#include "SkTemplates.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkMatrix.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkBitmapCache.h"
+#include "src/core/SkBitmapController.h"
+#include "src/core/SkBitmapProvider.h"
+#include "src/core/SkMipMap.h"
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/core/SkBitmapController.h b/src/core/SkBitmapController.h
index 2ac6c8c..eff25f5 100644
--- a/src/core/SkBitmapController.h
+++ b/src/core/SkBitmapController.h
@@ -8,11 +8,11 @@
 #ifndef SkBitmapController_DEFINED
 #define SkBitmapController_DEFINED
 
-#include "SkBitmap.h"
-#include "SkBitmapCache.h"
-#include "SkFilterQuality.h"
-#include "SkMatrix.h"
-#include "SkMipMap.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkFilterQuality.h"
+#include "include/core/SkMatrix.h"
+#include "src/core/SkBitmapCache.h"
+#include "src/core/SkMipMap.h"
 
 class SkBitmapProvider;
 
diff --git a/src/core/SkBitmapDevice.cpp b/src/core/SkBitmapDevice.cpp
index 8c21959..162bf11 100644
--- a/src/core/SkBitmapDevice.cpp
+++ b/src/core/SkBitmapDevice.cpp
@@ -5,24 +5,24 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmapDevice.h"
-#include "SkDraw.h"
-#include "SkGlyphRun.h"
-#include "SkImageFilter.h"
-#include "SkImageFilterCache.h"
-#include "SkMakeUnique.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPixmap.h"
-#include "SkRasterClip.h"
-#include "SkRasterHandleAllocator.h"
-#include "SkShader.h"
-#include "SkSpecialImage.h"
-#include "SkStrikeCache.h"
-#include "SkSurface.h"
-#include "SkTLazy.h"
-#include "SkVertices.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPixmap.h"
+#include "include/core/SkRasterHandleAllocator.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkVertices.h"
+#include "src/core/SkBitmapDevice.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkGlyphRun.h"
+#include "src/core/SkImageFilterCache.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkStrikeCache.h"
+#include "src/core/SkTLazy.h"
 
 struct Bounder {
     SkRect  fBounds;
diff --git a/src/core/SkBitmapDevice.h b/src/core/SkBitmapDevice.h
index 2890edf..b8d8b7e 100644
--- a/src/core/SkBitmapDevice.h
+++ b/src/core/SkBitmapDevice.h
@@ -8,18 +8,18 @@
 #ifndef SkBitmapDevice_DEFINED
 #define SkBitmapDevice_DEFINED
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkDevice.h"
-#include "SkGlyphRunPainter.h"
-#include "SkImageInfo.h"
-#include "SkRasterClip.h"
-#include "SkRasterClipStack.h"
-#include "SkRect.h"
-#include "SkScalar.h"
-#include "SkSize.h"
-#include "SkSurfaceProps.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkSurfaceProps.h"
+#include "src/core/SkDevice.h"
+#include "src/core/SkGlyphRunPainter.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkRasterClipStack.h"
 
 class SkImageFilterCache;
 class SkMatrix;
diff --git a/src/core/SkBitmapProcState.cpp b/src/core/SkBitmapProcState.cpp
index 8db130c..5264525 100644
--- a/src/core/SkBitmapProcState.cpp
+++ b/src/core/SkBitmapProcState.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmapCache.h"
-#include "SkBitmapController.h"
-#include "SkBitmapProcState.h"
-#include "SkColorData.h"
-#include "SkImageEncoder.h"
-#include "SkMacros.h"
-#include "SkMipMap.h"
-#include "SkOpts.h"
-#include "SkPaint.h"
-#include "SkResourceCache.h"
-#include "SkShader.h"   // for tilemodes
-#include "SkUtils.h"
+#include "include/core/SkImageEncoder.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkMacros.h"
+#include "src/core/SkBitmapCache.h"
+#include "src/core/SkBitmapController.h"
+#include "src/core/SkBitmapProcState.h"
+#include "src/core/SkMipMap.h"
+#include "src/core/SkOpts.h"
+#include "src/core/SkResourceCache.h"
+#include "src/core/SkUtils.h"
 
 // One-stop-shop shader for,
 //   - nearest-neighbor sampling (_nofilter_),
diff --git a/src/core/SkBitmapProcState.h b/src/core/SkBitmapProcState.h
index 013c5f6..74fc56f 100644
--- a/src/core/SkBitmapProcState.h
+++ b/src/core/SkBitmapProcState.h
@@ -8,17 +8,17 @@
 #ifndef SkBitmapProcState_DEFINED
 #define SkBitmapProcState_DEFINED
 
-#include "SkArenaAlloc.h"
-#include "SkBitmap.h"
-#include "SkBitmapController.h"
-#include "SkBitmapProvider.h"
-#include "SkFixed.h"
-#include "SkFloatBits.h"
-#include "SkMatrixPriv.h"
-#include "SkMipMap.h"
-#include "SkPaint.h"
-#include "SkShader.h"
-#include "SkTemplates.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkFixed.h"
+#include "include/private/SkFloatBits.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkBitmapController.h"
+#include "src/core/SkBitmapProvider.h"
+#include "src/core/SkMatrixPriv.h"
+#include "src/core/SkMipMap.h"
 
 typedef SkFixed3232    SkFractionalInt;
 #define SkScalarToFractionalInt(x)  SkScalarToFixed3232(x)
diff --git a/src/core/SkBitmapProcState_matrixProcs.cpp b/src/core/SkBitmapProcState_matrixProcs.cpp
index aefcd96..4baa5d3 100644
--- a/src/core/SkBitmapProcState_matrixProcs.cpp
+++ b/src/core/SkBitmapProcState_matrixProcs.cpp
@@ -13,10 +13,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmapProcState.h"
-#include "SkShader.h"
-#include "SkTo.h"
-#include "SkUtils.h"
+#include "include/core/SkShader.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkBitmapProcState.h"
+#include "src/core/SkUtils.h"
 
 /*
  *  The decal_ functions require that
diff --git a/src/core/SkBitmapProvider.cpp b/src/core/SkBitmapProvider.cpp
index 5d17cd7..eeefc5b 100644
--- a/src/core/SkBitmapProvider.cpp
+++ b/src/core/SkBitmapProvider.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmapProvider.h"
-#include "SkImage_Base.h"
+#include "src/core/SkBitmapProvider.h"
+#include "src/image/SkImage_Base.h"
 
 SkBitmapCacheDesc SkBitmapProvider::makeCacheDesc() const {
     return SkBitmapCacheDesc::Make(fImage);
diff --git a/src/core/SkBitmapProvider.h b/src/core/SkBitmapProvider.h
index 0012140..dd881f9 100644
--- a/src/core/SkBitmapProvider.h
+++ b/src/core/SkBitmapProvider.h
@@ -8,8 +8,8 @@
 #ifndef SkBitmapProvider_DEFINED
 #define SkBitmapProvider_DEFINED
 
-#include "SkImage.h"
-#include "SkBitmapCache.h"
+#include "include/core/SkImage.h"
+#include "src/core/SkBitmapCache.h"
 
 class SkBitmapProvider {
 public:
diff --git a/src/core/SkBlendMode.cpp b/src/core/SkBlendMode.cpp
index 4610ae0..b19481c 100644
--- a/src/core/SkBlendMode.cpp
+++ b/src/core/SkBlendMode.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlendModePriv.h"
-#include "SkCoverageModePriv.h"
-#include "SkRasterPipeline.h"
+#include "src/core/SkBlendModePriv.h"
+#include "src/core/SkCoverageModePriv.h"
+#include "src/core/SkRasterPipeline.h"
 
 bool SkBlendMode_ShouldPreScaleCoverage(SkBlendMode mode, bool rgb_coverage) {
     // The most important things we do here are:
diff --git a/src/core/SkBlendModePriv.h b/src/core/SkBlendModePriv.h
index 32e697c..c5e688a 100644
--- a/src/core/SkBlendModePriv.h
+++ b/src/core/SkBlendModePriv.h
@@ -8,9 +8,9 @@
 #ifndef SkBlendModePriv_DEFINED
 #define SkBlendModePriv_DEFINED
 
-#include "SkBlendMode.h"
-#include "SkColor.h"
-#include "SkColorData.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkColor.h"
+#include "include/private/SkColorData.h"
 
 class SkRasterPipeline;
 
@@ -43,7 +43,7 @@
 SkPMColor4f SkBlendMode_Apply(SkBlendMode, const SkPMColor4f& src, const SkPMColor4f& dst);
 
 #if SK_SUPPORT_GPU
-#include "GrXferProcessor.h"
+#include "src/gpu/GrXferProcessor.h"
 const GrXPFactory* SkBlendMode_AsXPFactory(SkBlendMode);
 #endif
 
diff --git a/src/core/SkBlitBWMaskTemplate.h b/src/core/SkBlitBWMaskTemplate.h
index b0b9358..991e699 100644
--- a/src/core/SkBlitBWMaskTemplate.h
+++ b/src/core/SkBlitBWMaskTemplate.h
@@ -6,8 +6,8 @@
  */
 
 
-#include "SkBitmap.h"
-#include "SkMask.h"
+#include "include/core/SkBitmap.h"
+#include "src/core/SkMask.h"
 
 #ifndef ClearLow3Bits_DEFINED
 #define ClearLow3Bits_DEFINED
diff --git a/src/core/SkBlitRow.h b/src/core/SkBlitRow.h
index 19d1f73..cc4ba86 100644
--- a/src/core/SkBlitRow.h
+++ b/src/core/SkBlitRow.h
@@ -8,8 +8,8 @@
 #ifndef SkBlitRow_DEFINED
 #define SkBlitRow_DEFINED
 
-#include "SkBitmap.h"
-#include "SkColor.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkColor.h"
 
 class SkBlitRow {
 public:
diff --git a/src/core/SkBlitRow_D32.cpp b/src/core/SkBlitRow_D32.cpp
index 4109240..82b3cca 100644
--- a/src/core/SkBlitRow_D32.cpp
+++ b/src/core/SkBlitRow_D32.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlitRow.h"
-#include "SkColorData.h"
-#include "SkOpts.h"
-#include "SkUtils.h"
+#include "include/private/SkColorData.h"
+#include "src/core/SkBlitRow.h"
+#include "src/core/SkOpts.h"
+#include "src/core/SkUtils.h"
 
 // Everyone agrees memcpy() is the best way to do this.
 static void blit_row_s32_opaque(SkPMColor* dst,
diff --git a/src/core/SkBlitter.cpp b/src/core/SkBlitter.cpp
index 874fb88..e118a4c 100644
--- a/src/core/SkBlitter.cpp
+++ b/src/core/SkBlitter.cpp
@@ -5,25 +5,25 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlitter.h"
+#include "src/core/SkBlitter.h"
 
-#include "SkAntiRun.h"
-#include "SkArenaAlloc.h"
-#include "SkColor.h"
-#include "SkColorData.h"
-#include "SkColorFilter.h"
-#include "SkMask.h"
-#include "SkMaskFilterBase.h"
-#include "SkPaintPriv.h"
-#include "SkReadBuffer.h"
-#include "SkRegionPriv.h"
-#include "SkShaderBase.h"
-#include "SkString.h"
-#include "SkTLazy.h"
-#include "SkTo.h"
-#include "SkUtils.h"
-#include "SkWriteBuffer.h"
-#include "SkXfermodeInterpretation.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkString.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkAntiRun.h"
+#include "src/core/SkMask.h"
+#include "src/core/SkMaskFilterBase.h"
+#include "src/core/SkPaintPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkRegionPriv.h"
+#include "src/core/SkTLazy.h"
+#include "src/core/SkUtils.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/core/SkXfermodeInterpretation.h"
+#include "src/shaders/SkShaderBase.h"
 
 SkBlitter::~SkBlitter() {}
 
@@ -635,7 +635,7 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkCoreBlitters.h"
+#include "src/core/SkCoreBlitters.h"
 
 // hack for testing, not to be exposed to clients
 bool gSkForceRasterPipelineBlitter;
diff --git a/src/core/SkBlitter.h b/src/core/SkBlitter.h
index 9b15cdc..ef37a1f 100644
--- a/src/core/SkBlitter.h
+++ b/src/core/SkBlitter.h
@@ -8,13 +8,13 @@
 #ifndef SkBlitter_DEFINED
 #define SkBlitter_DEFINED
 
-#include "SkAutoMalloc.h"
-#include "SkColor.h"
-#include "SkImagePriv.h"
-#include "SkRect.h"
-#include "SkRegion.h"
-#include "SkShaderBase.h"
-#include "SkTo.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRegion.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkImagePriv.h"
+#include "src/shaders/SkShaderBase.h"
 
 class SkArenaAlloc;
 class SkMatrix;
diff --git a/src/core/SkBlitter_A8.cpp b/src/core/SkBlitter_A8.cpp
index 3bb6442..7217c9e 100644
--- a/src/core/SkBlitter_A8.cpp
+++ b/src/core/SkBlitter_A8.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkCoreBlitters.h"
-#include "SkColorData.h"
-#include "SkShader.h"
-#include "SkXfermodePriv.h"
+#include "include/core/SkShader.h"
+#include "include/private/SkColorData.h"
+#include "src/core/SkCoreBlitters.h"
+#include "src/core/SkXfermodePriv.h"
 
 SkA8_Coverage_Blitter::SkA8_Coverage_Blitter(const SkPixmap& device,
                              const SkPaint& paint) : SkRasterBlitter(device) {
diff --git a/src/core/SkBlitter_ARGB32.cpp b/src/core/SkBlitter_ARGB32.cpp
index c41579f..db11b00 100644
--- a/src/core/SkBlitter_ARGB32.cpp
+++ b/src/core/SkBlitter_ARGB32.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorData.h"
-#include "SkCoreBlitters.h"
-#include "SkShader.h"
-#include "SkUtils.h"
-#include "SkXfermodePriv.h"
-#include "SkVx.h"
+#include "include/core/SkShader.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkVx.h"
+#include "src/core/SkCoreBlitters.h"
+#include "src/core/SkUtils.h"
+#include "src/core/SkXfermodePriv.h"
 
 static inline int upscale_31_to_32(int value) {
     SkASSERT((unsigned)value <= 31);
@@ -769,7 +769,7 @@
 #define SK_BLITBWMASK_BLIT8(mask, dst)      solid_8_pixels(mask, dst, color)
 #define SK_BLITBWMASK_GETADDR               writable_addr32
 #define SK_BLITBWMASK_DEVTYPE               uint32_t
-#include "SkBlitBWMaskTemplate.h"
+#include "src/core/SkBlitBWMaskTemplate.h"
 
 #define blend_8_pixels(mask, dst, sc, dst_scale)                            \
     do {                                                                    \
@@ -788,7 +788,7 @@
 #define SK_BLITBWMASK_BLIT8(mask, dst)      blend_8_pixels(mask, dst, sc, dst_scale)
 #define SK_BLITBWMASK_GETADDR               writable_addr32
 #define SK_BLITBWMASK_DEVTYPE               uint32_t
-#include "SkBlitBWMaskTemplate.h"
+#include "src/core/SkBlitBWMaskTemplate.h"
 
 void SkARGB32_Blitter::blitMask(const SkMask& mask, const SkIRect& clip) {
     SkASSERT(mask.fBounds.contains(clip));
diff --git a/src/core/SkBlitter_RGB565.cpp b/src/core/SkBlitter_RGB565.cpp
index 4f44cda..3df8217 100644
--- a/src/core/SkBlitter_RGB565.cpp
+++ b/src/core/SkBlitter_RGB565.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkCoreBlitters.h"
-#include "SkColorData.h"
-#include "SkShader.h"
-#include "SkUTF.h"
-#include "SkXfermodePriv.h"
-#include "SkColorData.h"
+#include "include/core/SkShader.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkColorData.h"
+#include "src/core/SkCoreBlitters.h"
+#include "src/core/SkXfermodePriv.h"
+#include "src/utils/SkUTF.h"
 
-#include "SkNx.h"
+#include "include/private/SkNx.h"
 
 static void D16_S32X_src(uint16_t dst[], const SkPMColor src[], int count, uint8_t coverage) {
     SkASSERT(coverage == 0xFF);
diff --git a/src/core/SkBlitter_Sprite.cpp b/src/core/SkBlitter_Sprite.cpp
index f980b2d..3d9b9d0 100644
--- a/src/core/SkBlitter_Sprite.cpp
+++ b/src/core/SkBlitter_Sprite.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkArenaAlloc.h"
-#include "SkColorSpace.h"
-#include "SkColorSpacePriv.h"
-#include "SkColorSpaceXformSteps.h"
-#include "SkCoreBlitters.h"
-#include "SkOpts.h"
-#include "SkRasterPipeline.h"
-#include "SkSpriteBlitter.h"
+#include "include/core/SkColorSpace.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkColorSpaceXformSteps.h"
+#include "src/core/SkCoreBlitters.h"
+#include "src/core/SkOpts.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/core/SkSpriteBlitter.h"
 
 SkSpriteBlitter::SkSpriteBlitter(const SkPixmap& source)
     : fSource(source) {}
diff --git a/src/core/SkBlurMF.cpp b/src/core/SkBlurMF.cpp
index c4fe485..8e94e1a 100644
--- a/src/core/SkBlurMF.cpp
+++ b/src/core/SkBlurMF.cpp
@@ -5,39 +5,39 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurMask.h"
-#include "SkBlurPriv.h"
-#include "SkGpuBlurUtils.h"
-#include "SkMaskFilterBase.h"
-#include "SkReadBuffer.h"
-#include "SkRRectPriv.h"
-#include "SkWriteBuffer.h"
-#include "SkMaskFilter.h"
-#include "SkRRect.h"
-#include "SkStringUtils.h"
-#include "SkStrokeRec.h"
-#include "SkVertices.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/core/SkVertices.h"
+#include "src/core/SkBlurMask.h"
+#include "src/core/SkBlurPriv.h"
+#include "src/core/SkGpuBlurUtils.h"
+#include "src/core/SkMaskFilterBase.h"
+#include "src/core/SkRRectPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkStringUtils.h"
+#include "src/core/SkWriteBuffer.h"
 
 #if SK_SUPPORT_GPU
-#include "GrClip.h"
-#include "GrFragmentProcessor.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrResourceProvider.h"
-#include "GrShaderCaps.h"
-#include "GrShape.h"
-#include "GrStyle.h"
-#include "GrTextureProxy.h"
-#include "effects/GrTextureDomain.h"
-#include "effects/generated/GrCircleBlurFragmentProcessor.h"
-#include "effects/generated/GrSimpleTextureEffect.h"
-#include "effects/generated/GrRectBlurEffect.h"
-#include "effects/generated/GrRRectBlurEffect.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/GrStyle.h"
+#include "src/gpu/effects/GrTextureDomain.h"
+#include "src/gpu/effects/generated/GrCircleBlurFragmentProcessor.h"
+#include "src/gpu/effects/generated/GrRRectBlurEffect.h"
+#include "src/gpu/effects/generated/GrRectBlurEffect.h"
+#include "src/gpu/effects/generated/GrSimpleTextureEffect.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 #endif
 
 class SkBlurMaskFilterImpl : public SkMaskFilterBase {
@@ -306,7 +306,7 @@
     return SkBlurMask::BlurRRect(sigma, dst, r, fBlurStyle, margin, createMode);
 }
 
-#include "SkCanvas.h"
+#include "include/core/SkCanvas.h"
 
 static bool prepare_to_draw_into_mask(const SkRect& bounds, SkMask* mask) {
     SkASSERT(mask != nullptr);
@@ -379,7 +379,7 @@
            r.width() > v || r.height() > v;
 }
 
-#include "SkMaskCache.h"
+#include "src/core/SkMaskCache.h"
 
 static SkCachedData* copy_mask_to_cacheddata(SkMask* mask) {
     const size_t size = mask->computeTotalImageSize();
diff --git a/src/core/SkBlurMask.cpp b/src/core/SkBlurMask.cpp
index 81b1dea..0b7fbf3 100644
--- a/src/core/SkBlurMask.cpp
+++ b/src/core/SkBlurMask.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurMask.h"
+#include "src/core/SkBlurMask.h"
 
-#include "SkColorPriv.h"
-#include "SkEndian.h"
-#include "SkMaskBlurFilter.h"
-#include "SkMath.h"
-#include "SkMathPriv.h"
-#include "SkTemplates.h"
-#include "SkTo.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkMath.h"
+#include "include/private/SkTemplates.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkEndian.h"
+#include "src/core/SkMaskBlurFilter.h"
+#include "src/core/SkMathPriv.h"
 
 // This constant approximates the scaling done in the software path's
 // "high quality" mode, in SkBlurMask::Blur() (1 / sqrt(3)).
diff --git a/src/core/SkBlurMask.h b/src/core/SkBlurMask.h
index cd81e60..55c999e 100644
--- a/src/core/SkBlurMask.h
+++ b/src/core/SkBlurMask.h
@@ -8,10 +8,10 @@
 #ifndef SkBlurMask_DEFINED
 #define SkBlurMask_DEFINED
 
-#include "SkBlurTypes.h"
-#include "SkShader.h"
-#include "SkMask.h"
-#include "SkRRect.h"
+#include "include/core/SkBlurTypes.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkShader.h"
+#include "src/core/SkMask.h"
 
 class SkBlurMask {
 public:
diff --git a/src/core/SkBlurPriv.h b/src/core/SkBlurPriv.h
index 38daa19..2509d49 100644
--- a/src/core/SkBlurPriv.h
+++ b/src/core/SkBlurPriv.h
@@ -8,8 +8,8 @@
 #ifndef SkBlurPriv_DEFINED
 #define SkBlurPriv_DEFINED
 
-#include "SkRRect.h"
-#include "SkSize.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkSize.h"
 
 static const int kSkBlurRRectMaxDivisions = 6;
 
diff --git a/src/core/SkBuffer.cpp b/src/core/SkBuffer.cpp
index 9dbc49e..3bb38bf 100644
--- a/src/core/SkBuffer.cpp
+++ b/src/core/SkBuffer.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkBuffer.h"
-#include "SkMalloc.h"
+#include "include/private/SkMalloc.h"
+#include "src/core/SkBuffer.h"
 #include <string.h>
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/core/SkBuffer.h b/src/core/SkBuffer.h
index a9ac955..3f5e45f 100644
--- a/src/core/SkBuffer.h
+++ b/src/core/SkBuffer.h
@@ -8,10 +8,10 @@
 #ifndef SkBuffer_DEFINED
 #define SkBuffer_DEFINED
 
-#include "SkNoncopyable.h"
-#include "SkSafeMath.h"
-#include "SkScalar.h"
-#include "SkTypes.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkNoncopyable.h"
+#include "src/core/SkSafeMath.h"
 
 #include <limits>
 
diff --git a/src/core/SkCachedData.cpp b/src/core/SkCachedData.cpp
index 3a40cc9..1a6f423 100644
--- a/src/core/SkCachedData.cpp
+++ b/src/core/SkCachedData.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkCachedData.h"
-#include "SkDiscardableMemory.h"
-#include "SkMalloc.h"
+#include "include/private/SkMalloc.h"
+#include "src/core/SkCachedData.h"
+#include "src/core/SkDiscardableMemory.h"
 
 SkCachedData::SkCachedData(void* data, size_t size)
     : fData(data)
diff --git a/src/core/SkCachedData.h b/src/core/SkCachedData.h
index 932fbc2..d7b49dd 100644
--- a/src/core/SkCachedData.h
+++ b/src/core/SkCachedData.h
@@ -8,9 +8,9 @@
 #ifndef SkCachedData_DEFINED
 #define SkCachedData_DEFINED
 
-#include "SkMutex.h"
-#include "SkNoncopyable.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkNoncopyable.h"
 
 class SkDiscardableMemory;
 
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index fdc7d59..e021fb5 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -5,50 +5,50 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
+#include "include/core/SkCanvas.h"
 
-#include "SkArenaAlloc.h"
-#include "SkBitmapDevice.h"
-#include "SkCanvasPriv.h"
-#include "SkClipOpPriv.h"
-#include "SkClipStack.h"
-#include "SkColorFilter.h"
-#include "SkDraw.h"
-#include "SkDrawLooper.h"
-#include "SkGlyphRun.h"
-#include "SkImage.h"
-#include "SkImageFilter.h"
-#include "SkImageFilterCache.h"
-#include "SkImage_Base.h"
-#include "SkLatticeIter.h"
-#include "SkMSAN.h"
-#include "SkMakeUnique.h"
-#include "SkMatrixUtils.h"
-#include "SkNoDrawCanvas.h"
-#include "SkNx.h"
-#include "SkPaintPriv.h"
-#include "SkPatchUtils.h"
-#include "SkPathEffect.h"
-#include "SkPicture.h"
-#include "SkRRect.h"
-#include "SkRasterClip.h"
-#include "SkRasterHandleAllocator.h"
-#include "SkSpecialImage.h"
-#include "SkStrikeCache.h"
-#include "SkString.h"
-#include "SkSurface_Base.h"
-#include "SkTLazy.h"
-#include "SkTextBlob.h"
-#include "SkTextFormatParams.h"
-#include "SkTo.h"
-#include "SkTraceEvent.h"
-#include "SkVertices.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkDrawLooper.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRasterHandleAllocator.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkVertices.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkNx.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkNoDrawCanvas.h"
+#include "src/core/SkBitmapDevice.h"
+#include "src/core/SkCanvasPriv.h"
+#include "src/core/SkClipOpPriv.h"
+#include "src/core/SkClipStack.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkGlyphRun.h"
+#include "src/core/SkImageFilterCache.h"
+#include "src/core/SkLatticeIter.h"
+#include "src/core/SkMSAN.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkMatrixUtils.h"
+#include "src/core/SkPaintPriv.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkStrikeCache.h"
+#include "src/core/SkTLazy.h"
+#include "src/core/SkTextFormatParams.h"
+#include "src/core/SkTraceEvent.h"
+#include "src/image/SkImage_Base.h"
+#include "src/image/SkSurface_Base.h"
+#include "src/utils/SkPatchUtils.h"
 
 #include <new>
 
 #if SK_SUPPORT_GPU
-#include "GrContext.h"
-#include "SkGr.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/SkGr.h"
 #endif
 
 #define RETURN_ON_NULL(ptr)     do { if (nullptr == (ptr)) return; } while (0)
diff --git a/src/core/SkCanvasPriv.cpp b/src/core/SkCanvasPriv.cpp
index 5249687..cf90419 100644
--- a/src/core/SkCanvasPriv.cpp
+++ b/src/core/SkCanvasPriv.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkAutoMalloc.h"
-#include "SkCanvasPriv.h"
-#include "SkReadBuffer.h"
-#include "SkWriter32.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkCanvasPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriter32.h"
 
 SkAutoCanvasMatrixPaint::SkAutoCanvasMatrixPaint(SkCanvas* canvas, const SkMatrix* matrix,
                                                  const SkPaint* paint, const SkRect& bounds)
diff --git a/src/core/SkCanvasPriv.h b/src/core/SkCanvasPriv.h
index d7d086d..368b3fa 100644
--- a/src/core/SkCanvasPriv.h
+++ b/src/core/SkCanvasPriv.h
@@ -8,7 +8,7 @@
 #ifndef SkCanvasPriv_DEFINED
 #define SkCanvasPriv_DEFINED
 
-#include "SkCanvas.h"
+#include "include/core/SkCanvas.h"
 
 class SkReadBuffer;
 class SkWriteBuffer;
diff --git a/src/core/SkClipOpPriv.h b/src/core/SkClipOpPriv.h
index a90f59d..02c8ffa 100644
--- a/src/core/SkClipOpPriv.h
+++ b/src/core/SkClipOpPriv.h
@@ -8,7 +8,7 @@
 #ifndef SkClipOpPriv_DEFINED
 #define SkClipOpPriv_DEFINED
 
-#include "SkClipOp.h"
+#include "include/core/SkClipOp.h"
 
 const SkClipOp kDifference_SkClipOp         = SkClipOp::kDifference;
 const SkClipOp kIntersect_SkClipOp          = SkClipOp::kIntersect;
diff --git a/src/core/SkClipStack.cpp b/src/core/SkClipStack.cpp
index 54ef867..88b3f3a 100644
--- a/src/core/SkClipStack.cpp
+++ b/src/core/SkClipStack.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkClipStack.h"
-#include "SkPath.h"
-#include "SkPathOps.h"
-#include "SkClipOpPriv.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/pathops/SkPathOps.h"
+#include "src/core/SkClipOpPriv.h"
+#include "src/core/SkClipStack.h"
 #include <atomic>
 #include <new>
 
 #if SK_SUPPORT_GPU
-#include "GrProxyProvider.h"
+#include "src/gpu/GrProxyProvider.h"
 #endif
 
 SkClipStack::Element::Element(const Element& that) {
diff --git a/src/core/SkClipStack.h b/src/core/SkClipStack.h
index 87288d8..f8653d7 100644
--- a/src/core/SkClipStack.h
+++ b/src/core/SkClipStack.h
@@ -8,20 +8,20 @@
 #ifndef SkClipStack_DEFINED
 #define SkClipStack_DEFINED
 
-#include "../private/SkMessageBus.h"
-#include "SkCanvas.h"
-#include "SkClipOpPriv.h"
-#include "SkDeque.h"
-#include "SkPath.h"
-#include "SkRRect.h"
-#include "SkRect.h"
-#include "SkRegion.h"
-#include "SkTLazy.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkDeque.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRegion.h"
+#include "include/private/SkMessageBus.h"
+#include "src/core/SkClipOpPriv.h"
+#include "src/core/SkTLazy.h"
 
 #if SK_SUPPORT_GPU
 class GrProxyProvider;
 
-#include "GrResourceKey.h"
+#include "include/private/GrResourceKey.h"
 #endif
 
 // Because a single save/restore state can have multiple clips, this class
diff --git a/src/core/SkClipStackDevice.cpp b/src/core/SkClipStackDevice.cpp
index dd5118d..78a7795 100644
--- a/src/core/SkClipStackDevice.cpp
+++ b/src/core/SkClipStackDevice.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkClipStackDevice.h"
-#include "SkDraw.h"
-#include "SkRasterClip.h"
+#include "src/core/SkClipStackDevice.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkRasterClip.h"
 
 SkIRect SkClipStackDevice::devClipBounds() const {
     SkIRect r = fClipStack.bounds(this->imageInfo().bounds()).roundOut();
diff --git a/src/core/SkClipStackDevice.h b/src/core/SkClipStackDevice.h
index a09c826..64b7021 100644
--- a/src/core/SkClipStackDevice.h
+++ b/src/core/SkClipStackDevice.h
@@ -8,8 +8,8 @@
 #ifndef SkClipStackDevice_DEFINED
 #define SkClipStackDevice_DEFINED
 
-#include "SkClipStack.h"
-#include "SkDevice.h"
+#include "src/core/SkClipStack.h"
+#include "src/core/SkDevice.h"
 
 class SkClipStackDevice : public SkBaseDevice {
 public:
diff --git a/src/core/SkColor.cpp b/src/core/SkColor.cpp
index 559791a..efcc4b9 100644
--- a/src/core/SkColor.cpp
+++ b/src/core/SkColor.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkColor.h"
-#include "SkColorData.h"
-#include "SkFixed.h"
+#include "include/core/SkColor.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkFixed.h"
 
 SkPMColor SkPreMultiplyARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b) {
     return SkPremultiplyARGBInline(a, r, g, b);
diff --git a/src/core/SkColorFilter.cpp b/src/core/SkColorFilter.cpp
index e99d185..ba5e302 100644
--- a/src/core/SkColorFilter.cpp
+++ b/src/core/SkColorFilter.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "SkArenaAlloc.h"
-#include "SkColorFilter.h"
-#include "SkColorFilterPriv.h"
-#include "SkColorSpacePriv.h"
-#include "SkColorSpaceXformSteps.h"
-#include "SkNx.h"
-#include "SkRasterPipeline.h"
-#include "SkReadBuffer.h"
-#include "SkRefCnt.h"
-#include "SkString.h"
-#include "SkTDArray.h"
-#include "SkUnPreMultiply.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkString.h"
+#include "include/core/SkUnPreMultiply.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkNx.h"
+#include "include/private/SkTDArray.h"
+#include "src/core/SkColorFilterPriv.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkColorSpaceXformSteps.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 
 #if SK_SUPPORT_GPU
-#include "GrFragmentProcessor.h"
-#include "effects/generated/GrMixerEffect.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/effects/generated/GrMixerEffect.h"
 #endif
 
 bool SkColorFilter::asColorMode(SkColor*, SkBlendMode*) const {
@@ -48,7 +48,7 @@
         .toSkColor();
 }
 
-#include "SkRasterPipeline.h"
+#include "src/core/SkRasterPipeline.h"
 SkColor4f SkColorFilter::filterColor4f(const SkColor4f& c, SkColorSpace* colorSpace) const {
     SkPMColor4f dst, src = c.premul();
 
@@ -164,7 +164,7 @@
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 #if SK_SUPPORT_GPU
-#include "../gpu/effects/GrSRGBEffect.h"
+#include "src/gpu/effects/GrSRGBEffect.h"
 #endif
 
 class SkSRGBGammaColorFilter : public SkColorFilter {
@@ -361,10 +361,10 @@
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 #if SK_SUPPORT_GPU
-#include "effects/GrSkSLFP.h"
-#include "GrRecordingContext.h"
-#include "SkSLByteCode.h"
-#include "SkSLInterpreter.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/effects/GrSkSLFP.h"
+#include "src/sksl/SkSLByteCode.h"
+#include "src/sksl/SkSLInterpreter.h"
 
 class SkRuntimeColorFilter : public SkColorFilter {
 public:
@@ -483,7 +483,7 @@
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-#include "SkModeColorFilter.h"
+#include "src/core/SkModeColorFilter.h"
 
 void SkColorFilter::RegisterFlattenables() {
     SK_REGISTER_FLATTENABLE(SkComposeColorFilter);
diff --git a/src/core/SkColorFilterPriv.h b/src/core/SkColorFilterPriv.h
index 92d40dc..a386e6c 100644
--- a/src/core/SkColorFilterPriv.h
+++ b/src/core/SkColorFilterPriv.h
@@ -9,8 +9,8 @@
 
 #ifdef SK_SUPPORT_GPU
 
-#include "SkColorFilter.h"
-#include "SkString.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkString.h"
 
 using SkRuntimeColorFilterFn = void(*)(float[4], const void*);
 
diff --git a/src/core/SkColorFilter_Matrix.cpp b/src/core/SkColorFilter_Matrix.cpp
index 17fc0c3..5f53a83 100644
--- a/src/core/SkColorFilter_Matrix.cpp
+++ b/src/core/SkColorFilter_Matrix.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorFilter_Matrix.h"
-#include "SkColorData.h"
-#include "SkColorMatrix.h"
-#include "SkNx.h"
-#include "SkRasterPipeline.h"
-#include "SkReadBuffer.h"
-#include "SkRefCnt.h"
-#include "SkString.h"
-#include "SkUnPreMultiply.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkString.h"
+#include "include/core/SkUnPreMultiply.h"
+#include "include/effects/SkColorMatrix.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkNx.h"
+#include "src/core/SkColorFilter_Matrix.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 
 static void scale_last_column(float rowMajor[20], float scale) {
     for (int i = 0; i < 4; ++i) {
@@ -72,11 +72,11 @@
 }
 
 #if SK_SUPPORT_GPU
-#include "GrFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 class ColorMatrixEffect : public GrFragmentProcessor {
 public:
diff --git a/src/core/SkColorFilter_Matrix.h b/src/core/SkColorFilter_Matrix.h
index 14d5c15..33438d7 100644
--- a/src/core/SkColorFilter_Matrix.h
+++ b/src/core/SkColorFilter_Matrix.h
@@ -8,8 +8,8 @@
 #ifndef SkColorFilter_Matrix_DEFINED
 #define SkColorFilter_Matrix_DEFINED
 
-#include "SkFlattenable.h"
-#include "SkColorFilter.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkFlattenable.h"
 
 class SkColorFilter_Matrix : public SkColorFilter {
 public:
diff --git a/src/core/SkColorSpace.cpp b/src/core/SkColorSpace.cpp
index 273aedd..9fe521f 100644
--- a/src/core/SkColorSpace.cpp
+++ b/src/core/SkColorSpace.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorSpace.h"
-#include "SkColorSpacePriv.h"
-#include "SkData.h"
-#include "SkOpts.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkData.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkOpts.h"
 #include "skcms.h"
 
 bool SkColorSpacePrimaries::toXYZD50(skcms_Matrix3x3* toXYZ_D50) const {
diff --git a/src/core/SkColorSpacePriv.h b/src/core/SkColorSpacePriv.h
index 12379d7..97d52e9 100644
--- a/src/core/SkColorSpacePriv.h
+++ b/src/core/SkColorSpacePriv.h
@@ -9,8 +9,8 @@
 
 #include <math.h>
 
-#include "SkColorSpace.h"
-#include "SkFixed.h"
+#include "include/core/SkColorSpace.h"
+#include "include/private/SkFixed.h"
 
 #define SkColorSpacePrintf(...)
 
diff --git a/src/core/SkColorSpaceXformSteps.cpp b/src/core/SkColorSpaceXformSteps.cpp
index ddc45d1..07b5ebb 100644
--- a/src/core/SkColorSpaceXformSteps.cpp
+++ b/src/core/SkColorSpaceXformSteps.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorSpaceXformSteps.h"
-#include "SkColorSpacePriv.h"
-#include "SkRasterPipeline.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkColorSpaceXformSteps.h"
+#include "src/core/SkRasterPipeline.h"
 #include "skcms.h"
 
 // TODO(mtklein): explain the logic of this file
diff --git a/src/core/SkColorSpaceXformSteps.h b/src/core/SkColorSpaceXformSteps.h
index ea05a76..1a15643 100644
--- a/src/core/SkColorSpaceXformSteps.h
+++ b/src/core/SkColorSpaceXformSteps.h
@@ -8,8 +8,8 @@
 #ifndef SkColorSpaceXformSteps_DEFINED
 #define SkColorSpaceXformSteps_DEFINED
 
-#include "SkColorSpace.h"
-#include "SkImageInfo.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkImageInfo.h"
 
 class SkRasterPipeline;
 
diff --git a/src/core/SkContourMeasure.cpp b/src/core/SkContourMeasure.cpp
index cd4dc93..70d68f9 100644
--- a/src/core/SkContourMeasure.cpp
+++ b/src/core/SkContourMeasure.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkContourMeasure.h"
-#include "SkPathMeasurePriv.h"
-#include "SkGeometry.h"
-#include "SkPath.h"
-#include "SkTSearch.h"
+#include "include/core/SkContourMeasure.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkTSearch.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkPathMeasurePriv.h"
 
 #define kMaxTValue  0x3FFFFFFF
 
diff --git a/src/core/SkConvertPixels.cpp b/src/core/SkConvertPixels.cpp
index 3805d3e..a13202f 100644
--- a/src/core/SkConvertPixels.cpp
+++ b/src/core/SkConvertPixels.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorData.h"
-#include "SkColorSpacePriv.h"
-#include "SkColorSpaceXformSteps.h"
-#include "SkConvertPixels.h"
-#include "SkHalf.h"
-#include "SkImageInfoPriv.h"
-#include "SkOpts.h"
-#include "SkRasterPipeline.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkHalf.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkColorSpaceXformSteps.h"
+#include "src/core/SkConvertPixels.h"
+#include "src/core/SkOpts.h"
+#include "src/core/SkRasterPipeline.h"
 
 static bool rect_memcpy(const SkImageInfo& dstInfo,       void* dstPixels, size_t dstRB,
                         const SkImageInfo& srcInfo, const void* srcPixels, size_t srcRB,
diff --git a/src/core/SkConvertPixels.h b/src/core/SkConvertPixels.h
index cfe81f4..99d6a01 100644
--- a/src/core/SkConvertPixels.h
+++ b/src/core/SkConvertPixels.h
@@ -8,8 +8,8 @@
 #ifndef SkConvertPixels_DEFINED
 #define SkConvertPixels_DEFINED
 
-#include "SkImageInfo.h"
-#include "SkTemplates.h"
+#include "include/core/SkImageInfo.h"
+#include "include/private/SkTemplates.h"
 
 class SkColorTable;
 
diff --git a/src/core/SkCoreBlitters.h b/src/core/SkCoreBlitters.h
index 0c0e9c7..3a6e587 100644
--- a/src/core/SkCoreBlitters.h
+++ b/src/core/SkCoreBlitters.h
@@ -8,12 +8,12 @@
 #ifndef SkCoreBlitters_DEFINED
 #define SkCoreBlitters_DEFINED
 
-#include "SkBitmapProcShader.h"
-#include "SkBlitter.h"
-#include "SkBlitRow.h"
-#include "SkPaint.h"
-#include "SkShaderBase.h"
-#include "SkXfermodePriv.h"
+#include "include/core/SkPaint.h"
+#include "src/core/SkBlitRow.h"
+#include "src/core/SkBlitter.h"
+#include "src/core/SkXfermodePriv.h"
+#include "src/shaders/SkBitmapProcShader.h"
+#include "src/shaders/SkShaderBase.h"
 
 class SkRasterBlitter : public SkBlitter {
 public:
diff --git a/src/core/SkCoverageModePriv.h b/src/core/SkCoverageModePriv.h
index e8b8939..09bfb5b 100644
--- a/src/core/SkCoverageModePriv.h
+++ b/src/core/SkCoverageModePriv.h
@@ -8,8 +8,8 @@
 #ifndef SkCoverageModePriv_DEFINED
 #define SkCoverageModePriv_DEFINED
 
-#include "SkBlendMode.h"
-#include "SkCoverageMode.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkCoverageMode.h"
 
 SkBlendMode SkUncorrelatedCoverageModeToBlendMode(SkCoverageMode);
 
diff --git a/src/core/SkCpu.cpp b/src/core/SkCpu.cpp
index cbef990..d319190 100644
--- a/src/core/SkCpu.cpp
+++ b/src/core/SkCpu.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkCpu.h"
-#include "SkOnce.h"
+#include "include/private/SkOnce.h"
+#include "src/core/SkCpu.h"
 
 #if defined(SK_CPU_X86)
     #if defined(SK_BUILD_FOR_WIN)
diff --git a/src/core/SkCpu.h b/src/core/SkCpu.h
index 8d2e4fb..d4a9cdc 100644
--- a/src/core/SkCpu.h
+++ b/src/core/SkCpu.h
@@ -8,7 +8,7 @@
 #ifndef SkCpu_DEFINED
 #define SkCpu_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 struct SkCpu {
     enum {
diff --git a/src/core/SkCubicClipper.cpp b/src/core/SkCubicClipper.cpp
index e4ec79e..b774f15 100644
--- a/src/core/SkCubicClipper.cpp
+++ b/src/core/SkCubicClipper.cpp
@@ -6,8 +6,8 @@
  */
 
 
-#include "SkCubicClipper.h"
-#include "SkGeometry.h"
+#include "src/core/SkCubicClipper.h"
+#include "src/core/SkGeometry.h"
 
 #include <utility>
 
diff --git a/src/core/SkCubicClipper.h b/src/core/SkCubicClipper.h
index f00c09a..a92a08d 100644
--- a/src/core/SkCubicClipper.h
+++ b/src/core/SkCubicClipper.h
@@ -9,8 +9,8 @@
 #ifndef SkCubicClipper_DEFINED
 #define SkCubicClipper_DEFINED
 
-#include "SkPoint.h"
-#include "SkRect.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
 
 /** This class is initialized with a clip rectangle, and then can be fed cubics,
     which must already be monotonic in Y.
diff --git a/src/core/SkCubicMap.cpp b/src/core/SkCubicMap.cpp
index 7656009..b6366d6 100644
--- a/src/core/SkCubicMap.cpp
+++ b/src/core/SkCubicMap.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkCubicMap.h"
-#include "SkNx.h"
+#include "include/core/SkCubicMap.h"
+#include "include/private/SkNx.h"
 
 //#define CUBICMAP_TRACK_MAX_ERROR
 
 #ifdef CUBICMAP_TRACK_MAX_ERROR
-#include "../../src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsCubic.h"
 #endif
 
 static float eval_poly3(float a, float b, float c, float d, float t) {
diff --git a/src/core/SkData.cpp b/src/core/SkData.cpp
index 04efb35..ef3f42e 100644
--- a/src/core/SkData.cpp
+++ b/src/core/SkData.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkData.h"
-#include "SkOSFile.h"
-#include "SkOnce.h"
-#include "SkReadBuffer.h"
-#include "SkStream.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkOnce.h"
+#include "src/core/SkOSFile.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 #include <new>
 
 SkData::SkData(const void* ptr, size_t size, ReleaseProc proc, void* context) {
diff --git a/src/core/SkDataTable.cpp b/src/core/SkDataTable.cpp
index e80ba8f..9a1d7bd 100644
--- a/src/core/SkDataTable.cpp
+++ b/src/core/SkDataTable.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkData.h"
-#include "SkDataTable.h"
-#include "SkOnce.h"
+#include "include/core/SkData.h"
+#include "include/core/SkDataTable.h"
+#include "include/private/SkOnce.h"
 
 static void malloc_freeproc(void* context) {
     sk_free(context);
diff --git a/src/core/SkDebug.cpp b/src/core/SkDebug.cpp
index 5d43281..b02ddf7 100644
--- a/src/core/SkDebug.cpp
+++ b/src/core/SkDebug.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if defined(SK_BUILD_FOR_GOOGLE3)
 void SkDebugfForDumpStackTrace(const char* data, void* unused) {
diff --git a/src/core/SkDeferredDisplayList.cpp b/src/core/SkDeferredDisplayList.cpp
index 50c86487..c4ce656 100644
--- a/src/core/SkDeferredDisplayList.cpp
+++ b/src/core/SkDeferredDisplayList.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkDeferredDisplayList.h"
+#include "include/private/SkDeferredDisplayList.h"
 
-#include "SkCanvas.h"
-#include "SkSurface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
 
 SkDeferredDisplayList::SkDeferredDisplayList(const SkSurfaceCharacterization& characterization,
                                              sk_sp<LazyProxyData> lazyProxyData)
diff --git a/src/core/SkDeferredDisplayListPriv.h b/src/core/SkDeferredDisplayListPriv.h
index 4675284..a23ab06 100644
--- a/src/core/SkDeferredDisplayListPriv.h
+++ b/src/core/SkDeferredDisplayListPriv.h
@@ -8,7 +8,7 @@
 #ifndef SkDeferredDisplayListPriv_DEFINED
 #define SkDeferredDisplayListPriv_DEFINED
 
-#include "SkDeferredDisplayList.h"
+#include "include/private/SkDeferredDisplayList.h"
 
 /** Class that adds methods to SkDeferredDisplayList that are only intended for use internal to Skia.
     This class is purely a privileged window into SkDeferredDisplayList. It should never have
diff --git a/src/core/SkDeferredDisplayListRecorder.cpp b/src/core/SkDeferredDisplayListRecorder.cpp
index 6bf3390..4925edd 100644
--- a/src/core/SkDeferredDisplayListRecorder.cpp
+++ b/src/core/SkDeferredDisplayListRecorder.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkDeferredDisplayListRecorder.h"
-#include "SkMessageBus.h"
-#include "SkDeferredDisplayList.h"
-#include "SkSurface.h"
-#include "SkSurfaceCharacterization.h"
+#include "include/core/SkDeferredDisplayListRecorder.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkSurfaceCharacterization.h"
+#include "include/private/SkDeferredDisplayList.h"
+#include "include/private/SkMessageBus.h"
 
 #if !SK_SUPPORT_GPU
 SkDeferredDisplayListRecorder::SkDeferredDisplayListRecorder(const SkSurfaceCharacterization&) {}
@@ -58,17 +58,17 @@
 
 #else
 
-#include "GrContextPriv.h"
-#include "GrProxyProvider.h"
-#include "GrRenderTargetContext.h"
-#include "GrTexture.h"
-#include "SkGr.h"
-#include "SkImage_Gpu.h"
-#include "SkImage_GpuYUVA.h"
-#include "SkMakeUnique.h"
-#include "SkPromiseImageTexture.h"
-#include "SkSurface_Gpu.h"
-#include "SkYUVASizeInfo.h"
+#include "include/core/SkPromiseImageTexture.h"
+#include "include/core/SkYUVASizeInfo.h"
+#include "include/gpu/GrTexture.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/SkGr.h"
+#include "src/image/SkImage_Gpu.h"
+#include "src/image/SkImage_GpuYUVA.h"
+#include "src/image/SkSurface_Gpu.h"
 
 SkDeferredDisplayListRecorder::SkDeferredDisplayListRecorder(const SkSurfaceCharacterization& c)
         : fCharacterization(c) {
diff --git a/src/core/SkDeque.cpp b/src/core/SkDeque.cpp
index d772a4f..6df4cc0 100644
--- a/src/core/SkDeque.cpp
+++ b/src/core/SkDeque.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkDeque.h"
-#include "SkMalloc.h"
+#include "include/core/SkDeque.h"
+#include "include/private/SkMalloc.h"
 
 struct SkDeque::Block {
     Block*  fNext;
diff --git a/src/core/SkDescriptor.cpp b/src/core/SkDescriptor.cpp
index e71471b..96a5157 100644
--- a/src/core/SkDescriptor.cpp
+++ b/src/core/SkDescriptor.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkDescriptor.h"
+#include "src/core/SkDescriptor.h"
 
 #include <new>
 
-#include "SkOpts.h"
-#include "SkTo.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkOpts.h"
 
 std::unique_ptr<SkDescriptor> SkDescriptor::Alloc(size_t length) {
     SkASSERT(SkAlign4(length) == length);
diff --git a/src/core/SkDescriptor.h b/src/core/SkDescriptor.h
index 88ec062..d6cc709 100644
--- a/src/core/SkDescriptor.h
+++ b/src/core/SkDescriptor.h
@@ -10,9 +10,9 @@
 
 #include <memory>
 
-#include "SkMacros.h"
-#include "SkNoncopyable.h"
-#include "SkScalerContext.h"
+#include "include/private/SkMacros.h"
+#include "include/private/SkNoncopyable.h"
+#include "src/core/SkScalerContext.h"
 
 class SkDescriptor : SkNoncopyable {
 public:
diff --git a/src/core/SkDevice.cpp b/src/core/SkDevice.cpp
index a52bd84..506e7d3 100644
--- a/src/core/SkDevice.cpp
+++ b/src/core/SkDevice.cpp
@@ -5,32 +5,32 @@
  * found in the LICENSE file.
  */
 
-#include "SkDevice.h"
+#include "src/core/SkDevice.h"
 
-#include "SkColorFilter.h"
-#include "SkDraw.h"
-#include "SkDrawable.h"
-#include "SkGlyphRun.h"
-#include "SkImageFilter.h"
-#include "SkImageFilterCache.h"
-#include "SkImagePriv.h"
-#include "SkImage_Base.h"
-#include "SkLatticeIter.h"
-#include "SkLocalMatrixShader.h"
-#include "SkMakeUnique.h"
-#include "SkMatrixPriv.h"
-#include "SkPatchUtils.h"
-#include "SkPathMeasure.h"
-#include "SkPathPriv.h"
-#include "SkRSXform.h"
-#include "SkRasterClip.h"
-#include "SkShader.h"
-#include "SkSpecialImage.h"
-#include "SkTLazy.h"
-#include "SkTextBlobPriv.h"
-#include "SkTo.h"
-#include "SkUtils.h"
-#include "SkVertices.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkDrawable.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkPathMeasure.h"
+#include "include/core/SkRSXform.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkVertices.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkGlyphRun.h"
+#include "src/core/SkImageFilterCache.h"
+#include "src/core/SkImagePriv.h"
+#include "src/core/SkLatticeIter.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkMatrixPriv.h"
+#include "src/core/SkPathPriv.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkTLazy.h"
+#include "src/core/SkTextBlobPriv.h"
+#include "src/core/SkUtils.h"
+#include "src/image/SkImage_Base.h"
+#include "src/shaders/SkLocalMatrixShader.h"
+#include "src/utils/SkPatchUtils.h"
 
 SkBaseDevice::SkBaseDevice(const SkImageInfo& info, const SkSurfaceProps& surfaceProps)
     : fInfo(info)
@@ -363,7 +363,7 @@
 
 //////////////////////////////////////////////////////////////////////////////////////////
 
-#include "SkUtils.h"
+#include "src/core/SkUtils.h"
 
 void SkBaseDevice::drawGlyphRunRSXform(const SkFont& font, const SkGlyphID glyphs[],
                                        const SkRSXform xform[], int count, SkPoint origin,
diff --git a/src/core/SkDevice.h b/src/core/SkDevice.h
index 5a0f246..74d8f0d 100644
--- a/src/core/SkDevice.h
+++ b/src/core/SkDevice.h
@@ -8,11 +8,11 @@
 #ifndef SkDevice_DEFINED
 #define SkDevice_DEFINED
 
-#include "SkRefCnt.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkRegion.h"
-#include "SkSurfaceProps.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkSurfaceProps.h"
 
 class SkBitmap;
 struct SkDrawShadowRec;
diff --git a/src/core/SkDiscardableMemory.h b/src/core/SkDiscardableMemory.h
index 7bd8695..613dbd7 100644
--- a/src/core/SkDiscardableMemory.h
+++ b/src/core/SkDiscardableMemory.h
@@ -8,8 +8,8 @@
 #ifndef SkDiscardableMemory_DEFINED
 #define SkDiscardableMemory_DEFINED
 
-#include "SkRefCnt.h"
-#include "SkTypes.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypes.h"
 
 /**
  *  Interface for discardable memory. Implementation is provided by the
diff --git a/src/core/SkDistanceFieldGen.cpp b/src/core/SkDistanceFieldGen.cpp
index dc32f5b..9471e1c 100644
--- a/src/core/SkDistanceFieldGen.cpp
+++ b/src/core/SkDistanceFieldGen.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkAutoMalloc.h"
-#include "SkColorData.h"
-#include "SkDistanceFieldGen.h"
-#include "SkMask.h"
-#include "SkPointPriv.h"
-#include "SkTemplates.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkDistanceFieldGen.h"
+#include "src/core/SkMask.h"
+#include "src/core/SkPointPriv.h"
 
 #include <utility>
 
diff --git a/src/core/SkDistanceFieldGen.h b/src/core/SkDistanceFieldGen.h
index 75612cb..64458db 100644
--- a/src/core/SkDistanceFieldGen.h
+++ b/src/core/SkDistanceFieldGen.h
@@ -7,7 +7,7 @@
 #ifndef SkDistanceFieldGen_DEFINED
 #define SkDistanceFieldGen_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 // the max magnitude for the distance field
 // distance values are limited to the range (-SK_DistanceFieldMagnitude, SK_DistanceFieldMagnitude]
diff --git a/src/core/SkDocument.cpp b/src/core/SkDocument.cpp
index cd5aa5a..30c94d8 100644
--- a/src/core/SkDocument.cpp
+++ b/src/core/SkDocument.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkDocument.h"
-#include "SkStream.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkDocument.h"
+#include "include/core/SkStream.h"
 
 SkDocument::SkDocument(SkWStream* stream) : fStream(stream), fState(kBetweenPages_State) {}
 
diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp
index 90bdf47..5d225fd 100644
--- a/src/core/SkDraw.cpp
+++ b/src/core/SkDraw.cpp
@@ -5,35 +5,35 @@
  * found in the LICENSE file.
  */
 
-#include "SkDraw.h"
+#include "src/core/SkDraw.h"
 
-#include "SkArenaAlloc.h"
-#include "SkAutoBlitterChoose.h"
-#include "SkBlendModePriv.h"
-#include "SkBlitter.h"
-#include "SkCanvas.h"
-#include "SkColorData.h"
-#include "SkDevice.h"
-#include "SkDrawProcs.h"
-#include "SkMaskFilterBase.h"
-#include "SkMacros.h"
-#include "SkMatrix.h"
-#include "SkMatrixUtils.h"
-#include "SkPaint.h"
-#include "SkPathEffect.h"
-#include "SkPathPriv.h"
-#include "SkRRect.h"
-#include "SkRasterClip.h"
-#include "SkRectPriv.h"
-#include "SkScan.h"
-#include "SkShader.h"
-#include "SkString.h"
-#include "SkStroke.h"
-#include "SkStrokeRec.h"
-#include "SkTLazy.h"
-#include "SkTemplates.h"
-#include "SkTo.h"
-#include "SkUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkMacros.h"
+#include "include/private/SkTemplates.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkAutoBlitterChoose.h"
+#include "src/core/SkBlendModePriv.h"
+#include "src/core/SkBlitter.h"
+#include "src/core/SkDevice.h"
+#include "src/core/SkDrawProcs.h"
+#include "src/core/SkMaskFilterBase.h"
+#include "src/core/SkMatrixUtils.h"
+#include "src/core/SkPathPriv.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkRectPriv.h"
+#include "src/core/SkScan.h"
+#include "src/core/SkStroke.h"
+#include "src/core/SkTLazy.h"
+#include "src/core/SkUtils.h"
 
 #include <utility>
 
@@ -1201,10 +1201,10 @@
 
 ////////////////////////////////////////////////////////////////////////////////////////////////
 
-#include "SkPath.h"
-#include "SkDraw.h"
-#include "SkRegion.h"
-#include "SkBlitter.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "src/core/SkBlitter.h"
+#include "src/core/SkDraw.h"
 
 bool SkDraw::ComputeMaskBounds(const SkRect& devPathBounds, const SkIRect* clipBounds,
                                const SkMaskFilter* filter, const SkMatrix* filterMatrix,
diff --git a/src/core/SkDraw.h b/src/core/SkDraw.h
index a100152..a44c18d 100644
--- a/src/core/SkDraw.h
+++ b/src/core/SkDraw.h
@@ -10,13 +10,13 @@
 #ifndef SkDraw_DEFINED
 #define SkDraw_DEFINED
 
-#include "SkCanvas.h"
-#include "SkGlyphRunPainter.h"
-#include "SkMask.h"
-#include "SkPaint.h"
-#include "SkPixmap.h"
-#include "SkStrokeRec.h"
-#include "SkVertices.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPixmap.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/core/SkVertices.h"
+#include "src/core/SkGlyphRunPainter.h"
+#include "src/core/SkMask.h"
 
 class SkBitmap;
 class SkClipStack;
diff --git a/src/core/SkDrawLooper.cpp b/src/core/SkDrawLooper.cpp
index db6bd54..bfe89b3 100644
--- a/src/core/SkDrawLooper.cpp
+++ b/src/core/SkDrawLooper.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkArenaAlloc.h"
-#include "SkDrawLooper.h"
-#include "SkCanvas.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkRect.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkDrawLooper.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkRect.h"
+#include "include/private/SkArenaAlloc.h"
 
 bool SkDrawLooper::canComputeFastBounds(const SkPaint& paint) const {
     SkCanvas canvas;
diff --git a/src/core/SkDrawProcs.h b/src/core/SkDrawProcs.h
index 82fb699..c07e181 100644
--- a/src/core/SkDrawProcs.h
+++ b/src/core/SkDrawProcs.h
@@ -8,8 +8,8 @@
 #ifndef SkDrawProcs_DEFINED
 #define SkDrawProcs_DEFINED
 
-#include "SkDraw.h"
-#include "SkGlyph.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkGlyph.h"
 
 bool SkDrawTreatAAStrokeAsHairline(SkScalar strokeWidth, const SkMatrix&,
                                    SkScalar* coverage);
diff --git a/src/core/SkDrawShadowInfo.cpp b/src/core/SkDrawShadowInfo.cpp
index 9d53509..8912046 100644
--- a/src/core/SkDrawShadowInfo.cpp
+++ b/src/core/SkDrawShadowInfo.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkDrawShadowInfo.h"
-#include "SkMatrix.h"
-#include "SkPath.h"
-#include "SkPolyUtils.h"
-#include "SkRect.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRect.h"
+#include "src/core/SkDrawShadowInfo.h"
+#include "src/utils/SkPolyUtils.h"
 
 namespace SkDrawShadowMetrics {
 
diff --git a/src/core/SkDrawShadowInfo.h b/src/core/SkDrawShadowInfo.h
index c9b06f3..c89c8f2 100644
--- a/src/core/SkDrawShadowInfo.h
+++ b/src/core/SkDrawShadowInfo.h
@@ -8,9 +8,9 @@
 #ifndef SkDrawShadowInfo_DEFINED
 #define SkDrawShadowInfo_DEFINED
 
-#include "SkColor.h"
-#include "SkPoint.h"
-#include "SkPoint3.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkPoint3.h"
 
 class SkMatrix;
 class SkPath;
diff --git a/src/core/SkDraw_text.cpp b/src/core/SkDraw_text.cpp
index 5f2ed3b..8e7037d 100644
--- a/src/core/SkDraw_text.cpp
+++ b/src/core/SkDraw_text.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkDraw.h"
-#include "SkFontPriv.h"
-#include "SkPaintPriv.h"
-#include "SkRasterClip.h"
-#include "SkScalerContext.h"
-#include "SkStrike.h"
-#include "SkUtils.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkFontPriv.h"
+#include "src/core/SkPaintPriv.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkScalerContext.h"
+#include "src/core/SkStrike.h"
+#include "src/core/SkUtils.h"
 
 bool SkDraw::ShouldDrawTextAsPaths(const SkFont& font, const SkPaint& paint,
                                    const SkMatrix& ctm, SkScalar sizeLimit) {
diff --git a/src/core/SkDraw_vertices.cpp b/src/core/SkDraw_vertices.cpp
index 1190cc1..939757c 100644
--- a/src/core/SkDraw_vertices.cpp
+++ b/src/core/SkDraw_vertices.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkArenaAlloc.h"
-#include "SkAutoBlitterChoose.h"
-#include "SkComposeShader.h"
-#include "SkConvertPixels.h"
-#include "SkCoreBlitters.h"
-#include "SkDraw.h"
-#include "SkNx.h"
-#include "SkRasterClip.h"
-#include "SkRasterPipeline.h"
-#include "SkScan.h"
-#include "SkShaderBase.h"
-#include "SkString.h"
-#include "SkVertState.h"
+#include "include/core/SkString.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkNx.h"
+#include "src/core/SkAutoBlitterChoose.h"
+#include "src/core/SkConvertPixels.h"
+#include "src/core/SkCoreBlitters.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/core/SkScan.h"
+#include "src/core/SkVertState.h"
+#include "src/shaders/SkComposeShader.h"
+#include "src/shaders/SkShaderBase.h"
 
 struct Matrix43 {
     float fMat[12];    // column major
diff --git a/src/core/SkDrawable.cpp b/src/core/SkDrawable.cpp
index 034bacc..62b0272 100644
--- a/src/core/SkDrawable.cpp
+++ b/src/core/SkDrawable.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkDrawable.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkDrawable.h"
 #include <atomic>
 
 static int32_t next_generation_id() {
@@ -68,7 +68,7 @@
 
 /////////////////////////////////////////////////////////////////////////////////////////
 
-#include "SkPictureRecorder.h"
+#include "include/core/SkPictureRecorder.h"
 
 SkPicture* SkDrawable::onNewPictureSnapshot() {
     SkPictureRecorder recorder;
diff --git a/src/core/SkEdge.cpp b/src/core/SkEdge.cpp
index 8a9e798..0aa3b61 100644
--- a/src/core/SkEdge.cpp
+++ b/src/core/SkEdge.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkEdge.h"
+#include "src/core/SkEdge.h"
 
-#include "SkFDot6.h"
-#include "SkMathPriv.h"
-#include "SkTo.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkFDot6.h"
+#include "src/core/SkMathPriv.h"
 
 #include <utility>
 
diff --git a/src/core/SkEdge.h b/src/core/SkEdge.h
index cc35baa..c0c26ca 100644
--- a/src/core/SkEdge.h
+++ b/src/core/SkEdge.h
@@ -8,10 +8,10 @@
 #ifndef SkEdge_DEFINED
 #define SkEdge_DEFINED
 
-#include "SkFDot6.h"
-#include "SkMath.h"
-#include "SkRect.h"
-#include "SkTo.h"
+#include "include/core/SkMath.h"
+#include "include/core/SkRect.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkFDot6.h"
 
 #include <utility>
 
diff --git a/src/core/SkEdgeBuilder.cpp b/src/core/SkEdgeBuilder.cpp
index a643a6c..bc4b68c 100644
--- a/src/core/SkEdgeBuilder.cpp
+++ b/src/core/SkEdgeBuilder.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkAnalyticEdge.h"
-#include "SkEdge.h"
-#include "SkEdgeBuilder.h"
-#include "SkEdgeClipper.h"
-#include "SkGeometry.h"
-#include "SkLineClipper.h"
-#include "SkPath.h"
-#include "SkPathPriv.h"
-#include "SkSafeMath.h"
-#include "SkTo.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkAnalyticEdge.h"
+#include "src/core/SkEdge.h"
+#include "src/core/SkEdgeBuilder.h"
+#include "src/core/SkEdgeClipper.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkLineClipper.h"
+#include "src/core/SkPathPriv.h"
+#include "src/core/SkSafeMath.h"
 
 SkEdgeBuilder::Combine SkBasicEdgeBuilder::combineVertical(const SkEdge* edge, SkEdge* last) {
     if (last->fCurveCount || last->fDX || edge->fX != last->fX) {
diff --git a/src/core/SkEdgeBuilder.h b/src/core/SkEdgeBuilder.h
index 5ab6942..96b4e15 100644
--- a/src/core/SkEdgeBuilder.h
+++ b/src/core/SkEdgeBuilder.h
@@ -7,11 +7,11 @@
 #ifndef SkEdgeBuilder_DEFINED
 #define SkEdgeBuilder_DEFINED
 
-#include "SkAnalyticEdge.h"
-#include "SkArenaAlloc.h"
-#include "SkEdge.h"
-#include "SkRect.h"
-#include "SkTDArray.h"
+#include "include/core/SkRect.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkTDArray.h"
+#include "src/core/SkAnalyticEdge.h"
+#include "src/core/SkEdge.h"
 
 class SkPath;
 
diff --git a/src/core/SkEdgeClipper.cpp b/src/core/SkEdgeClipper.cpp
index cbb0327..8635795 100644
--- a/src/core/SkEdgeClipper.cpp
+++ b/src/core/SkEdgeClipper.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkEdgeClipper.h"
-#include "SkGeometry.h"
-#include "SkLineClipper.h"
-#include "SkMacros.h"
+#include "include/private/SkMacros.h"
+#include "src/core/SkEdgeClipper.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkLineClipper.h"
 
 #include <utility>
 
diff --git a/src/core/SkEdgeClipper.h b/src/core/SkEdgeClipper.h
index 1a12c1e..2718ed7 100644
--- a/src/core/SkEdgeClipper.h
+++ b/src/core/SkEdgeClipper.h
@@ -9,7 +9,7 @@
 #ifndef SkEdgeClipper_DEFINED
 #define SkEdgeClipper_DEFINED
 
-#include "SkPath.h"
+#include "include/core/SkPath.h"
 
 /** This is basically an iterator. It is initialized with an edge and a clip,
     and then next() is called until it returns kDone_Verb.
diff --git a/src/core/SkEffectPriv.h b/src/core/SkEffectPriv.h
index 7dbd9c5..965435e 100644
--- a/src/core/SkEffectPriv.h
+++ b/src/core/SkEffectPriv.h
@@ -8,7 +8,7 @@
 #ifndef SkEffectPriv_DEFINED
 #define SkEffectPriv_DEFINED
 
-#include "SkImageInfo.h"
+#include "include/core/SkImageInfo.h"
 
 class SkArenaAlloc;
 class SkColorSpace;
diff --git a/src/core/SkEndian.h b/src/core/SkEndian.h
index 79c62ca..04b10d7 100644
--- a/src/core/SkEndian.h
+++ b/src/core/SkEndian.h
@@ -8,7 +8,7 @@
 #ifndef SkEndian_DEFINED
 #define SkEndian_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 /** \file SkEndian.h
 
diff --git a/src/core/SkExecutor.cpp b/src/core/SkExecutor.cpp
index df8695a..7cef704 100644
--- a/src/core/SkExecutor.cpp
+++ b/src/core/SkExecutor.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "SkExecutor.h"
-#include "SkMakeUnique.h"
-#include "SkMutex.h"
-#include "SkSemaphore.h"
-#include "SkSpinlock.h"
-#include "SkTArray.h"
+#include "include/core/SkExecutor.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkSemaphore.h"
+#include "include/private/SkSpinlock.h"
+#include "include/private/SkTArray.h"
+#include "src/core/SkMakeUnique.h"
 #include <deque>
 #include <thread>
 
 #if defined(SK_BUILD_FOR_WIN)
-    #include "SkLeanWindows.h"
+    #include "include/private/SkLeanWindows.h"
     static int num_cores() {
         SYSTEM_INFO sysinfo;
         GetNativeSystemInfo(&sysinfo);
diff --git a/src/core/SkFDot6.h b/src/core/SkFDot6.h
index 4e949c0..037a434 100644
--- a/src/core/SkFDot6.h
+++ b/src/core/SkFDot6.h
@@ -8,10 +8,10 @@
 #ifndef SkFDot6_DEFINED
 #define SkFDot6_DEFINED
 
-#include "SkFixed.h"
-#include "SkMath.h"
-#include "SkScalar.h"
-#include "SkTo.h"
+#include "include/core/SkMath.h"
+#include "include/core/SkScalar.h"
+#include "include/private/SkFixed.h"
+#include "include/private/SkTo.h"
 
 typedef int32_t SkFDot6;
 
diff --git a/src/core/SkFixed15.h b/src/core/SkFixed15.h
index 509febc..d50337f 100644
--- a/src/core/SkFixed15.h
+++ b/src/core/SkFixed15.h
@@ -8,7 +8,7 @@
 #ifndef SkFixed15_DEFINED
 #define SkFixed15_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 // SkFixed15 is a fixed point value that represents values in [0,1] as [0x0000, 0x8000].
 // This mapping allows us to implement most operations in tightly packed 16-bit SIMD,
diff --git a/src/core/SkFlattenable.cpp b/src/core/SkFlattenable.cpp
index 5980bda..9cff53af 100644
--- a/src/core/SkFlattenable.cpp
+++ b/src/core/SkFlattenable.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkFlattenable.h"
-#include "SkPtrRecorder.h"
-#include "SkReadBuffer.h"
+#include "include/core/SkFlattenable.h"
+#include "src/core/SkPtrRecorder.h"
+#include "src/core/SkReadBuffer.h"
 
 #include <algorithm>
 
diff --git a/src/core/SkFont.cpp b/src/core/SkFont.cpp
index 29c8229..ca933bc 100644
--- a/src/core/SkFont.cpp
+++ b/src/core/SkFont.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkDraw.h"
-#include "SkFontPriv.h"
-#include "SkPaint.h"
-#include "SkPaintDefaults.h"
-#include "SkPath.h"
-#include "SkScalerContext.h"
-#include "SkStrike.h"
-#include "SkStrikeCache.h"
-#include "SkTo.h"
-#include "SkTLazy.h"
-#include "SkTypeface.h"
-#include "SkUTF.h"
-#include "SkUtils.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkFontPriv.h"
+#include "src/core/SkPaintDefaults.h"
+#include "src/core/SkScalerContext.h"
+#include "src/core/SkStrike.h"
+#include "src/core/SkStrikeCache.h"
+#include "src/core/SkTLazy.h"
+#include "src/core/SkUtils.h"
+#include "src/utils/SkUTF.h"
 
 #define kDefault_Size       SkPaintDefaults_TextSize
 #define kDefault_Flags      0
@@ -493,8 +493,8 @@
 }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 
 // packed int at the beginning of the serialized font:
 //
diff --git a/src/core/SkFontDescriptor.cpp b/src/core/SkFontDescriptor.cpp
index 9b9968a..c47781e 100644
--- a/src/core/SkFontDescriptor.cpp
+++ b/src/core/SkFontDescriptor.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontDescriptor.h"
-#include "SkMakeUnique.h"
-#include "SkStream.h"
-#include "SkData.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/core/SkMakeUnique.h"
 
 enum {
     kInvalid        = 0x00,
diff --git a/src/core/SkFontDescriptor.h b/src/core/SkFontDescriptor.h
index 5faa362..cfadc64 100644
--- a/src/core/SkFontDescriptor.h
+++ b/src/core/SkFontDescriptor.h
@@ -8,10 +8,10 @@
 #ifndef SkFontDescriptor_DEFINED
 #define SkFontDescriptor_DEFINED
 
-#include "SkFixed.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkTypeface.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkFixed.h"
 
 class SkFontData {
 public:
diff --git a/src/core/SkFontLCDConfig.cpp b/src/core/SkFontLCDConfig.cpp
index 3d1f35b..f902e2c 100644
--- a/src/core/SkFontLCDConfig.cpp
+++ b/src/core/SkFontLCDConfig.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontLCDConfig.h"
+#include "include/core/SkFontLCDConfig.h"
 
 static SkFontLCDConfig::LCDOrientation gLCDOrientation = SkFontLCDConfig::kHorizontal_LCDOrientation;
 static SkFontLCDConfig::LCDOrder gLCDOrder = SkFontLCDConfig::kRGB_LCDOrder;
diff --git a/src/core/SkFontMgr.cpp b/src/core/SkFontMgr.cpp
index 4e64de1..786e6a8 100644
--- a/src/core/SkFontMgr.cpp
+++ b/src/core/SkFontMgr.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontDescriptor.h"
-#include "SkFontMgr.h"
-#include "SkOnce.h"
-#include "SkStream.h"
-#include "SkTypes.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkOnce.h"
+#include "src/core/SkFontDescriptor.h"
 
 class SkFontStyle;
 class SkTypeface;
diff --git a/src/core/SkFontMgrPriv.h b/src/core/SkFontMgrPriv.h
index ba37015..40cf264 100644
--- a/src/core/SkFontMgrPriv.h
+++ b/src/core/SkFontMgrPriv.h
@@ -7,7 +7,7 @@
 #ifndef SkFontMgrPriv_DEFINED
 #define SkFontMgrPriv_DEFINED
 
-#include "SkFontMgr.h"
+#include "include/core/SkFontMgr.h"
 
 extern sk_sp<SkFontMgr> (*gSkFontMgr_DefaultFactory)();
 
diff --git a/src/core/SkFontPriv.cpp b/src/core/SkFontPriv.cpp
index 7b21198..5d13c4f 100644
--- a/src/core/SkFontPriv.cpp
+++ b/src/core/SkFontPriv.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontPriv.h"
-#include "SkGraphics.h"
-#include "SkMatrix.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkMatrix.h"
+#include "src/core/SkFontPriv.h"
 
 static SkScalar mag2(SkScalar x, SkScalar y) {
     return x * x + y * y;
diff --git a/src/core/SkFontPriv.h b/src/core/SkFontPriv.h
index db0f48a..2e83f70 100644
--- a/src/core/SkFontPriv.h
+++ b/src/core/SkFontPriv.h
@@ -8,9 +8,9 @@
 #ifndef SkFontPriv_DEFINED
 #define SkFontPriv_DEFINED
 
-#include "SkFont.h"
-#include "SkMatrix.h"
-#include "SkTypeface.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkTypeface.h"
 
 class SkReadBuffer;
 class SkWriteBuffer;
diff --git a/src/core/SkFontStream.cpp b/src/core/SkFontStream.cpp
index e9f23f9..54c8cab 100644
--- a/src/core/SkFontStream.cpp
+++ b/src/core/SkFontStream.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkAutoMalloc.h"
-#include "SkEndian.h"
-#include "SkFontStream.h"
-#include "SkStream.h"
+#include "include/core/SkStream.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkEndian.h"
+#include "src/core/SkFontStream.h"
 
 struct SkSFNTHeader {
     uint32_t    fVersion;
diff --git a/src/core/SkFontStream.h b/src/core/SkFontStream.h
index 0a2322f..57f0e85 100644
--- a/src/core/SkFontStream.h
+++ b/src/core/SkFontStream.h
@@ -10,7 +10,7 @@
 
 class SkStream;
 
-#include "SkTypeface.h"
+#include "include/core/SkTypeface.h"
 
 class SkFontStream {
 public:
diff --git a/src/core/SkGaussFilter.cpp b/src/core/SkGaussFilter.cpp
index 73a35ec..e80092e 100644
--- a/src/core/SkGaussFilter.cpp
+++ b/src/core/SkGaussFilter.cpp
@@ -6,9 +6,9 @@
  */
 
 
-#include "SkFloatingPoint.h"
-#include "SkGaussFilter.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkFloatingPoint.h"
+#include "src/core/SkGaussFilter.h"
 #include <cmath>
 
 // The value when we can stop expanding the filter. The spec implies that 3% is acceptable, but
diff --git a/src/core/SkGeometry.cpp b/src/core/SkGeometry.cpp
index b6c3a08..af2a7a4 100644
--- a/src/core/SkGeometry.cpp
+++ b/src/core/SkGeometry.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkGeometry.h"
-#include "SkMatrix.h"
-#include "SkNx.h"
-#include "SkPoint3.h"
-#include "SkPointPriv.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPoint3.h"
+#include "include/private/SkNx.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkPointPriv.h"
 
 #include <utility>
 
@@ -936,7 +936,7 @@
     return -1;
 }
 
-#include "../pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsCubic.h"
 
 typedef int (SkDCubic::*InterceptProc)(double intercept, double roots[3]) const;
 
diff --git a/src/core/SkGeometry.h b/src/core/SkGeometry.h
index f7828dc..6698ede 100644
--- a/src/core/SkGeometry.h
+++ b/src/core/SkGeometry.h
@@ -8,8 +8,8 @@
 #ifndef SkGeometry_DEFINED
 #define SkGeometry_DEFINED
 
-#include "SkMatrix.h"
-#include "SkNx.h"
+#include "include/core/SkMatrix.h"
+#include "include/private/SkNx.h"
 
 static inline Sk2s from_point(const SkPoint& point) {
     return Sk2s::Load(&point);
@@ -405,7 +405,7 @@
 
 }
 
-#include "SkTemplates.h"
+#include "include/private/SkTemplates.h"
 
 /**
  *  Help class to allocate storage for approximating a conic with N quads.
diff --git a/src/core/SkGlobalInitialization_core.cpp b/src/core/SkGlobalInitialization_core.cpp
index 7145796..0c60c91 100644
--- a/src/core/SkGlobalInitialization_core.cpp
+++ b/src/core/SkGlobalInitialization_core.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkFlattenable.h"
-#include "SkOnce.h"
+#include "include/core/SkFlattenable.h"
+#include "include/private/SkOnce.h"
 
 void SkFlattenable::RegisterFlattenablesIfNeeded() {
     static SkOnce once;
diff --git a/src/core/SkGlyph.cpp b/src/core/SkGlyph.cpp
index 075275f..f151a6d 100644
--- a/src/core/SkGlyph.cpp
+++ b/src/core/SkGlyph.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkGlyph.h"
+#include "src/core/SkGlyph.h"
 
-#include "SkArenaAlloc.h"
-#include "SkMakeUnique.h"
-#include "SkScalerContext.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkScalerContext.h"
 
 SkMask SkGlyph::mask() const {
     // getMetrics had to be called.
diff --git a/src/core/SkGlyph.h b/src/core/SkGlyph.h
index 3d4cc9b..1b931a9 100644
--- a/src/core/SkGlyph.h
+++ b/src/core/SkGlyph.h
@@ -8,12 +8,12 @@
 #ifndef SkGlyph_DEFINED
 #define SkGlyph_DEFINED
 
-#include "SkChecksum.h"
-#include "SkFixed.h"
-#include "SkMask.h"
-#include "SkPath.h"
-#include "SkTo.h"
-#include "SkTypes.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkChecksum.h"
+#include "include/private/SkFixed.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkMask.h"
 
 class SkArenaAlloc;
 class SkStrike;
diff --git a/src/core/SkGlyphRun.cpp b/src/core/SkGlyphRun.cpp
index 821e029..65a1205 100644
--- a/src/core/SkGlyphRun.cpp
+++ b/src/core/SkGlyphRun.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "SkGlyphRun.h"
+#include "src/core/SkGlyphRun.h"
 
-#include "SkDevice.h"
-#include "SkFont.h"
-#include "SkFontPriv.h"
-#include "SkPaint.h"
-#include "SkStrike.h"
-#include "SkStrikeCache.h"
-#include "SkTextBlob.h"
-#include "SkTextBlobPriv.h"
-#include "SkTo.h"
-#include "SkUtils.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkTextBlob.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkDevice.h"
+#include "src/core/SkFontPriv.h"
+#include "src/core/SkStrike.h"
+#include "src/core/SkStrikeCache.h"
+#include "src/core/SkTextBlobPriv.h"
+#include "src/core/SkUtils.h"
 
 // -- SkGlyphRun -----------------------------------------------------------------------------------
 SkGlyphRun::SkGlyphRun(const SkFont& font,
diff --git a/src/core/SkGlyphRun.h b/src/core/SkGlyphRun.h
index f30a311..0c31e25 100644
--- a/src/core/SkGlyphRun.h
+++ b/src/core/SkGlyphRun.h
@@ -11,12 +11,12 @@
 #include <functional>
 #include <vector>
 
-#include "SkFont.h"
-#include "SkPaint.h"
-#include "SkPoint.h"
-#include "SkSpan.h"
-#include "SkTemplates.h"
-#include "SkTypes.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkSpan.h"
 
 class SkBaseDevice;
 class SkGlyph;
diff --git a/src/core/SkGlyphRunPainter.cpp b/src/core/SkGlyphRunPainter.cpp
index 03b1734..d4e446f 100644
--- a/src/core/SkGlyphRunPainter.cpp
+++ b/src/core/SkGlyphRunPainter.cpp
@@ -5,35 +5,35 @@
  * found in the LICENSE file.
  */
 
-#include "SkGlyphRunPainter.h"
+#include "src/core/SkGlyphRunPainter.h"
 
 #if SK_SUPPORT_GPU
-#include "GrCaps.h"
-#include "GrColorSpaceInfo.h"
-#include "GrContextPriv.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "SkGr.h"
-#include "text/GrTextBlobCache.h"
-#include "text/GrTextContext.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrColorSpaceInfo.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/text/GrTextBlobCache.h"
+#include "src/gpu/text/GrTextContext.h"
 #endif
 
-#include "SkColorFilter.h"
-#include "SkDevice.h"
-#include "SkDistanceFieldGen.h"
-#include "SkDraw.h"
-#include "SkFontPriv.h"
-#include "SkMaskFilter.h"
-#include "SkPaintPriv.h"
-#include "SkPathEffect.h"
-#include "SkRasterClip.h"
-#include "SkRemoteGlyphCacheImpl.h"
-#include "SkStrikeInterface.h"
-#include "SkStrike.h"
-#include "SkStrikeCache.h"
-#include "SkTDArray.h"
-#include "SkTraceEvent.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPathEffect.h"
+#include "include/private/SkTDArray.h"
+#include "src/core/SkDevice.h"
+#include "src/core/SkDistanceFieldGen.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkFontPriv.h"
+#include "src/core/SkPaintPriv.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkRemoteGlyphCacheImpl.h"
+#include "src/core/SkStrike.h"
+#include "src/core/SkStrikeCache.h"
+#include "src/core/SkStrikeInterface.h"
+#include "src/core/SkTraceEvent.h"
 
 // -- SkGlyphCacheCommon ---------------------------------------------------------------------------
 
@@ -974,8 +974,8 @@
 
 #if GR_TEST_UTILS
 
-#include "GrRenderTargetContext.h"
-#include "GrRecordingContextPriv.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
 
 std::unique_ptr<GrDrawOp> GrTextContext::createOp_TestingOnly(GrRecordingContext* context,
                                                               GrTextContext* textContext,
diff --git a/src/core/SkGlyphRunPainter.h b/src/core/SkGlyphRunPainter.h
index 409f40a..a8e1cc2 100644
--- a/src/core/SkGlyphRunPainter.h
+++ b/src/core/SkGlyphRunPainter.h
@@ -8,14 +8,14 @@
 #ifndef SkGlyphRunPainter_DEFINED
 #define SkGlyphRunPainter_DEFINED
 
-#include "SkDistanceFieldGen.h"
-#include "SkGlyphRun.h"
-#include "SkScalerContext.h"
-#include "SkSurfaceProps.h"
-#include "SkTextBlobPriv.h"
+#include "include/core/SkSurfaceProps.h"
+#include "src/core/SkDistanceFieldGen.h"
+#include "src/core/SkGlyphRun.h"
+#include "src/core/SkScalerContext.h"
+#include "src/core/SkTextBlobPriv.h"
 
 #if SK_SUPPORT_GPU
-#include "text/GrTextContext.h"
+#include "src/gpu/text/GrTextContext.h"
 class GrColorSpaceInfo;
 class GrRenderTargetContext;
 #endif
diff --git a/src/core/SkGpuBlurUtils.cpp b/src/core/SkGpuBlurUtils.cpp
index c3d4b24..939ca54 100644
--- a/src/core/SkGpuBlurUtils.cpp
+++ b/src/core/SkGpuBlurUtils.cpp
@@ -5,21 +5,21 @@
  * found in the LICENSE file.
  */
 
-#include "SkGpuBlurUtils.h"
+#include "src/core/SkGpuBlurUtils.h"
 
-#include "SkRect.h"
+#include "include/core/SkRect.h"
 
 #if SK_SUPPORT_GPU
-#include "GrCaps.h"
-#include "GrFixedClip.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "effects/GrGaussianConvolutionFragmentProcessor.h"
-#include "effects/GrMatrixConvolutionEffect.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrFixedClip.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h"
+#include "src/gpu/effects/GrMatrixConvolutionEffect.h"
 
-#include "SkGr.h"
+#include "src/gpu/SkGr.h"
 
 #define MAX_BLUR_SIGMA 4.0f
 
diff --git a/src/core/SkGpuBlurUtils.h b/src/core/SkGpuBlurUtils.h
index cfee28e..e40d7a7 100644
--- a/src/core/SkGpuBlurUtils.h
+++ b/src/core/SkGpuBlurUtils.h
@@ -9,8 +9,8 @@
 #define SkGpuBlurUtils_DEFINED
 
 #if SK_SUPPORT_GPU
-#include "GrRenderTargetContext.h"
-#include "effects/GrTextureDomain.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/effects/GrTextureDomain.h"
 
 class GrContext;
 class GrTexture;
diff --git a/src/core/SkGraphics.cpp b/src/core/SkGraphics.cpp
index b85e236..bd8a3e8 100644
--- a/src/core/SkGraphics.cpp
+++ b/src/core/SkGraphics.cpp
@@ -5,28 +5,28 @@
  * found in the LICENSE file.
  */
 
-#include "SkGraphics.h"
+#include "include/core/SkGraphics.h"
 
-#include "SkBlitter.h"
-#include "SkCanvas.h"
-#include "SkCpu.h"
-#include "SkGeometry.h"
-#include "SkImageFilter.h"
-#include "SkMath.h"
-#include "SkMatrix.h"
-#include "SkOpts.h"
-#include "SkPath.h"
-#include "SkPathEffect.h"
-#include "SkRefCnt.h"
-#include "SkResourceCache.h"
-#include "SkScalerContext.h"
-#include "SkShader.h"
-#include "SkStream.h"
-#include "SkStrikeCache.h"
-#include "SkTSearch.h"
-#include "SkTime.h"
-#include "SkTypefaceCache.h"
-#include "SkUTF.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkMath.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTime.h"
+#include "include/private/SkTSearch.h"
+#include "src/core/SkBlitter.h"
+#include "src/core/SkCpu.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkOpts.h"
+#include "src/core/SkResourceCache.h"
+#include "src/core/SkScalerContext.h"
+#include "src/core/SkStrikeCache.h"
+#include "src/core/SkTypefaceCache.h"
+#include "src/utils/SkUTF.h"
 
 #include <stdlib.h>
 
diff --git a/src/core/SkHalf.cpp b/src/core/SkHalf.cpp
index 262362e..49ce7ef 100644
--- a/src/core/SkHalf.cpp
+++ b/src/core/SkHalf.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkHalf.h"
-#include "SkFloatBits.h"
+#include "include/private/SkFloatBits.h"
+#include "include/private/SkHalf.h"
 
 uint16_t halfMantissa(SkHalf h) {
     return h & 0x03ff;
diff --git a/src/core/SkICC.cpp b/src/core/SkICC.cpp
index 4ec70f2..2a2d413 100644
--- a/src/core/SkICC.cpp
+++ b/src/core/SkICC.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkAutoMalloc.h"
-#include "SkColorSpacePriv.h"
-#include "SkEndian.h"
-#include "SkFixed.h"
-#include "SkICC.h"
-#include "SkICCPriv.h"
-#include "SkMD5.h"
-#include "SkUtils.h"
+#include "include/core/SkICC.h"
+#include "include/private/SkFixed.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkEndian.h"
+#include "src/core/SkICCPriv.h"
+#include "src/core/SkMD5.h"
+#include "src/core/SkUtils.h"
 
 static constexpr char kDescriptionTagBodyPrefix[12] =
         { 'G', 'o', 'o', 'g', 'l', 'e', '/', 'S', 'k', 'i', 'a' , '/'};
diff --git a/src/core/SkICCPriv.h b/src/core/SkICCPriv.h
index 3d2b896..1ed2ca2 100644
--- a/src/core/SkICCPriv.h
+++ b/src/core/SkICCPriv.h
@@ -8,8 +8,8 @@
 #ifndef SkICCPriv_DEFINED
 #define SkICCPriv_DEFINED
 
-#include "SkColorSpace.h"
-#include "SkTypes.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkTypes.h"
 
 // This is equal to the header size according to the ICC specification (128)
 // plus the size of the tag count (4).  We include the tag count since we
diff --git a/src/core/SkIPoint16.h b/src/core/SkIPoint16.h
index 735f167..c66465f 100644
--- a/src/core/SkIPoint16.h
+++ b/src/core/SkIPoint16.h
@@ -8,8 +8,8 @@
 #ifndef SkIPoint16_DEFINED
 #define SkIPoint16_DEFINED
 
-#include "SkTo.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTo.h"
 
 /** \struct SkIPoint16
  SkIPoint16 holds two 16 bit integer coordinates.
diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp
index 01767c8..b2d2bd6 100644
--- a/src/core/SkImageFilter.cpp
+++ b/src/core/SkImageFilter.cpp
@@ -5,30 +5,30 @@
  * found in the LICENSE file.
  */
 
-#include "SkImageFilter.h"
+#include "include/core/SkImageFilter.h"
 
-#include "SkCanvas.h"
-#include "SkFuzzLogging.h"
-#include "SkImageFilterCache.h"
-#include "SkLocalMatrixImageFilter.h"
-#include "SkMatrixImageFilter.h"
-#include "SkReadBuffer.h"
-#include "SkRect.h"
-#include "SkSafe32.h"
-#include "SkSpecialImage.h"
-#include "SkSpecialSurface.h"
-#include "SkValidationUtils.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkRect.h"
+#include "include/private/SkSafe32.h"
+#include "src/core/SkFuzzLogging.h"
+#include "src/core/SkImageFilterCache.h"
+#include "src/core/SkLocalMatrixImageFilter.h"
+#include "src/core/SkMatrixImageFilter.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkSpecialSurface.h"
+#include "src/core/SkValidationUtils.h"
+#include "src/core/SkWriteBuffer.h"
 #if SK_SUPPORT_GPU
-#include "GrColorSpaceXform.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrFixedClip.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrTextureProxy.h"
-#include "SkGr.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrColorSpaceXform.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrFixedClip.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/SkGr.h"
 #endif
 #include <atomic>
 
diff --git a/src/core/SkImageFilterCache.cpp b/src/core/SkImageFilterCache.cpp
index 291bae7..6a7bc2b 100644
--- a/src/core/SkImageFilterCache.cpp
+++ b/src/core/SkImageFilterCache.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkImageFilterCache.h"
+#include "src/core/SkImageFilterCache.h"
 
 #include <vector>
 
-#include "SkImageFilter.h"
-#include "SkMutex.h"
-#include "SkOnce.h"
-#include "SkOpts.h"
-#include "SkRefCnt.h"
-#include "SkSpecialImage.h"
-#include "SkTDynamicHash.h"
-#include "SkTHash.h"
-#include "SkTInternalLList.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkOnce.h"
+#include "include/private/SkTHash.h"
+#include "include/private/SkTInternalLList.h"
+#include "src/core/SkOpts.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkTDynamicHash.h"
 
 #ifdef SK_BUILD_FOR_IOS
   enum { kDefaultCacheSize = 2 * 1024 * 1024 };
diff --git a/src/core/SkImageFilterCache.h b/src/core/SkImageFilterCache.h
index 710de86..11d8f7e 100644
--- a/src/core/SkImageFilterCache.h
+++ b/src/core/SkImageFilterCache.h
@@ -8,8 +8,8 @@
 #ifndef SkImageFilterCache_DEFINED
 #define SkImageFilterCache_DEFINED
 
-#include "SkMatrix.h"
-#include "SkRefCnt.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkRefCnt.h"
 
 struct SkIPoint;
 class SkImageFilter;
diff --git a/src/core/SkImageFilterPriv.h b/src/core/SkImageFilterPriv.h
index dff3e0c..ba17d9c 100644
--- a/src/core/SkImageFilterPriv.h
+++ b/src/core/SkImageFilterPriv.h
@@ -8,7 +8,7 @@
 #ifndef SkImageFilterPriv_DEFINED
 #define SkImageFilterPriv_DEFINED
 
-#include "SkImageFilter.h"
+#include "include/core/SkImageFilter.h"
 
 /**
  *  Helper to unflatten the common data, and return nullptr if we fail.
diff --git a/src/core/SkImageGenerator.cpp b/src/core/SkImageGenerator.cpp
index 611f7a4..dade54d 100644
--- a/src/core/SkImageGenerator.cpp
+++ b/src/core/SkImageGenerator.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkImage.h"
-#include "SkImageGenerator.h"
-#include "SkNextID.h"
-#include "SkYUVAIndex.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageGenerator.h"
+#include "include/core/SkYUVAIndex.h"
+#include "src/core/SkNextID.h"
 
 SkImageGenerator::SkImageGenerator(const SkImageInfo& info, uint32_t uniqueID)
     : fInfo(info)
@@ -59,7 +59,7 @@
 }
 
 #if SK_SUPPORT_GPU
-#include "GrTextureProxy.h"
+#include "include/private/GrTextureProxy.h"
 
 sk_sp<GrTextureProxy> SkImageGenerator::generateTexture(GrRecordingContext* ctx,
                                                         const SkImageInfo& info,
@@ -82,10 +82,10 @@
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-#include "SkBitmap.h"
-#include "SkColorTable.h"
+#include "include/core/SkBitmap.h"
+#include "src/codec/SkColorTable.h"
 
-#include "SkGraphics.h"
+#include "include/core/SkGraphics.h"
 
 static SkGraphics::ImageGeneratorFromEncodedDataFactory gFactory;
 
diff --git a/src/core/SkImageInfo.cpp b/src/core/SkImageInfo.cpp
index 921c78a..e490d2a 100644
--- a/src/core/SkImageInfo.cpp
+++ b/src/core/SkImageInfo.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkImageInfoPriv.h"
-#include "SkSafeMath.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSafeMath.h"
+#include "src/core/SkWriteBuffer.h"
 
 int SkColorTypeBytesPerPixel(SkColorType ct) {
     switch (ct) {
@@ -99,7 +99,7 @@
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-#include "SkReadPixelsRec.h"
+#include "src/image/SkReadPixelsRec.h"
 
 bool SkReadPixelsRec::trim(int srcWidth, int srcHeight) {
     if (nullptr == fPixels || fRowBytes < fInfo.minRowBytes()) {
@@ -136,7 +136,7 @@
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-#include "SkWritePixelsRec.h"
+#include "src/core/SkWritePixelsRec.h"
 
 bool SkWritePixelsRec::trim(int dstWidth, int dstHeight) {
     if (nullptr == fPixels || fRowBytes < fInfo.minRowBytes()) {
diff --git a/src/core/SkImagePriv.h b/src/core/SkImagePriv.h
index 6e82b73..98c88b7 100644
--- a/src/core/SkImagePriv.h
+++ b/src/core/SkImagePriv.h
@@ -8,9 +8,9 @@
 #ifndef SkImagePriv_DEFINED
 #define SkImagePriv_DEFINED
 
-#include "SkImage.h"
-#include "SkSurface.h"
-#include "SkTileMode.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTileMode.h"
 
 enum SkCopyPixelsMode {
     kIfMutable_SkCopyPixelsMode,  //!< only copy src pixels if they are marked mutable
diff --git a/src/core/SkLRUCache.h b/src/core/SkLRUCache.h
index 7f3805c..f168c5b 100644
--- a/src/core/SkLRUCache.h
+++ b/src/core/SkLRUCache.h
@@ -8,9 +8,9 @@
 #ifndef SkLRUCache_DEFINED
 #define SkLRUCache_DEFINED
 
-#include "SkChecksum.h"
-#include "SkTHash.h"
-#include "SkTInternalLList.h"
+#include "include/private/SkChecksum.h"
+#include "include/private/SkTHash.h"
+#include "include/private/SkTInternalLList.h"
 
 /**
  * A generic LRU cache.
diff --git a/src/core/SkLatticeIter.cpp b/src/core/SkLatticeIter.cpp
index fcc12c6..0908190 100644
--- a/src/core/SkLatticeIter.cpp
+++ b/src/core/SkLatticeIter.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkLatticeIter.h"
-#include "SkRect.h"
+#include "include/core/SkRect.h"
+#include "src/core/SkLatticeIter.h"
 
 /**
  *  Divs must be in increasing order with no duplicates.
diff --git a/src/core/SkLatticeIter.h b/src/core/SkLatticeIter.h
index afd0c39..16eef21 100644
--- a/src/core/SkLatticeIter.h
+++ b/src/core/SkLatticeIter.h
@@ -8,9 +8,9 @@
 #ifndef SkLatticeIter_DEFINED
 #define SkLatticeIter_DEFINED
 
-#include "SkCanvas.h"
-#include "SkScalar.h"
-#include "SkTArray.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkScalar.h"
+#include "include/private/SkTArray.h"
 
 struct SkIRect;
 struct SkRect;
diff --git a/src/core/SkLineClipper.cpp b/src/core/SkLineClipper.cpp
index 54ba47d..6a71a03 100644
--- a/src/core/SkLineClipper.cpp
+++ b/src/core/SkLineClipper.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkLineClipper.h"
-#include "SkTo.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkLineClipper.h"
 
 #include <utility>
 
diff --git a/src/core/SkLineClipper.h b/src/core/SkLineClipper.h
index d2c9b5f..5c2a7dc 100644
--- a/src/core/SkLineClipper.h
+++ b/src/core/SkLineClipper.h
@@ -7,8 +7,8 @@
 #ifndef SkLineClipper_DEFINED
 #define SkLineClipper_DEFINED
 
-#include "SkRect.h"
-#include "SkPoint.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
 
 class SkLineClipper {
 public:
diff --git a/src/core/SkLiteDL.cpp b/src/core/SkLiteDL.cpp
index 0e098cd..52ee264 100644
--- a/src/core/SkLiteDL.cpp
+++ b/src/core/SkLiteDL.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "SkLiteDL.h"
+#include "src/core/SkLiteDL.h"
 #include <algorithm>
-#include "SkCanvas.h"
-#include "SkCanvasPriv.h"
-#include "SkData.h"
-#include "SkDrawShadowInfo.h"
-#include "SkImage.h"
-#include "SkImageFilter.h"
-#include "SkMath.h"
-#include "SkPicture.h"
-#include "SkRSXform.h"
-#include "SkRegion.h"
-#include "SkTextBlob.h"
-#include "SkVertices.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkMath.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkRSXform.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkVertices.h"
+#include "src/core/SkCanvasPriv.h"
+#include "src/core/SkDrawShadowInfo.h"
 
 #ifndef SKLITEDL_PAGE
     #define SKLITEDL_PAGE 4096
diff --git a/src/core/SkLiteDL.h b/src/core/SkLiteDL.h
index a3a069e..81b3555 100644
--- a/src/core/SkLiteDL.h
+++ b/src/core/SkLiteDL.h
@@ -8,13 +8,13 @@
 #ifndef SkLiteDL_DEFINED
 #define SkLiteDL_DEFINED
 
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkDrawable.h"
-#include "SkRect.h"
-#include "SkTDArray.h"
-#include "SkTemplates.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkDrawable.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRect.h"
+#include "include/private/SkTDArray.h"
+#include "include/private/SkTemplates.h"
 
 class SkLiteDL final {
 public:
diff --git a/src/core/SkLiteRecorder.cpp b/src/core/SkLiteRecorder.cpp
index a867add..f432640 100644
--- a/src/core/SkLiteRecorder.cpp
+++ b/src/core/SkLiteRecorder.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkLiteDL.h"
-#include "SkLiteRecorder.h"
-#include "SkSurface.h"
+#include "include/core/SkSurface.h"
+#include "src/core/SkLiteDL.h"
+#include "src/core/SkLiteRecorder.h"
 
 SkLiteRecorder::SkLiteRecorder()
     : INHERITED(1, 1)
diff --git a/src/core/SkLiteRecorder.h b/src/core/SkLiteRecorder.h
index 6fc74e0..d674245 100644
--- a/src/core/SkLiteRecorder.h
+++ b/src/core/SkLiteRecorder.h
@@ -8,8 +8,8 @@
 #ifndef SkLiteRecorder_DEFINED
 #define SkLiteRecorder_DEFINED
 
-#include "SkCanvasVirtualEnforcer.h"
-#include "SkNoDrawCanvas.h"
+#include "include/core/SkCanvasVirtualEnforcer.h"
+#include "include/utils/SkNoDrawCanvas.h"
 
 class SkLiteDL;
 
diff --git a/src/core/SkLocalMatrixImageFilter.cpp b/src/core/SkLocalMatrixImageFilter.cpp
index 4271553..b45a3c6 100644
--- a/src/core/SkLocalMatrixImageFilter.cpp
+++ b/src/core/SkLocalMatrixImageFilter.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkImageFilterPriv.h"
-#include "SkLocalMatrixImageFilter.h"
-#include "SkReadBuffer.h"
-#include "SkSpecialImage.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "src/core/SkImageFilterPriv.h"
+#include "src/core/SkLocalMatrixImageFilter.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
 
 sk_sp<SkImageFilter> SkLocalMatrixImageFilter::Make(const SkMatrix& localM,
                                                     sk_sp<SkImageFilter> input) {
diff --git a/src/core/SkLocalMatrixImageFilter.h b/src/core/SkLocalMatrixImageFilter.h
index 3e3688b..802c404 100644
--- a/src/core/SkLocalMatrixImageFilter.h
+++ b/src/core/SkLocalMatrixImageFilter.h
@@ -8,8 +8,8 @@
 #ifndef SkLocalMatrixImageFilter_DEFINED
 #define SkLocalMatrixImageFilter_DEFINED
 
-#include "SkFlattenable.h"
-#include "SkImageFilter.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkImageFilter.h"
 
 /**
  *  Wraps another imagefilter + matrix, such that using this filter will give the same result
diff --git a/src/core/SkMD5.cpp b/src/core/SkMD5.cpp
index 0a9cb4f..158bb63 100644
--- a/src/core/SkMD5.cpp
+++ b/src/core/SkMD5.cpp
@@ -13,7 +13,7 @@
 //SK_CPU_LENDIAN allows 32 bit <=> 8 bit conversions without copies (if alligned).
 //SK_CPU_FAST_UNALIGNED_ACCESS allows 32 bit <=> 8 bit conversions without copies if SK_CPU_LENDIAN.
 
-#include "SkMD5.h"
+#include "src/core/SkMD5.h"
 #include <string.h>
 
 /** MD5 basic transformation. Transforms state based on block. */
diff --git a/src/core/SkMD5.h b/src/core/SkMD5.h
index ce258be..2d04eae 100644
--- a/src/core/SkMD5.h
+++ b/src/core/SkMD5.h
@@ -8,8 +8,8 @@
 #ifndef SkMD5_DEFINED
 #define SkMD5_DEFINED
 
-#include "SkStream.h"
-#include "SkTo.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkTo.h"
 
 /* Calculate a 128-bit MD5 message-digest of the bytes sent to this stream. */
 class SkMD5 : public SkWStream {
diff --git a/src/core/SkMSAN.h b/src/core/SkMSAN.h
index 1f32e53..35ad785 100644
--- a/src/core/SkMSAN.h
+++ b/src/core/SkMSAN.h
@@ -8,7 +8,7 @@
 #ifndef SkMSAN_DEFINED
 #define SkMSAN_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 // Typically declared in LLVM's msan_interface.h.  Easier for us to just re-declare.
 extern "C" {
diff --git a/src/core/SkMallocPixelRef.cpp b/src/core/SkMallocPixelRef.cpp
index 7f625cf..09ec46a 100644
--- a/src/core/SkMallocPixelRef.cpp
+++ b/src/core/SkMallocPixelRef.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkData.h"
-#include "SkImageInfo.h"
-#include "SkMalloc.h"
-#include "SkMallocPixelRef.h"
-#include "SkSafeMath.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMallocPixelRef.h"
+#include "include/private/SkMalloc.h"
+#include "src/core/SkSafeMath.h"
 
 void* sk_calloc_throw(size_t count, size_t elemSize) {
     return sk_calloc_throw(SkSafeMath::Mul(count, elemSize));
diff --git a/src/core/SkMask.cpp b/src/core/SkMask.cpp
index c0875b8..4952a8f 100644
--- a/src/core/SkMask.cpp
+++ b/src/core/SkMask.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkMask.h"
+#include "src/core/SkMask.h"
 
-#include "SkMalloc.h"
-#include "SkSafeMath.h"
-#include "SkTo.h"
+#include "include/private/SkMalloc.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkSafeMath.h"
 
 /** returns the product if it is positive and fits in 31 bits. Otherwise this
     returns 0.
diff --git a/src/core/SkMask.h b/src/core/SkMask.h
index 258186c..61b6f71 100644
--- a/src/core/SkMask.h
+++ b/src/core/SkMask.h
@@ -8,10 +8,10 @@
 #ifndef SkMask_DEFINED
 #define SkMask_DEFINED
 
-#include "SkColorData.h"
-#include "SkMacros.h"
-#include "SkRect.h"
-#include "SkTemplates.h"
+#include "include/core/SkRect.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkMacros.h"
+#include "include/private/SkTemplates.h"
 
 #include <memory>
 
diff --git a/src/core/SkMaskBlurFilter.cpp b/src/core/SkMaskBlurFilter.cpp
index 5664642..22ce3ef 100644
--- a/src/core/SkMaskBlurFilter.cpp
+++ b/src/core/SkMaskBlurFilter.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkMaskBlurFilter.h"
+#include "src/core/SkMaskBlurFilter.h"
 
-#include "SkArenaAlloc.h"
-#include "SkColorPriv.h"
-#include "SkGaussFilter.h"
-#include "SkMalloc.h"
-#include "SkNx.h"
-#include "SkTemplates.h"
-#include "SkTo.h"
+#include "include/core/SkColorPriv.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkMalloc.h"
+#include "include/private/SkNx.h"
+#include "include/private/SkTemplates.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkGaussFilter.h"
 
 #include <cmath>
 #include <climits>
diff --git a/src/core/SkMaskBlurFilter.h b/src/core/SkMaskBlurFilter.h
index f2b86f8..fe10cf4 100644
--- a/src/core/SkMaskBlurFilter.h
+++ b/src/core/SkMaskBlurFilter.h
@@ -12,8 +12,8 @@
 #include <memory>
 #include <tuple>
 
-#include "SkMask.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "src/core/SkMask.h"
 
 // Implement a single channel Gaussian blur. The specifics for implementation are taken from:
 // https://drafts.fxtf.org/filters/#feGaussianBlurElement
diff --git a/src/core/SkMaskCache.cpp b/src/core/SkMaskCache.cpp
index c4b9644..f08f4d7 100644
--- a/src/core/SkMaskCache.cpp
+++ b/src/core/SkMaskCache.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkMaskCache.h"
+#include "src/core/SkMaskCache.h"
 
 #define CHECK_LOCAL(localCache, localName, globalName, ...) \
     ((localCache) ? localCache->localName(__VA_ARGS__) : SkResourceCache::globalName(__VA_ARGS__))
diff --git a/src/core/SkMaskCache.h b/src/core/SkMaskCache.h
index 88a989b..d22a5d1 100644
--- a/src/core/SkMaskCache.h
+++ b/src/core/SkMaskCache.h
@@ -8,12 +8,12 @@
 #ifndef SkMaskCache_DEFINED
 #define SkMaskCache_DEFINED
 
-#include "SkBlurTypes.h"
-#include "SkCachedData.h"
-#include "SkMask.h"
-#include "SkRect.h"
-#include "SkResourceCache.h"
-#include "SkRRect.h"
+#include "include/core/SkBlurTypes.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRect.h"
+#include "src/core/SkCachedData.h"
+#include "src/core/SkMask.h"
+#include "src/core/SkResourceCache.h"
 
 class SkMaskCache {
 public:
diff --git a/src/core/SkMaskFilter.cpp b/src/core/SkMaskFilter.cpp
index 766be2b..505019b 100644
--- a/src/core/SkMaskFilter.cpp
+++ b/src/core/SkMaskFilter.cpp
@@ -5,25 +5,25 @@
  * found in the LICENSE file.
  */
 
-#include "SkMaskFilterBase.h"
+#include "src/core/SkMaskFilterBase.h"
 
-#include "SkAutoMalloc.h"
-#include "SkBlitter.h"
-#include "SkBlurPriv.h"
-#include "SkCachedData.h"
-#include "SkCoverageModePriv.h"
-#include "SkDraw.h"
-#include "SkPath.h"
-#include "SkRRect.h"
-#include "SkRasterClip.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkBlitter.h"
+#include "src/core/SkBlurPriv.h"
+#include "src/core/SkCachedData.h"
+#include "src/core/SkCoverageModePriv.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 
 #if SK_SUPPORT_GPU
-#include "GrTextureProxy.h"
-#include "GrFragmentProcessor.h"
-#include "effects/GrXfermodeFragmentProcessor.h"
-#include "text/GrSDFMaskFilter.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/effects/GrXfermodeFragmentProcessor.h"
+#include "src/gpu/text/GrSDFMaskFilter.h"
 #endif
 
 SkMaskFilterBase::NinePatch::~NinePatch() {
@@ -514,7 +514,7 @@
     typedef SkMaskFilterBase INHERITED;
 };
 
-#include "SkSafeMath.h"
+#include "src/core/SkSafeMath.h"
 
 class DrawIntoMask : public SkDraw {
 public:
diff --git a/src/core/SkMaskFilterBase.h b/src/core/SkMaskFilterBase.h
index b692e56..3054094 100644
--- a/src/core/SkMaskFilterBase.h
+++ b/src/core/SkMaskFilterBase.h
@@ -8,13 +8,13 @@
 #ifndef SkMaskFilterBase_DEFINED
 #define SkMaskFilterBase_DEFINED
 
-#include "SkBlurTypes.h"
-#include "SkFlattenable.h"
-#include "SkMask.h"
-#include "SkMaskFilter.h"
-#include "SkNoncopyable.h"
-#include "SkPaint.h"
-#include "SkStrokeRec.h"
+#include "include/core/SkBlurTypes.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/private/SkNoncopyable.h"
+#include "src/core/SkMask.h"
 
 class GrClip;
 struct GrFPArgs;
diff --git a/src/core/SkMaskGamma.cpp b/src/core/SkMaskGamma.cpp
index e231d92..b5b51a6 100644
--- a/src/core/SkMaskGamma.cpp
+++ b/src/core/SkMaskGamma.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkMaskGamma.h"
+#include "src/core/SkMaskGamma.h"
 
-#include "SkColor.h"
-#include "SkFloatingPoint.h"
-#include "SkTo.h"
-#include "SkTypes.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkFloatingPoint.h"
+#include "include/private/SkTo.h"
 
 class SkLinearColorSpaceLuminance : public SkColorSpaceLuminance {
     SkScalar toLuma(SkScalar SkDEBUGCODE(gamma), SkScalar luminance) const override {
diff --git a/src/core/SkMaskGamma.h b/src/core/SkMaskGamma.h
index 4bd95b5..643deedd 100644
--- a/src/core/SkMaskGamma.h
+++ b/src/core/SkMaskGamma.h
@@ -8,11 +8,11 @@
 #ifndef SkMaskGamma_DEFINED
 #define SkMaskGamma_DEFINED
 
-#include "SkColor.h"
-#include "SkColorData.h"
-#include "SkNoncopyable.h"
-#include "SkRefCnt.h"
-#include "SkTypes.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkNoncopyable.h"
 
 /**
  * SkColorSpaceLuminance is used to convert luminances to and from linear and
diff --git a/src/core/SkMath.cpp b/src/core/SkMath.cpp
index b904609..8b2df0e 100644
--- a/src/core/SkMath.cpp
+++ b/src/core/SkMath.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkMathPriv.h"
-#include "SkFixed.h"
-#include "SkFloatBits.h"
-#include "SkFloatingPoint.h"
-#include "SkSafeMath.h"
-#include "SkScalar.h"
+#include "include/core/SkScalar.h"
+#include "include/private/SkFixed.h"
+#include "include/private/SkFloatBits.h"
+#include "include/private/SkFloatingPoint.h"
+#include "src/core/SkMathPriv.h"
+#include "src/core/SkSafeMath.h"
 
 #define sub_shift(zeros, x, n)  \
     zeros -= n;                 \
diff --git a/src/core/SkMathPriv.h b/src/core/SkMathPriv.h
index 90b1dab..fb2389f 100644
--- a/src/core/SkMathPriv.h
+++ b/src/core/SkMathPriv.h
@@ -8,7 +8,7 @@
 #ifndef SkMathPriv_DEFINED
 #define SkMathPriv_DEFINED
 
-#include "SkMath.h"
+#include "include/core/SkMath.h"
 
 /**
  *  Return the integer square root of value, with a bias of bitBias
diff --git a/src/core/SkMatrix.cpp b/src/core/SkMatrix.cpp
index bb68e2b..3a5a5ab 100644
--- a/src/core/SkMatrix.cpp
+++ b/src/core/SkMatrix.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "SkMatrix.h"
+#include "include/core/SkMatrix.h"
 
-#include "SkFloatBits.h"
-#include "SkMathPriv.h"
-#include "SkMatrixPriv.h"
-#include "SkNx.h"
-#include "SkPaint.h"
-#include "SkPoint3.h"
-#include "SkRSXform.h"
-#include "SkString.h"
-#include "SkTo.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPoint3.h"
+#include "include/core/SkRSXform.h"
+#include "include/core/SkString.h"
+#include "include/private/SkFloatBits.h"
+#include "include/private/SkNx.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkMathPriv.h"
+#include "src/core/SkMatrixPriv.h"
 
 #include <cstddef>
 #include <utility>
@@ -1639,7 +1639,7 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkMatrixUtils.h"
+#include "src/core/SkMatrixUtils.h"
 
 bool SkTreatAsSprite(const SkMatrix& mat, const SkISize& size, const SkPaint& paint) {
     // Our path aa is 2-bits, and our rect aa is 8, so we could use 8,
diff --git a/src/core/SkMatrix44.cpp b/src/core/SkMatrix44.cpp
index 563ce49..67e710b 100644
--- a/src/core/SkMatrix44.cpp
+++ b/src/core/SkMatrix44.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkMatrix44.h"
+#include "include/core/SkMatrix44.h"
 #include <type_traits>
 #include <utility>
 
diff --git a/src/core/SkMatrixImageFilter.cpp b/src/core/SkMatrixImageFilter.cpp
index f565419..66ea469 100644
--- a/src/core/SkMatrixImageFilter.cpp
+++ b/src/core/SkMatrixImageFilter.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkMatrixImageFilter.h"
+#include "src/core/SkMatrixImageFilter.h"
 
-#include "SkCanvas.h"
-#include "SkImageFilterPriv.h"
-#include "SkReadBuffer.h"
-#include "SkSpecialImage.h"
-#include "SkSpecialSurface.h"
-#include "SkWriteBuffer.h"
-#include "SkRect.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkRect.h"
+#include "src/core/SkImageFilterPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkSpecialSurface.h"
+#include "src/core/SkWriteBuffer.h"
 
 SkMatrixImageFilter::SkMatrixImageFilter(const SkMatrix& transform,
                                          SkFilterQuality filterQuality,
diff --git a/src/core/SkMatrixImageFilter.h b/src/core/SkMatrixImageFilter.h
index 6dabab0..b13efb2 100644
--- a/src/core/SkMatrixImageFilter.h
+++ b/src/core/SkMatrixImageFilter.h
@@ -8,9 +8,9 @@
 #ifndef SkMatrixImageFilter_DEFINED
 #define SkMatrixImageFilter_DEFINED
 
-#include "SkFlattenable.h"
-#include "SkImageFilter.h"
-#include "SkMatrix.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkMatrix.h"
 
 /*! \class SkMatrixImageFilter
     Matrix transformation image filter.  This filter draws its source
diff --git a/src/core/SkMatrixPriv.h b/src/core/SkMatrixPriv.h
index 9d76179..070cca0 100644
--- a/src/core/SkMatrixPriv.h
+++ b/src/core/SkMatrixPriv.h
@@ -8,9 +8,9 @@
 #ifndef SkMatrixPriv_DEFINE
 #define SkMatrixPriv_DEFINE
 
-#include "SkMatrix.h"
-#include "SkNx.h"
-#include "SkPointPriv.h"
+#include "include/core/SkMatrix.h"
+#include "include/private/SkNx.h"
+#include "src/core/SkPointPriv.h"
 
 class SkMatrixPriv {
 public:
diff --git a/src/core/SkMatrixUtils.h b/src/core/SkMatrixUtils.h
index c311a6c..2a17ec2 100644
--- a/src/core/SkMatrixUtils.h
+++ b/src/core/SkMatrixUtils.h
@@ -8,8 +8,8 @@
 #ifndef SkMatrixUtils_DEFINED
 #define SkMatrixUtils_DEFINED
 
-#include "SkPoint.h"
-#include "SkSize.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkSize.h"
 
 class SkMatrix;
 class SkPaint;
diff --git a/src/core/SkMiniRecorder.cpp b/src/core/SkMiniRecorder.cpp
index 668942d..e75ecd0 100644
--- a/src/core/SkMiniRecorder.cpp
+++ b/src/core/SkMiniRecorder.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkTLazy.h"
-#include "SkMiniRecorder.h"
-#include "SkOnce.h"
-#include "SkPicture.h"
-#include "SkPictureCommon.h"
-#include "SkRecordDraw.h"
-#include "SkRectPriv.h"
-#include "SkTextBlob.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkTextBlob.h"
+#include "include/private/SkOnce.h"
+#include "src/core/SkMiniRecorder.h"
+#include "src/core/SkPictureCommon.h"
+#include "src/core/SkRecordDraw.h"
+#include "src/core/SkRectPriv.h"
+#include "src/core/SkTLazy.h"
 #include <new>
 
 using namespace SkRecords;
diff --git a/src/core/SkMiniRecorder.h b/src/core/SkMiniRecorder.h
index fd1e8f6..ac62491 100644
--- a/src/core/SkMiniRecorder.h
+++ b/src/core/SkMiniRecorder.h
@@ -8,9 +8,9 @@
 #ifndef SkMiniRecorder_DEFINED
 #define SkMiniRecorder_DEFINED
 
-#include "SkRecords.h"
-#include "SkScalar.h"
-#include "SkTypes.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkTypes.h"
+#include "src/core/SkRecords.h"
 class SkCanvas;
 
 // Records small pictures, but only a limited subset of the canvas API, and may fail.
diff --git a/src/core/SkMipMap.cpp b/src/core/SkMipMap.cpp
index 84db6bb..6694659 100644
--- a/src/core/SkMipMap.cpp
+++ b/src/core/SkMipMap.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkMipMap.h"
+#include "src/core/SkMipMap.h"
 
-#include "SkBitmap.h"
-#include "SkColorData.h"
-#include "SkHalf.h"
-#include "SkImageInfoPriv.h"
-#include "SkMathPriv.h"
-#include "SkNx.h"
-#include "SkTo.h"
-#include "SkTypes.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkHalf.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "include/private/SkNx.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkMathPriv.h"
 #include <new>
 
 //
diff --git a/src/core/SkMipMap.h b/src/core/SkMipMap.h
index ba54799..9aa43d2 100644
--- a/src/core/SkMipMap.h
+++ b/src/core/SkMipMap.h
@@ -8,12 +8,12 @@
 #ifndef SkMipMap_DEFINED
 #define SkMipMap_DEFINED
 
-#include "SkCachedData.h"
-#include "SkImageInfoPriv.h"
-#include "SkPixmap.h"
-#include "SkScalar.h"
-#include "SkSize.h"
-#include "SkShaderBase.h"
+#include "include/core/SkPixmap.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkSize.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "src/core/SkCachedData.h"
+#include "src/shaders/SkShaderBase.h"
 
 class SkBitmap;
 class SkDiscardableMemory;
diff --git a/src/core/SkModeColorFilter.cpp b/src/core/SkModeColorFilter.cpp
index e42e978..0ffc761 100644
--- a/src/core/SkModeColorFilter.cpp
+++ b/src/core/SkModeColorFilter.cpp
@@ -5,21 +5,21 @@
  * found in the LICENSE file.
  */
 
-#include "SkArenaAlloc.h"
-#include "SkBlendModePriv.h"
-#include "SkBlitRow.h"
-#include "SkColorFilter.h"
-#include "SkColorData.h"
-#include "SkColorSpacePriv.h"
-#include "SkColorSpaceXformSteps.h"
-#include "SkModeColorFilter.h"
-#include "SkRandom.h"
-#include "SkRasterPipeline.h"
-#include "SkReadBuffer.h"
-#include "SkString.h"
-#include "SkUTF.h"
-#include "SkValidationUtils.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkString.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkColorData.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkBlendModePriv.h"
+#include "src/core/SkBlitRow.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkColorSpaceXformSteps.h"
+#include "src/core/SkModeColorFilter.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkValidationUtils.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/utils/SkUTF.h"
 
 //////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -73,10 +73,10 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 #if SK_SUPPORT_GPU
-#include "GrBlend.h"
-#include "effects/GrXfermodeFragmentProcessor.h"
-#include "effects/generated/GrConstColorProcessor.h"
-#include "SkGr.h"
+#include "include/gpu/GrBlend.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/effects/GrXfermodeFragmentProcessor.h"
+#include "src/gpu/effects/generated/GrConstColorProcessor.h"
 
 std::unique_ptr<GrFragmentProcessor> SkModeColorFilter::asFragmentProcessor(
         GrRecordingContext*, const GrColorSpaceInfo& dstColorSpaceInfo) const {
diff --git a/src/core/SkModeColorFilter.h b/src/core/SkModeColorFilter.h
index aac6324..e15eb92 100644
--- a/src/core/SkModeColorFilter.h
+++ b/src/core/SkModeColorFilter.h
@@ -8,8 +8,8 @@
 #ifndef SkModeColorFilter_DEFINED
 #define SkModeColorFilter_DEFINED
 
-#include "SkColorFilter.h"
-#include "SkFlattenable.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkFlattenable.h"
 
 class SkModeColorFilter : public SkColorFilter {
 public:
diff --git a/src/core/SkMultiPictureDraw.cpp b/src/core/SkMultiPictureDraw.cpp
index 1df27ff..837aa60 100644
--- a/src/core/SkMultiPictureDraw.cpp
+++ b/src/core/SkMultiPictureDraw.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkCanvasPriv.h"
-#include "SkMultiPictureDraw.h"
-#include "SkPicture.h"
-#include "SkTaskGroup.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMultiPictureDraw.h"
+#include "include/core/SkPicture.h"
+#include "src/core/SkCanvasPriv.h"
+#include "src/core/SkTaskGroup.h"
 
 void SkMultiPictureDraw::DrawData::draw() {
     fCanvas->drawPicture(fPicture, &fMatrix, fPaint);
diff --git a/src/core/SkNextID.h b/src/core/SkNextID.h
index 570fd94..395c9a2 100644
--- a/src/core/SkNextID.h
+++ b/src/core/SkNextID.h
@@ -8,7 +8,7 @@
 #ifndef SkNextID_DEFINED
 #define SkNextID_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 class SkNextID {
 public:
diff --git a/src/core/SkNormalFlatSource.cpp b/src/core/SkNormalFlatSource.cpp
index 5b7e013..8483647 100644
--- a/src/core/SkNormalFlatSource.cpp
+++ b/src/core/SkNormalFlatSource.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "SkNormalFlatSource.h"
+#include "src/core/SkNormalFlatSource.h"
 
-#include "SkArenaAlloc.h"
-#include "SkNormalSource.h"
-#include "SkPoint3.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkPoint3.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkNormalSource.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 
 #if SK_SUPPORT_GPU
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
 
 class NormalFlatFP : public GrFragmentProcessor {
 public:
diff --git a/src/core/SkNormalFlatSource.h b/src/core/SkNormalFlatSource.h
index 5751b0f..a7960b0 100644
--- a/src/core/SkNormalFlatSource.h
+++ b/src/core/SkNormalFlatSource.h
@@ -8,7 +8,7 @@
 #ifndef SkNormalFlatSource_DEFINED
 #define SkNormalFlatSource_DEFINED
 
-#include "SkNormalSource.h"
+#include "src/core/SkNormalSource.h"
 
 class SK_API SkNormalFlatSourceImpl : public SkNormalSource {
 public:
diff --git a/src/core/SkNormalMapSource.cpp b/src/core/SkNormalMapSource.cpp
index f75c03d..fab80a3 100644
--- a/src/core/SkNormalMapSource.cpp
+++ b/src/core/SkNormalMapSource.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "SkNormalMapSource.h"
+#include "src/core/SkNormalMapSource.h"
 
-#include "SkArenaAlloc.h"
-#include "SkLightingShader.h"
-#include "SkMatrix.h"
-#include "SkNormalSource.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkMatrix.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkNormalSource.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/shaders/SkLightingShader.h"
 
 #if SK_SUPPORT_GPU
-#include "GrCoordTransform.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "SkGr.h"
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
 
 class NormalMapFP : public GrFragmentProcessor {
 public:
diff --git a/src/core/SkNormalMapSource.h b/src/core/SkNormalMapSource.h
index c17a770..435cb03 100644
--- a/src/core/SkNormalMapSource.h
+++ b/src/core/SkNormalMapSource.h
@@ -8,7 +8,7 @@
 #ifndef SkNormalMapSource_DEFINED
 #define SkNormalMapSource_DEFINED
 
-#include "SkNormalSource.h"
+#include "src/core/SkNormalSource.h"
 
 class SkNormalMapSourceImpl : public SkNormalSource {
 public:
diff --git a/src/core/SkNormalSource.cpp b/src/core/SkNormalSource.cpp
index 0ef26cb..9bcab1e 100644
--- a/src/core/SkNormalSource.cpp
+++ b/src/core/SkNormalSource.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkNormalFlatSource.h"
-#include "SkNormalMapSource.h"
-#include "SkNormalSource.h"
+#include "src/core/SkNormalFlatSource.h"
+#include "src/core/SkNormalMapSource.h"
+#include "src/core/SkNormalSource.h"
 
 // Generating vtable
 SkNormalSource::~SkNormalSource() {}
diff --git a/src/core/SkNormalSource.h b/src/core/SkNormalSource.h
index ed49553..49a5257 100644
--- a/src/core/SkNormalSource.h
+++ b/src/core/SkNormalSource.h
@@ -8,8 +8,8 @@
 #ifndef SkNormalSource_DEFINED
 #define SkNormalSource_DEFINED
 
-#include "SkFlattenable.h"
-#include "SkShaderBase.h"
+#include "include/core/SkFlattenable.h"
+#include "src/shaders/SkShaderBase.h"
 
 class SkMatrix;
 struct SkPoint3;
diff --git a/src/core/SkOSFile.h b/src/core/SkOSFile.h
index ddbcc2b..330b77b 100644
--- a/src/core/SkOSFile.h
+++ b/src/core/SkOSFile.h
@@ -13,7 +13,7 @@
 
 #include <stdio.h>
 
-#include "SkString.h"
+#include "include/core/SkString.h"
 
 enum SkFILE_Flags {
     kRead_SkFILE_Flag   = 0x01,
diff --git a/src/core/SkOpts.cpp b/src/core/SkOpts.cpp
index ba2257a..c112323 100644
--- a/src/core/SkOpts.cpp
+++ b/src/core/SkOpts.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkCpu.h"
-#include "SkHalf.h"
-#include "SkOnce.h"
-#include "SkOpts.h"
+#include "include/private/SkHalf.h"
+#include "include/private/SkOnce.h"
+#include "src/core/SkCpu.h"
+#include "src/core/SkOpts.h"
 
 #if defined(SK_ARM_HAS_NEON)
     #if defined(SK_ARM_HAS_CRC32)
@@ -36,14 +36,14 @@
     #define SK_OPTS_NS portable
 #endif
 
-#include "SkBitmapProcState_opts.h"
-#include "SkBlitMask_opts.h"
-#include "SkBlitRow_opts.h"
-#include "SkChecksum_opts.h"
-#include "SkRasterPipeline_opts.h"
-#include "SkSwizzler_opts.h"
-#include "SkUtils_opts.h"
-#include "SkXfermode_opts.h"
+#include "src/opts/SkBitmapProcState_opts.h"
+#include "src/opts/SkBlitMask_opts.h"
+#include "src/opts/SkBlitRow_opts.h"
+#include "src/opts/SkChecksum_opts.h"
+#include "src/opts/SkRasterPipeline_opts.h"
+#include "src/opts/SkSwizzler_opts.h"
+#include "src/opts/SkUtils_opts.h"
+#include "src/opts/SkXfermode_opts.h"
 
 namespace SkOpts {
     // Define default function pointer values here...
diff --git a/src/core/SkOpts.h b/src/core/SkOpts.h
index a31129a..603e8e1 100644
--- a/src/core/SkOpts.h
+++ b/src/core/SkOpts.h
@@ -8,9 +8,9 @@
 #ifndef SkOpts_DEFINED
 #define SkOpts_DEFINED
 
-#include "SkRasterPipeline.h"
-#include "SkTypes.h"
-#include "SkXfermodePriv.h"
+#include "include/core/SkTypes.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/core/SkXfermodePriv.h"
 
 struct SkBitmapProcState;
 
diff --git a/src/core/SkOrderedReadBuffer.h b/src/core/SkOrderedReadBuffer.h
index 3286f6b..239d8b6 100644
--- a/src/core/SkOrderedReadBuffer.h
+++ b/src/core/SkOrderedReadBuffer.h
@@ -2,7 +2,7 @@
 #ifndef SkOrderedReadBuffer_DEFINED
 #define SkOrderedReadBuffer_DEFINED
 
-#include "SkReadBuffer.h"
+#include "src/core/SkReadBuffer.h"
 
 typedef SkReadBuffer SkOrderedReadBuffer;
 
diff --git a/src/core/SkOverdrawCanvas.cpp b/src/core/SkOverdrawCanvas.cpp
index bcc999f..7d72bc8 100644
--- a/src/core/SkOverdrawCanvas.cpp
+++ b/src/core/SkOverdrawCanvas.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "SkOverdrawCanvas.h"
+#include "include/core/SkOverdrawCanvas.h"
 
-#include "SkColorFilter.h"
-#include "SkDevice.h"
-#include "SkDrawShadowInfo.h"
-#include "SkDrawable.h"
-#include "SkGlyphRunPainter.h"
-#include "SkImagePriv.h"
-#include "SkLatticeIter.h"
-#include "SkPatchUtils.h"
-#include "SkPath.h"
-#include "SkRRect.h"
-#include "SkRSXform.h"
-#include "SkStrikeCache.h"
-#include "SkTextBlob.h"
-#include "SkTextBlobPriv.h"
-#include "SkTo.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkDrawable.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRSXform.h"
+#include "include/core/SkTextBlob.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkDevice.h"
+#include "src/core/SkDrawShadowInfo.h"
+#include "src/core/SkGlyphRunPainter.h"
+#include "src/core/SkImagePriv.h"
+#include "src/core/SkLatticeIter.h"
+#include "src/core/SkStrikeCache.h"
+#include "src/core/SkTextBlobPriv.h"
+#include "src/utils/SkPatchUtils.h"
 
 SkOverdrawCanvas::SkOverdrawCanvas(SkCanvas* canvas)
     : INHERITED(canvas->onImageInfo().width(), canvas->onImageInfo().height())
diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp
index 919e49f..e6d62e5 100644
--- a/src/core/SkPaint.cpp
+++ b/src/core/SkPaint.cpp
@@ -5,35 +5,35 @@
  * found in the LICENSE file.
  */
 
-#include "SkPaint.h"
+#include "include/core/SkPaint.h"
 
-#include "SkColorFilter.h"
-#include "SkColorSpacePriv.h"
-#include "SkColorSpaceXformSteps.h"
-#include "SkData.h"
-#include "SkDraw.h"
-#include "SkGraphics.h"
-#include "SkImageFilter.h"
-#include "SkMaskFilter.h"
-#include "SkMaskGamma.h"
-#include "SkMutex.h"
-#include "SkOpts.h"
-#include "SkPaintDefaults.h"
-#include "SkPaintPriv.h"
-#include "SkPathEffect.h"
-#include "SkReadBuffer.h"
-#include "SkSafeRange.h"
-#include "SkScalar.h"
-#include "SkShader.h"
-#include "SkShaderBase.h"
-#include "SkStringUtils.h"
-#include "SkStroke.h"
-#include "SkStrokeRec.h"
-#include "SkSurfacePriv.h"
-#include "SkTLazy.h"
-#include "SkTo.h"
-#include "SkTypeface.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkData.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkColorSpaceXformSteps.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkMaskGamma.h"
+#include "src/core/SkOpts.h"
+#include "src/core/SkPaintDefaults.h"
+#include "src/core/SkPaintPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSafeRange.h"
+#include "src/core/SkStringUtils.h"
+#include "src/core/SkStroke.h"
+#include "src/core/SkSurfacePriv.h"
+#include "src/core/SkTLazy.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/shaders/SkShaderBase.h"
 
 // define this to get a printf for out-of-range parameter in setters
 // e.g. setTextSize(-1)
@@ -183,7 +183,7 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkStream.h"
+#include "include/core/SkStream.h"
 
 #ifdef SK_DEBUG
     static void ASSERT_FITS_IN(uint32_t value, int bitCount) {
diff --git a/src/core/SkPaintDefaults.h b/src/core/SkPaintDefaults.h
index a1b9630..4f53253 100644
--- a/src/core/SkPaintDefaults.h
+++ b/src/core/SkPaintDefaults.h
@@ -8,7 +8,7 @@
 #ifndef SkPaintDefaults_DEFINED
 #define SkPaintDefaults_DEFINED
 
-#include "SkFontTypes.h"
+#include "include/core/SkFontTypes.h"
 
 /**
  *  Any of these can be specified by the build system (or SkUserConfig.h)
diff --git a/src/core/SkPaintPriv.cpp b/src/core/SkPaintPriv.cpp
index a74e4ef..cce22aa 100644
--- a/src/core/SkPaintPriv.cpp
+++ b/src/core/SkPaintPriv.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorFilter.h"
-#include "SkPaintPriv.h"
-#include "SkPaint.h"
-#include "SkShaderBase.h"
-#include "SkXfermodePriv.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkPaint.h"
+#include "src/core/SkPaintPriv.h"
+#include "src/core/SkXfermodePriv.h"
+#include "src/shaders/SkShaderBase.h"
 
 static bool changes_alpha(const SkPaint& paint) {
     SkColorFilter* cf = paint.getColorFilter();
diff --git a/src/core/SkPaintPriv.h b/src/core/SkPaintPriv.h
index 4f0620b..1befb69 100644
--- a/src/core/SkPaintPriv.h
+++ b/src/core/SkPaintPriv.h
@@ -8,7 +8,7 @@
 #ifndef SkPaintPriv_DEFINED
 #define SkPaintPriv_DEFINED
 
-#include "SkPaint.h"
+#include "include/core/SkPaint.h"
 
 class SkFont;
 class SkReadBuffer;
diff --git a/src/core/SkPath.cpp b/src/core/SkPath.cpp
index 6901f19..8ab8ff4 100644
--- a/src/core/SkPath.cpp
+++ b/src/core/SkPath.cpp
@@ -5,22 +5,22 @@
  * found in the LICENSE file.
  */
 
-#include "SkPath.h"
+#include "include/core/SkPath.h"
 
-#include "SkBuffer.h"
-#include "SkCubicClipper.h"
-#include "SkData.h"
-#include "SkGeometry.h"
-#include "SkMacros.h"
-#include "SkMath.h"
-#include "SkMatrixPriv.h"
-#include "SkPathPriv.h"
-#include "SkPathRef.h"
-#include "SkPointPriv.h"
-#include "SkRRect.h"
-#include "SkSafeMath.h"
-#include "SkTLazy.h"
-#include "SkTo.h"
+#include "include/core/SkData.h"
+#include "include/core/SkMath.h"
+#include "include/core/SkRRect.h"
+#include "include/private/SkMacros.h"
+#include "include/private/SkPathRef.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkBuffer.h"
+#include "src/core/SkCubicClipper.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkMatrixPriv.h"
+#include "src/core/SkPathPriv.h"
+#include "src/core/SkPointPriv.h"
+#include "src/core/SkSafeMath.h"
+#include "src/core/SkTLazy.h"
 
 #include <cmath>
 #include <utility>
@@ -1084,7 +1084,7 @@
     return *this;
 }
 
-#include "SkGeometry.h"
+#include "src/core/SkGeometry.h"
 
 static bool arc_is_lone_point(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle,
                               SkPoint* pt) {
@@ -2157,9 +2157,9 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkString.h"
-#include "SkStringUtils.h"
-#include "SkStream.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "src/core/SkStringUtils.h"
 
 static void append_params(SkString* str, const char label[], const SkPoint pts[],
                           int count, SkScalarAsStringType strType, SkScalar conicWeight = -12345) {
@@ -3784,7 +3784,7 @@
 }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
-#include "SkNx.h"
+#include "include/private/SkNx.h"
 
 static int compute_quad_extremas(const SkPoint src[3], SkPoint extremas[3]) {
     SkScalar ts[2];
diff --git a/src/core/SkPathEffect.cpp b/src/core/SkPathEffect.cpp
index 9ba3054..f5cb185 100644
--- a/src/core/SkPathEffect.cpp
+++ b/src/core/SkPathEffect.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkPathEffect.h"
-#include "SkPath.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPathEffect.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/core/SkPathMeasure.cpp b/src/core/SkPathMeasure.cpp
index 17506e9..445e6a1 100644
--- a/src/core/SkPathMeasure.cpp
+++ b/src/core/SkPathMeasure.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkPathMeasure.h"
-#include "SkContourMeasure.h"
+#include "include/core/SkContourMeasure.h"
+#include "include/core/SkPathMeasure.h"
 
 SkPathMeasure::SkPathMeasure() {}
 
diff --git a/src/core/SkPathMeasurePriv.h b/src/core/SkPathMeasurePriv.h
index 8dcf717..dbad22b 100644
--- a/src/core/SkPathMeasurePriv.h
+++ b/src/core/SkPathMeasurePriv.h
@@ -8,9 +8,9 @@
 #ifndef SkPathMeasurePriv_DEFINED
 #define SkPathMeasurePriv_DEFINED
 
-#include "SkPath.h"
-#include "SkPoint.h"
-#include "SkGeometry.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint.h"
+#include "src/core/SkGeometry.h"
 
 // Used in the Segment struct defined in SkPathMeasure.h
 // It is used as a 2-bit field so if you add to this
diff --git a/src/core/SkPathPriv.h b/src/core/SkPathPriv.h
index 855efae..d293a23 100644
--- a/src/core/SkPathPriv.h
+++ b/src/core/SkPathPriv.h
@@ -8,7 +8,7 @@
 #ifndef SkPathPriv_DEFINED
 #define SkPathPriv_DEFINED
 
-#include "SkPath.h"
+#include "include/core/SkPath.h"
 
 class SkPathPriv {
 public:
diff --git a/src/core/SkPathRef.cpp b/src/core/SkPathRef.cpp
index c435121..0421dac 100644
--- a/src/core/SkPathRef.cpp
+++ b/src/core/SkPathRef.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkPathRef.h"
+#include "include/private/SkPathRef.h"
 
-#include "SkBuffer.h"
-#include "SkNx.h"
-#include "SkOnce.h"
-#include "SkPath.h"
-#include "SkPathPriv.h"
-#include "SkSafeMath.h"
-#include "SkTo.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkNx.h"
+#include "include/private/SkOnce.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkBuffer.h"
+#include "src/core/SkPathPriv.h"
+#include "src/core/SkSafeMath.h"
 
 // Conic weights must be 0 < weight <= finite
 static bool validate_conic_weights(const SkScalar weights[], int count) {
diff --git a/src/core/SkPath_serial.cpp b/src/core/SkPath_serial.cpp
index d434dd1..4446bfa 100644
--- a/src/core/SkPath_serial.cpp
+++ b/src/core/SkPath_serial.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkBuffer.h"
-#include "SkData.h"
-#include "SkMath.h"
-#include "SkPathPriv.h"
-#include "SkPathRef.h"
-#include "SkRRectPriv.h"
-#include "SkSafeMath.h"
-#include "SkTo.h"
+#include "include/core/SkData.h"
+#include "include/core/SkMath.h"
+#include "include/private/SkPathRef.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkBuffer.h"
+#include "src/core/SkPathPriv.h"
+#include "src/core/SkRRectPriv.h"
+#include "src/core/SkSafeMath.h"
 
 #include <cmath>
 
diff --git a/src/core/SkPicture.cpp b/src/core/SkPicture.cpp
index 8e7a711..8e7417a 100644
--- a/src/core/SkPicture.cpp
+++ b/src/core/SkPicture.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "SkPicture.h"
+#include "include/core/SkPicture.h"
 
-#include "SkImageGenerator.h"
-#include "SkMathPriv.h"
-#include "SkPictureCommon.h"
-#include "SkPictureData.h"
-#include "SkPicturePlayback.h"
-#include "SkPicturePriv.h"
-#include "SkPictureRecord.h"
-#include "SkPictureRecorder.h"
-#include "SkSerialProcs.h"
-#include "SkTo.h"
+#include "include/core/SkImageGenerator.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkSerialProcs.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkMathPriv.h"
+#include "src/core/SkPictureCommon.h"
+#include "src/core/SkPictureData.h"
+#include "src/core/SkPicturePlayback.h"
+#include "src/core/SkPicturePriv.h"
+#include "src/core/SkPictureRecord.h"
 #include <atomic>
 
 // When we read/write the SkPictInfo via a stream, we have a sentinel byte right after the info.
diff --git a/src/core/SkPictureCommon.h b/src/core/SkPictureCommon.h
index edd9be1..2a10699 100644
--- a/src/core/SkPictureCommon.h
+++ b/src/core/SkPictureCommon.h
@@ -12,10 +12,10 @@
 //   SkTextHunter   -- SkRecord visitor that returns true when the op draws text.
 //   SkPathCounter  -- SkRecord visitor that counts paths that draw slowly on the GPU.
 
-#include "SkPathEffect.h"
-#include "SkRecords.h"
-#include "SkShader.h"
-#include "SkTLogic.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkShader.h"
+#include "include/private/SkTLogic.h"
+#include "src/core/SkRecords.h"
 
 // TODO: might be nicer to have operator() return an int (the number of slow paths) ?
 struct SkPathCounter {
diff --git a/src/core/SkPictureData.cpp b/src/core/SkPictureData.cpp
index f55695d..f7ee042 100644
--- a/src/core/SkPictureData.cpp
+++ b/src/core/SkPictureData.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "SkPictureData.h"
+#include "src/core/SkPictureData.h"
 
-#include "SkAutoMalloc.h"
-#include "SkImageGenerator.h"
-#include "SkMakeUnique.h"
-#include "SkPictureRecord.h"
-#include "SkPicturePriv.h"
-#include "SkReadBuffer.h"
-#include "SkTextBlobPriv.h"
-#include "SkTypeface.h"
-#include "SkWriteBuffer.h"
-#include "SkTo.h"
+#include "include/core/SkImageGenerator.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkPicturePriv.h"
+#include "src/core/SkPictureRecord.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkTextBlobPriv.h"
+#include "src/core/SkWriteBuffer.h"
 
 #include <new>
 
 #if SK_SUPPORT_GPU
-#include "GrContext.h"
+#include "include/gpu/GrContext.h"
 #endif
 
 template <typename T> int SafeCount(const T* obj) {
@@ -64,7 +64,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkStream.h"
+#include "include/core/SkStream.h"
 
 static size_t compute_chunk_size(SkFlattenable::Factory* array, int count) {
     size_t size = 4;  // for 'count'
diff --git a/src/core/SkPictureData.h b/src/core/SkPictureData.h
index bef438c..48a4a31 100644
--- a/src/core/SkPictureData.h
+++ b/src/core/SkPictureData.h
@@ -8,11 +8,11 @@
 #ifndef SkPictureData_DEFINED
 #define SkPictureData_DEFINED
 
-#include "SkBitmap.h"
-#include "SkDrawable.h"
-#include "SkPicture.h"
-#include "SkPictureFlat.h"
-#include "SkTArray.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkDrawable.h"
+#include "include/core/SkPicture.h"
+#include "include/private/SkTArray.h"
+#include "src/core/SkPictureFlat.h"
 
 #include <memory>
 
diff --git a/src/core/SkPictureFlat.cpp b/src/core/SkPictureFlat.cpp
index 075f1a2..1f31b12 100644
--- a/src/core/SkPictureFlat.cpp
+++ b/src/core/SkPictureFlat.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkPictureFlat.h"
-#include "SkChecksum.h"
-#include "SkColorFilter.h"
-#include "SkDrawLooper.h"
-#include "SkMaskFilter.h"
-#include "SkShader.h"
-#include "SkTypeface.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkDrawLooper.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkChecksum.h"
+#include "src/core/SkPictureFlat.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/core/SkPictureFlat.h b/src/core/SkPictureFlat.h
index 606e08a..715d131 100644
--- a/src/core/SkPictureFlat.h
+++ b/src/core/SkPictureFlat.h
@@ -7,14 +7,14 @@
 #ifndef SkPictureFlat_DEFINED
 #define SkPictureFlat_DEFINED
 
-#include "SkCanvas.h"
-#include "SkChecksum.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
-#include "SkPaint.h"
-#include "SkPicture.h"
-#include "SkPtrRecorder.h"
-#include "SkTDynamicHash.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPicture.h"
+#include "include/private/SkChecksum.h"
+#include "src/core/SkPtrRecorder.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkTDynamicHash.h"
+#include "src/core/SkWriteBuffer.h"
 
 /*
  * Note: While adding new DrawTypes, it is necessary to add to the end of this list
diff --git a/src/core/SkPictureImageGenerator.cpp b/src/core/SkPictureImageGenerator.cpp
index ac34a3e..fcec6b5 100644
--- a/src/core/SkPictureImageGenerator.cpp
+++ b/src/core/SkPictureImageGenerator.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkImage_Base.h"
-#include "SkImageGenerator.h"
-#include "SkCanvas.h"
-#include "SkMakeUnique.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkPicture.h"
-#include "SkSurface.h"
-#include "SkTLazy.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImageGenerator.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkSurface.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkTLazy.h"
+#include "src/image/SkImage_Base.h"
 
 class SkPictureImageGenerator : public SkImageGenerator {
 public:
@@ -92,8 +92,8 @@
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 #if SK_SUPPORT_GPU
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrRecordingContextPriv.h"
 
 sk_sp<GrTextureProxy> SkPictureImageGenerator::onGenerateTexture(
         GrRecordingContext* ctx, const SkImageInfo& info,
diff --git a/src/core/SkPicturePlayback.cpp b/src/core/SkPicturePlayback.cpp
index dd9cb54..c065248 100644
--- a/src/core/SkPicturePlayback.cpp
+++ b/src/core/SkPicturePlayback.cpp
@@ -5,21 +5,21 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkCanvasPriv.h"
-#include "SkDrawShadowInfo.h"
-#include "SkFontPriv.h"
-#include "SkPaintPriv.h"
-#include "SkPatchUtils.h"
-#include "SkPictureData.h"
-#include "SkPicturePlayback.h"
-#include "SkPictureRecord.h"
-#include "SkReadBuffer.h"
-#include "SkRSXform.h"
-#include "SkSafeMath.h"
-#include "SkTextBlob.h"
-#include "SkTDArray.h"
-#include "SkTypes.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkRSXform.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTDArray.h"
+#include "src/core/SkCanvasPriv.h"
+#include "src/core/SkDrawShadowInfo.h"
+#include "src/core/SkFontPriv.h"
+#include "src/core/SkPaintPriv.h"
+#include "src/core/SkPictureData.h"
+#include "src/core/SkPicturePlayback.h"
+#include "src/core/SkPictureRecord.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSafeMath.h"
+#include "src/utils/SkPatchUtils.h"
 
 // matches old SkCanvas::SaveFlags
 enum LegacySaveFlags {
diff --git a/src/core/SkPicturePlayback.h b/src/core/SkPicturePlayback.h
index 6bc13bf..76f7cad 100644
--- a/src/core/SkPicturePlayback.h
+++ b/src/core/SkPicturePlayback.h
@@ -8,7 +8,7 @@
 #ifndef SkPicturePlayback_DEFINED
 #define SkPicturePlayback_DEFINED
 
-#include "SkPictureFlat.h"  // for DrawType
+#include "src/core/SkPictureFlat.h"
 
 class SkBitmap;
 class SkCanvas;
diff --git a/src/core/SkPicturePriv.h b/src/core/SkPicturePriv.h
index 5c772fc..38aecf4 100644
--- a/src/core/SkPicturePriv.h
+++ b/src/core/SkPicturePriv.h
@@ -8,7 +8,7 @@
 #ifndef SkPicturePriv_DEFINED
 #define SkPicturePriv_DEFINED
 
-#include "SkPicture.h"
+#include "include/core/SkPicture.h"
 
 class SkReadBuffer;
 class SkWriteBuffer;
diff --git a/src/core/SkPictureRecord.cpp b/src/core/SkPictureRecord.cpp
index b82a25d..af2f96a 100644
--- a/src/core/SkPictureRecord.cpp
+++ b/src/core/SkPictureRecord.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkPictureRecord.h"
+#include "src/core/SkPictureRecord.h"
 
-#include "SkCanvasPriv.h"
-#include "SkClipOpPriv.h"
-#include "SkDrawShadowInfo.h"
-#include "SkImage_Base.h"
-#include "SkMatrixPriv.h"
-#include "SkPatchUtils.h"
-#include "SkRRect.h"
-#include "SkRSXform.h"
-#include "SkTSearch.h"
-#include "SkTextBlob.h"
-#include "SkTo.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRSXform.h"
+#include "include/core/SkTextBlob.h"
+#include "include/private/SkTSearch.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkCanvasPriv.h"
+#include "src/core/SkClipOpPriv.h"
+#include "src/core/SkDrawShadowInfo.h"
+#include "src/core/SkMatrixPriv.h"
+#include "src/image/SkImage_Base.h"
+#include "src/utils/SkPatchUtils.h"
 
 #define HEAP_BLOCK_SIZE 4096
 
diff --git a/src/core/SkPictureRecord.h b/src/core/SkPictureRecord.h
index aca8b68..dbc0817 100644
--- a/src/core/SkPictureRecord.h
+++ b/src/core/SkPictureRecord.h
@@ -8,17 +8,17 @@
 #ifndef SkPictureRecord_DEFINED
 #define SkPictureRecord_DEFINED
 
-#include "SkCanvas.h"
-#include "SkCanvasVirtualEnforcer.h"
-#include "SkFlattenable.h"
-#include "SkPicture.h"
-#include "SkPictureData.h"
-#include "SkTArray.h"
-#include "SkTDArray.h"
-#include "SkTHash.h"
-#include "SkTo.h"
-#include "SkVertices.h"
-#include "SkWriter32.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkCanvasVirtualEnforcer.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkVertices.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTDArray.h"
+#include "include/private/SkTHash.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkPictureData.h"
+#include "src/core/SkWriter32.h"
 
 // These macros help with packing and unpacking a single byte value and
 // a 3 byte value into/out of a uint32_t
diff --git a/src/core/SkPictureRecorder.cpp b/src/core/SkPictureRecorder.cpp
index a37cd48..eab9517 100644
--- a/src/core/SkPictureRecorder.cpp
+++ b/src/core/SkPictureRecorder.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "SkBigPicture.h"
-#include "SkData.h"
-#include "SkDrawable.h"
-#include "SkMiniRecorder.h"
-#include "SkPictureRecorder.h"
-#include "SkRecord.h"
-#include "SkRecordDraw.h"
-#include "SkRecordOpts.h"
-#include "SkRecordedDrawable.h"
-#include "SkRecorder.h"
-#include "SkTypes.h"
+#include "include/core/SkData.h"
+#include "include/core/SkDrawable.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkTypes.h"
+#include "src/core/SkBigPicture.h"
+#include "src/core/SkMiniRecorder.h"
+#include "src/core/SkRecord.h"
+#include "src/core/SkRecordDraw.h"
+#include "src/core/SkRecordOpts.h"
+#include "src/core/SkRecordedDrawable.h"
+#include "src/core/SkRecorder.h"
 
 SkPictureRecorder::SkPictureRecorder() {
     fActivelyRecording = false;
diff --git a/src/core/SkPicture_none.cpp b/src/core/SkPicture_none.cpp
index b042600..ca509fa 100644
--- a/src/core/SkPicture_none.cpp
+++ b/src/core/SkPicture_none.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkData.h"
-#include "SkDrawable.h"
-#include "SkImageGenerator.h"
-#include "SkPicture.h"
-#include "SkPictureData.h"
-#include "SkPictureImageFilter.h"
-#include "SkPicturePlayback.h"
-#include "SkPicturePriv.h"
-#include "SkPictureRecorder.h"
-#include "SkPictureShader.h"
-#include "SkRecordedDrawable.h"
-#include "SkTypes.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkDrawable.h"
+#include "include/core/SkImageGenerator.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkTypes.h"
+#include "include/effects/SkPictureImageFilter.h"
+#include "src/core/SkPictureData.h"
+#include "src/core/SkPicturePlayback.h"
+#include "src/core/SkPicturePriv.h"
+#include "src/core/SkRecordedDrawable.h"
+#include "src/shaders/SkPictureShader.h"
 
 SkPicture::SkPicture() : fUniqueID(0) {}
 
diff --git a/src/core/SkPixelRef.cpp b/src/core/SkPixelRef.cpp
index f646f14..522e188 100644
--- a/src/core/SkPixelRef.cpp
+++ b/src/core/SkPixelRef.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmapCache.h"
-#include "SkMutex.h"
-#include "SkNextID.h"
-#include "SkPixelRef.h"
-#include "SkTraceEvent.h"
+#include "include/core/SkPixelRef.h"
+#include "include/private/SkMutex.h"
+#include "src/core/SkBitmapCache.h"
+#include "src/core/SkNextID.h"
+#include "src/core/SkTraceEvent.h"
 #include <atomic>
 
 uint32_t SkNextID::ImageID() {
diff --git a/src/core/SkPixmap.cpp b/src/core/SkPixmap.cpp
index 2c3faa3..6dc4ab7 100644
--- a/src/core/SkPixmap.cpp
+++ b/src/core/SkPixmap.cpp
@@ -5,26 +5,26 @@
  * found in the LICENSE file.
  */
 
-#include "SkPixmap.h"
+#include "include/core/SkPixmap.h"
 
-#include "SkBitmap.h"
-#include "SkColorData.h"
-#include "SkConvertPixels.h"
-#include "SkData.h"
-#include "SkDraw.h"
-#include "SkHalf.h"
-#include "SkImageInfoPriv.h"
-#include "SkImageShader.h"
-#include "SkMask.h"
-#include "SkNx.h"
-#include "SkPixmapPriv.h"
-#include "SkRasterClip.h"
-#include "SkReadPixelsRec.h"
-#include "SkSurface.h"
-#include "SkTemplates.h"
-#include "SkTo.h"
-#include "SkUnPreMultiply.h"
-#include "SkUtils.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkData.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkUnPreMultiply.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkHalf.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "include/private/SkNx.h"
+#include "include/private/SkTemplates.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkConvertPixels.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkMask.h"
+#include "src/core/SkPixmapPriv.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkUtils.h"
+#include "src/image/SkReadPixelsRec.h"
+#include "src/shaders/SkImageShader.h"
 
 #include <utility>
 
diff --git a/src/core/SkPixmapPriv.h b/src/core/SkPixmapPriv.h
index 4f3b3b5..2af647d 100644
--- a/src/core/SkPixmapPriv.h
+++ b/src/core/SkPixmapPriv.h
@@ -8,9 +8,9 @@
 #ifndef SkPixmapPriv_DEFINED
 #define SkPixmapPriv_DEFINED
 
-#include "SkPixmap.h"
-#include "SkEncodedOrigin.h"
-#include "SkAutoPixmapStorage.h"
+#include "include/codec/SkEncodedOrigin.h"
+#include "include/core/SkPixmap.h"
+#include "src/core/SkAutoPixmapStorage.h"
 
 class SkPixmapPriv {
 public:
diff --git a/src/core/SkPoint.cpp b/src/core/SkPoint.cpp
index dad8864..ee902be 100644
--- a/src/core/SkPoint.cpp
+++ b/src/core/SkPoint.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkMathPriv.h"
-#include "SkPointPriv.h"
+#include "src/core/SkMathPriv.h"
+#include "src/core/SkPointPriv.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/core/SkPoint3.cpp b/src/core/SkPoint3.cpp
index 1c1a27e..901e90e 100644
--- a/src/core/SkPoint3.cpp
+++ b/src/core/SkPoint3.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkPoint3.h"
+#include "include/core/SkPoint3.h"
 
 // Returns the square of the Euclidian distance to (x,y,z).
 static inline float get_length_squared(float x, float y, float z) {
diff --git a/src/core/SkPointPriv.h b/src/core/SkPointPriv.h
index 7089fcf..c8a6d52 100644
--- a/src/core/SkPointPriv.h
+++ b/src/core/SkPointPriv.h
@@ -8,8 +8,8 @@
 #ifndef SkPointPriv_DEFINED
 #define SkPointPriv_DEFINED
 
-#include "SkPoint.h"
-#include "SkRect.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
 
 class SkPointPriv {
 public:
diff --git a/src/core/SkPromiseImageTexture.cpp b/src/core/SkPromiseImageTexture.cpp
index 5c55a9a..761ae93 100644
--- a/src/core/SkPromiseImageTexture.cpp
+++ b/src/core/SkPromiseImageTexture.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkPromiseImageTexture.h"
-#include "SkMessageBus.h"
+#include "include/core/SkPromiseImageTexture.h"
+#include "include/private/SkMessageBus.h"
 
 #if SK_SUPPORT_GPU
 
diff --git a/src/core/SkPtrRecorder.cpp b/src/core/SkPtrRecorder.cpp
index dd73a7c..aba2084 100644
--- a/src/core/SkPtrRecorder.cpp
+++ b/src/core/SkPtrRecorder.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkPtrRecorder.h"
-#include "SkTSearch.h"
+#include "include/private/SkTSearch.h"
+#include "src/core/SkPtrRecorder.h"
 
 void SkPtrSet::reset() {
     Pair* p = fList.begin();
diff --git a/src/core/SkPtrRecorder.h b/src/core/SkPtrRecorder.h
index 402278e..2ea550f 100644
--- a/src/core/SkPtrRecorder.h
+++ b/src/core/SkPtrRecorder.h
@@ -9,9 +9,9 @@
 #ifndef SkPtrSet_DEFINED
 #define SkPtrSet_DEFINED
 
-#include "SkRefCnt.h"
-#include "SkFlattenable.h"
-#include "SkTDArray.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkTDArray.h"
 
 /**
  *  Maintains a set of ptrs, assigning each a unique ID [1...N]. Duplicate ptrs
diff --git a/src/core/SkQuadClipper.cpp b/src/core/SkQuadClipper.cpp
index baa7fee..d265635 100644
--- a/src/core/SkQuadClipper.cpp
+++ b/src/core/SkQuadClipper.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkQuadClipper.h"
-#include "SkGeometry.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkQuadClipper.h"
 
 #include <utility>
 
diff --git a/src/core/SkQuadClipper.h b/src/core/SkQuadClipper.h
index 1dd8576..c3f5d63 100644
--- a/src/core/SkQuadClipper.h
+++ b/src/core/SkQuadClipper.h
@@ -9,7 +9,7 @@
 #ifndef SkQuadClipper_DEFINED
 #define SkQuadClipper_DEFINED
 
-#include "SkPath.h"
+#include "include/core/SkPath.h"
 
 /** This class is initialized with a clip rectangle, and then can be fed quads,
     which must already be monotonic in Y.
diff --git a/src/core/SkRRect.cpp b/src/core/SkRRect.cpp
index 4fa097d..df5b2d4 100644
--- a/src/core/SkRRect.cpp
+++ b/src/core/SkRRect.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkRRectPriv.h"
-#include "SkBuffer.h"
-#include "SkMalloc.h"
-#include "SkMatrix.h"
-#include "SkScaleToSides.h"
+#include "include/core/SkMatrix.h"
+#include "include/private/SkMalloc.h"
+#include "src/core/SkBuffer.h"
+#include "src/core/SkRRectPriv.h"
+#include "src/core/SkScaleToSides.h"
 
 #include <cmath>
 #include <utility>
@@ -568,8 +568,8 @@
            (rr->readFromMemory(&storage, SkRRect::kSizeInMemory) == SkRRect::kSizeInMemory);
 }
 
-#include "SkString.h"
-#include "SkStringUtils.h"
+#include "include/core/SkString.h"
+#include "src/core/SkStringUtils.h"
 
 void SkRRect::dump(bool asHex) const {
     SkScalarAsStringType asType = asHex ? kHex_SkScalarAsStringType : kDec_SkScalarAsStringType;
diff --git a/src/core/SkRRectPriv.h b/src/core/SkRRectPriv.h
index 9c1e45b..4cf5295 100644
--- a/src/core/SkRRectPriv.h
+++ b/src/core/SkRRectPriv.h
@@ -8,7 +8,7 @@
 #ifndef SkRRectPriv_DEFINED
 #define SkRRectPriv_DEFINED
 
-#include "SkRRect.h"
+#include "include/core/SkRRect.h"
 
 class SkRBuffer;
 class SkWBuffer;
diff --git a/src/core/SkRTree.cpp b/src/core/SkRTree.cpp
index 8d9239c..7d44b1e 100644
--- a/src/core/SkRTree.cpp
+++ b/src/core/SkRTree.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkRTree.h"
+#include "src/core/SkRTree.h"
 
 SkRTree::SkRTree(SkScalar aspectRatio)
     : fCount(0), fAspectRatio(isfinite(aspectRatio) ? aspectRatio : 1) {}
diff --git a/src/core/SkRTree.h b/src/core/SkRTree.h
index 0fb491e..cdb2b50 100644
--- a/src/core/SkRTree.h
+++ b/src/core/SkRTree.h
@@ -8,9 +8,9 @@
 #ifndef SkRTree_DEFINED
 #define SkRTree_DEFINED
 
-#include "SkBBoxHierarchy.h"
-#include "SkRect.h"
-#include "SkTDArray.h"
+#include "include/core/SkRect.h"
+#include "include/private/SkTDArray.h"
+#include "src/core/SkBBoxHierarchy.h"
 
 /**
  * An R-Tree implementation. In short, it is a balanced n-ary tree containing a hierarchy of
diff --git a/src/core/SkRWBuffer.cpp b/src/core/SkRWBuffer.cpp
index 6e180a6..84e56e4 100644
--- a/src/core/SkRWBuffer.cpp
+++ b/src/core/SkRWBuffer.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkRWBuffer.h"
+#include "include/core/SkRWBuffer.h"
 
-#include "SkMakeUnique.h"
-#include "SkMalloc.h"
-#include "SkStream.h"
-#include "SkTo.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkMalloc.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkMakeUnique.h"
 
 #include <atomic>
 #include <new>
diff --git a/src/core/SkRasterClip.cpp b/src/core/SkRasterClip.cpp
index f3ebe4c..a2f796f 100644
--- a/src/core/SkRasterClip.cpp
+++ b/src/core/SkRasterClip.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkRasterClip.h"
-#include "SkPath.h"
-#include "SkRegionPriv.h"
+#include "include/core/SkPath.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkRegionPriv.h"
 
 enum MutateResult {
     kDoNothing_MutateResult,
diff --git a/src/core/SkRasterClip.h b/src/core/SkRasterClip.h
index ff80824..994efd6 100644
--- a/src/core/SkRasterClip.h
+++ b/src/core/SkRasterClip.h
@@ -8,9 +8,9 @@
 #ifndef SkRasterClip_DEFINED
 #define SkRasterClip_DEFINED
 
-#include "SkAAClip.h"
-#include "SkMacros.h"
-#include "SkRegion.h"
+#include "include/core/SkRegion.h"
+#include "include/private/SkMacros.h"
+#include "src/core/SkAAClip.h"
 
 class SkRRect;
 
diff --git a/src/core/SkRasterClipStack.h b/src/core/SkRasterClipStack.h
index fa55e46..3698e25 100644
--- a/src/core/SkRasterClipStack.h
+++ b/src/core/SkRasterClipStack.h
@@ -8,9 +8,9 @@
 #ifndef SkRasterClipStack_DEFINED
 #define SkRasterClipStack_DEFINED
 
-#include "SkClipOp.h"
-#include "SkDeque.h"
-#include "SkRasterClip.h"
+#include "include/core/SkClipOp.h"
+#include "include/core/SkDeque.h"
+#include "src/core/SkRasterClip.h"
 #include <new>
 
 template <typename T> class SkTStack {
diff --git a/src/core/SkRasterPipeline.cpp b/src/core/SkRasterPipeline.cpp
index eeb6c28..6f3a866 100644
--- a/src/core/SkRasterPipeline.cpp
+++ b/src/core/SkRasterPipeline.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkRasterPipeline.h"
-#include "SkOpts.h"
+#include "src/core/SkOpts.h"
+#include "src/core/SkRasterPipeline.h"
 #include <algorithm>
 
 SkRasterPipeline::SkRasterPipeline(SkArenaAlloc* alloc) : fAlloc(alloc) {
diff --git a/src/core/SkRasterPipeline.h b/src/core/SkRasterPipeline.h
index 3ec9246..b869e54 100644
--- a/src/core/SkRasterPipeline.h
+++ b/src/core/SkRasterPipeline.h
@@ -8,12 +8,12 @@
 #ifndef SkRasterPipeline_DEFINED
 #define SkRasterPipeline_DEFINED
 
-#include "SkArenaAlloc.h"
-#include "SkColor.h"
-#include "SkImageInfo.h"
-#include "SkNx.h"
-#include "SkTArray.h" // TODO: unused
-#include "SkTypes.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkNx.h"
+#include "include/private/SkTArray.h"
 #include <functional>
 #include <vector>  // TODO: unused
 
diff --git a/src/core/SkRasterPipelineBlitter.cpp b/src/core/SkRasterPipelineBlitter.cpp
index f9cde3e..b02a4a5 100644
--- a/src/core/SkRasterPipelineBlitter.cpp
+++ b/src/core/SkRasterPipelineBlitter.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "SkArenaAlloc.h"
-#include "SkBlendModePriv.h"
-#include "SkBlitter.h"
-#include "SkColor.h"
-#include "SkColorFilter.h"
-#include "SkColorSpacePriv.h"
-#include "SkColorSpaceXformSteps.h"
-#include "SkOpts.h"
-#include "SkPaint.h"
-#include "SkRasterPipeline.h"
-#include "SkShader.h"
-#include "SkShaderBase.h"
-#include "SkTo.h"
-#include "SkUtils.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkBlendModePriv.h"
+#include "src/core/SkBlitter.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkColorSpaceXformSteps.h"
+#include "src/core/SkOpts.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/core/SkUtils.h"
+#include "src/shaders/SkShaderBase.h"
 
 class SkRasterPipelineBlitter final : public SkBlitter {
 public:
diff --git a/src/core/SkReadBuffer.cpp b/src/core/SkReadBuffer.cpp
index 9febf01..f470968 100644
--- a/src/core/SkReadBuffer.cpp
+++ b/src/core/SkReadBuffer.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "SkAutoMalloc.h"
-#include "SkBitmap.h"
-#include "SkData.h"
-#include "SkImage.h"
-#include "SkImageGenerator.h"
-#include "SkMakeUnique.h"
-#include "SkMathPriv.h"
-#include "SkMatrixPriv.h"
-#include "SkReadBuffer.h"
-#include "SkSafeMath.h"
-#include "SkStream.h"
-#include "SkTypeface.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageGenerator.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkMathPriv.h"
+#include "src/core/SkMatrixPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSafeMath.h"
 
 #ifndef SK_DISABLE_READBUFFER
 
diff --git a/src/core/SkReadBuffer.h b/src/core/SkReadBuffer.h
index 5c7aeef..f135726 100644
--- a/src/core/SkReadBuffer.h
+++ b/src/core/SkReadBuffer.h
@@ -8,20 +8,20 @@
 #ifndef SkReadBuffer_DEFINED
 #define SkReadBuffer_DEFINED
 
-#include "SkColorFilter.h"
-#include "SkSerialProcs.h"
-#include "SkDrawLooper.h"
-#include "SkFont.h"
-#include "SkImageFilter.h"
-#include "SkMaskFilterBase.h"
-#include "SkPaintPriv.h"
-#include "SkPath.h"
-#include "SkPathEffect.h"
-#include "SkPicture.h"
-#include "SkReader32.h"
-#include "SkRefCnt.h"
-#include "SkShaderBase.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkDrawLooper.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSerialProcs.h"
+#include "src/core/SkMaskFilterBase.h"
+#include "src/core/SkPaintPriv.h"
+#include "src/core/SkReader32.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/shaders/SkShaderBase.h"
 
 class SkData;
 class SkImage;
diff --git a/src/core/SkReader32.h b/src/core/SkReader32.h
index bfdfa4f..ff2b820 100644
--- a/src/core/SkReader32.h
+++ b/src/core/SkReader32.h
@@ -9,13 +9,13 @@
 #ifndef SkReader32_DEFINED
 #define SkReader32_DEFINED
 
-#include "SkData.h"
-#include "SkMatrix.h"
-#include "SkNoncopyable.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkRRect.h"
-#include "SkScalar.h"
+#include "include/core/SkData.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkScalar.h"
+#include "include/private/SkNoncopyable.h"
 
 class SkString;
 
diff --git a/src/core/SkRecord.cpp b/src/core/SkRecord.cpp
index 3553ff5..6f93944 100644
--- a/src/core/SkRecord.cpp
+++ b/src/core/SkRecord.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkRecord.h"
-#include "SkImage.h"
+#include "include/core/SkImage.h"
+#include "src/core/SkRecord.h"
 #include <algorithm>
 
 SkRecord::~SkRecord() {
diff --git a/src/core/SkRecord.h b/src/core/SkRecord.h
index feabec8..0565acc 100644
--- a/src/core/SkRecord.h
+++ b/src/core/SkRecord.h
@@ -8,10 +8,10 @@
 #ifndef SkRecord_DEFINED
 #define SkRecord_DEFINED
 
-#include "SkArenaAlloc.h"
-#include "SkRecords.h"
-#include "SkTLogic.h"
-#include "SkTemplates.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkTLogic.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkRecords.h"
 
 // SkRecord represents a sequence of SkCanvas calls, saved for future use.
 // These future uses may include: replay, optimization, serialization, or combinations of those.
diff --git a/src/core/SkRecordDraw.cpp b/src/core/SkRecordDraw.cpp
index 2313246..501de4d 100644
--- a/src/core/SkRecordDraw.cpp
+++ b/src/core/SkRecordDraw.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkRecordDraw.h"
-#include "SkCanvasPriv.h"
-#include "SkImage.h"
-#include "SkPatchUtils.h"
+#include "include/core/SkImage.h"
+#include "src/core/SkCanvasPriv.h"
+#include "src/core/SkRecordDraw.h"
+#include "src/utils/SkPatchUtils.h"
 
 void SkRecordDraw(const SkRecord& record,
                   SkCanvas* canvas,
diff --git a/src/core/SkRecordDraw.h b/src/core/SkRecordDraw.h
index fdf9882..baffab5 100644
--- a/src/core/SkRecordDraw.h
+++ b/src/core/SkRecordDraw.h
@@ -8,11 +8,11 @@
 #ifndef SkRecordDraw_DEFINED
 #define SkRecordDraw_DEFINED
 
-#include "SkBBoxHierarchy.h"
-#include "SkBigPicture.h"
-#include "SkCanvas.h"
-#include "SkMatrix.h"
-#include "SkRecord.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMatrix.h"
+#include "src/core/SkBBoxHierarchy.h"
+#include "src/core/SkBigPicture.h"
+#include "src/core/SkRecord.h"
 
 class SkDrawable;
 class SkLayerInfo;
diff --git a/src/core/SkRecordOpts.cpp b/src/core/SkRecordOpts.cpp
index efd3d4e..31eb388 100644
--- a/src/core/SkRecordOpts.cpp
+++ b/src/core/SkRecordOpts.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkRecordOpts.h"
+#include "src/core/SkRecordOpts.h"
 
-#include "SkCanvasPriv.h"
-#include "SkRecordPattern.h"
-#include "SkRecords.h"
-#include "SkTDArray.h"
+#include "include/private/SkTDArray.h"
+#include "src/core/SkCanvasPriv.h"
+#include "src/core/SkRecordPattern.h"
+#include "src/core/SkRecords.h"
 
 using namespace SkRecords;
 
diff --git a/src/core/SkRecordOpts.h b/src/core/SkRecordOpts.h
index f9db069..a1e3c24 100644
--- a/src/core/SkRecordOpts.h
+++ b/src/core/SkRecordOpts.h
@@ -8,7 +8,7 @@
 #ifndef SkRecordOpts_DEFINED
 #define SkRecordOpts_DEFINED
 
-#include "SkRecord.h"
+#include "src/core/SkRecord.h"
 
 // Run all optimizations in recommended order.
 void SkRecordOptimize(SkRecord*);
diff --git a/src/core/SkRecordPattern.h b/src/core/SkRecordPattern.h
index dcce993..7e96592 100644
--- a/src/core/SkRecordPattern.h
+++ b/src/core/SkRecordPattern.h
@@ -8,8 +8,8 @@
 #ifndef SkRecordPattern_DEFINED
 #define SkRecordPattern_DEFINED
 
-#include "SkRecord.h"
-#include "SkTLogic.h"
+#include "include/private/SkTLogic.h"
+#include "src/core/SkRecord.h"
 
 namespace SkRecords {
 
diff --git a/src/core/SkRecordedDrawable.cpp b/src/core/SkRecordedDrawable.cpp
index be8a2cb..c9af8a2 100644
--- a/src/core/SkRecordedDrawable.cpp
+++ b/src/core/SkRecordedDrawable.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkMatrix.h"
-#include "SkPictureData.h"
-#include "SkPicturePlayback.h"
-#include "SkPictureRecord.h"
-#include "SkPictureRecorder.h"
-#include "SkRecordedDrawable.h"
-#include "SkRecordDraw.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPictureRecorder.h"
+#include "src/core/SkPictureData.h"
+#include "src/core/SkPicturePlayback.h"
+#include "src/core/SkPictureRecord.h"
+#include "src/core/SkRecordDraw.h"
+#include "src/core/SkRecordedDrawable.h"
 
 void SkRecordedDrawable::onDraw(SkCanvas* canvas) {
     SkDrawable* const* drawables = nullptr;
diff --git a/src/core/SkRecordedDrawable.h b/src/core/SkRecordedDrawable.h
index a3fca56..75502cd 100644
--- a/src/core/SkRecordedDrawable.h
+++ b/src/core/SkRecordedDrawable.h
@@ -7,10 +7,10 @@
 #ifndef SkRecordedDrawable_DEFINED
 #define SkRecordedDrawable_DEFINED
 
-#include "SkBBoxHierarchy.h"
-#include "SkDrawable.h"
-#include "SkRecord.h"
-#include "SkRecorder.h"
+#include "include/core/SkDrawable.h"
+#include "src/core/SkBBoxHierarchy.h"
+#include "src/core/SkRecord.h"
+#include "src/core/SkRecorder.h"
 
 class SkRecordedDrawable : public SkDrawable {
 public:
diff --git a/src/core/SkRecorder.cpp b/src/core/SkRecorder.cpp
index 58f367d..afd8a35 100644
--- a/src/core/SkRecorder.cpp
+++ b/src/core/SkRecorder.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkRecorder.h"
+#include "src/core/SkRecorder.h"
 
-#include "SkBigPicture.h"
-#include "SkCanvasPriv.h"
-#include "SkImage.h"
-#include "SkPatchUtils.h"
-#include "SkPicture.h"
-#include "SkSurface.h"
-#include "SkTo.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkSurface.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkBigPicture.h"
+#include "src/core/SkCanvasPriv.h"
+#include "src/utils/SkPatchUtils.h"
 
 #include <new>
 
diff --git a/src/core/SkRecorder.h b/src/core/SkRecorder.h
index 0df2cc4..cea6dff 100644
--- a/src/core/SkRecorder.h
+++ b/src/core/SkRecorder.h
@@ -8,13 +8,13 @@
 #ifndef SkRecorder_DEFINED
 #define SkRecorder_DEFINED
 
-#include "SkBigPicture.h"
-#include "SkCanvasVirtualEnforcer.h"
-#include "SkMiniRecorder.h"
-#include "SkNoDrawCanvas.h"
-#include "SkRecord.h"
-#include "SkRecords.h"
-#include "SkTDArray.h"
+#include "include/core/SkCanvasVirtualEnforcer.h"
+#include "include/private/SkTDArray.h"
+#include "include/utils/SkNoDrawCanvas.h"
+#include "src/core/SkBigPicture.h"
+#include "src/core/SkMiniRecorder.h"
+#include "src/core/SkRecord.h"
+#include "src/core/SkRecords.h"
 
 class SkBBHFactory;
 
diff --git a/src/core/SkRecords.cpp b/src/core/SkRecords.cpp
index e4b9086..1b27660 100644
--- a/src/core/SkRecords.cpp
+++ b/src/core/SkRecords.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkPathPriv.h"
-#include "SkRecords.h"
+#include "src/core/SkPathPriv.h"
+#include "src/core/SkRecords.h"
 
 namespace SkRecords {
     PreCachedPath::PreCachedPath(const SkPath& path) : SkPath(path) {
diff --git a/src/core/SkRecords.h b/src/core/SkRecords.h
index 4ac005f..602670a 100644
--- a/src/core/SkRecords.h
+++ b/src/core/SkRecords.h
@@ -8,22 +8,22 @@
 #ifndef SkRecords_DEFINED
 #define SkRecords_DEFINED
 
-#include "SkData.h"
-#include "SkCanvas.h"
-#include "SkDrawable.h"
-#include "SkDrawShadowInfo.h"
-#include "SkImage.h"
-#include "SkImageFilter.h"
-#include "SkMatrix.h"
-#include "SkPath.h"
-#include "SkPicture.h"
-#include "SkRect.h"
-#include "SkRegion.h"
-#include "SkRRect.h"
-#include "SkRSXform.h"
-#include "SkString.h"
-#include "SkTextBlob.h"
-#include "SkVertices.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkDrawable.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRSXform.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkVertices.h"
+#include "src/core/SkDrawShadowInfo.h"
 
 namespace SkRecords {
 
diff --git a/src/core/SkRect.cpp b/src/core/SkRect.cpp
index fa7dbc0..0964a1a 100644
--- a/src/core/SkRect.cpp
+++ b/src/core/SkRect.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkRect.h"
+#include "include/core/SkRect.h"
 
-#include "SkMalloc.h"
+#include "include/private/SkMalloc.h"
 
 void SkIRect::join(int32_t left, int32_t top, int32_t right, int32_t bottom) {
     // do nothing if the params are empty
@@ -37,7 +37,7 @@
     quad[3].set(fLeft, fBottom);
 }
 
-#include "SkNx.h"
+#include "include/private/SkNx.h"
 
 bool SkRect::setBoundsCheck(const SkPoint pts[], int count) {
     SkASSERT((pts && count > 0) || count == 0);
@@ -128,8 +128,8 @@
 
 ////////////////////////////////////////////////////////////////////////////////////////////////
 
-#include "SkString.h"
-#include "SkStringUtils.h"
+#include "include/core/SkString.h"
+#include "src/core/SkStringUtils.h"
 
 static const char* set_scalar(SkString* storage, SkScalar value, SkScalarAsStringType asType) {
     storage->reset();
diff --git a/src/core/SkRectPriv.h b/src/core/SkRectPriv.h
index 2f90302..e812f5e 100644
--- a/src/core/SkRectPriv.h
+++ b/src/core/SkRectPriv.h
@@ -8,8 +8,8 @@
 #ifndef SkRectPriv_DEFINED
 #define SkRectPriv_DEFINED
 
-#include "SkRect.h"
-#include "SkMathPriv.h"
+#include "include/core/SkRect.h"
+#include "src/core/SkMathPriv.h"
 
 class SkRectPriv {
 public:
diff --git a/src/core/SkRegion.cpp b/src/core/SkRegion.cpp
index 9176c7a..f66c6f7 100644
--- a/src/core/SkRegion.cpp
+++ b/src/core/SkRegion.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkRegion.h"
+#include "include/core/SkRegion.h"
 
-#include "SkMacros.h"
-#include "SkRegionPriv.h"
-#include "SkSafeMath.h"
-#include "SkTemplates.h"
-#include "SkTo.h"
-#include "SkUTF.h"
+#include "include/private/SkMacros.h"
+#include "include/private/SkTemplates.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkRegionPriv.h"
+#include "src/core/SkSafeMath.h"
+#include "src/utils/SkUTF.h"
 
 #include <utility>
 
@@ -1140,7 +1140,7 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkBuffer.h"
+#include "src/core/SkBuffer.h"
 
 size_t SkRegion::writeToMemory(void* storage) const {
     if (nullptr == storage) {
diff --git a/src/core/SkRegionPriv.h b/src/core/SkRegionPriv.h
index ee33ad1..2d0559c 100644
--- a/src/core/SkRegionPriv.h
+++ b/src/core/SkRegionPriv.h
@@ -8,9 +8,9 @@
 #ifndef SkRegionPriv_DEFINED
 #define SkRegionPriv_DEFINED
 
-#include "SkMalloc.h"
-#include "SkRegion.h"
-#include "SkTo.h"
+#include "include/core/SkRegion.h"
+#include "include/private/SkMalloc.h"
+#include "include/private/SkTo.h"
 #include <atomic>
 #include <functional>
 
diff --git a/src/core/SkRegion_path.cpp b/src/core/SkRegion_path.cpp
index 93f5fc5..e877c8c 100644
--- a/src/core/SkRegion_path.cpp
+++ b/src/core/SkRegion_path.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlitter.h"
-#include "SkPath.h"
-#include "SkRegionPriv.h"
-#include "SkSafeMath.h"
-#include "SkScan.h"
-#include "SkTDArray.h"
-#include "SkTSort.h"
-#include "SkTo.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkTDArray.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkBlitter.h"
+#include "src/core/SkRegionPriv.h"
+#include "src/core/SkSafeMath.h"
+#include "src/core/SkScan.h"
+#include "src/core/SkTSort.h"
 
 // The rgnbuilder caller *seems* to pass short counts, possible often seens early failure, so
 // we may not want to promote this to a "std" routine just yet.
diff --git a/src/core/SkRemoteGlyphCache.cpp b/src/core/SkRemoteGlyphCache.cpp
index 4a3a620..f711dae 100644
--- a/src/core/SkRemoteGlyphCache.cpp
+++ b/src/core/SkRemoteGlyphCache.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkRemoteGlyphCache.h"
+#include "src/core/SkRemoteGlyphCache.h"
 
 #include <iterator>
 #include <memory>
@@ -13,19 +13,19 @@
 #include <string>
 #include <tuple>
 
-#include "SkDevice.h"
-#include "SkDraw.h"
-#include "SkGlyphRun.h"
-#include "SkRemoteGlyphCacheImpl.h"
-#include "SkStrike.h"
-#include "SkStrikeCache.h"
-#include "SkTLazy.h"
-#include "SkTraceEvent.h"
-#include "SkTypeface_remote.h"
+#include "src/core/SkDevice.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkGlyphRun.h"
+#include "src/core/SkRemoteGlyphCacheImpl.h"
+#include "src/core/SkStrike.h"
+#include "src/core/SkStrikeCache.h"
+#include "src/core/SkTLazy.h"
+#include "src/core/SkTraceEvent.h"
+#include "src/core/SkTypeface_remote.h"
 
 #if SK_SUPPORT_GPU
-#include "GrDrawOpAtlas.h"
-#include "text/GrTextContext.h"
+#include "src/gpu/GrDrawOpAtlas.h"
+#include "src/gpu/text/GrTextContext.h"
 #endif
 
 static SkDescriptor* auto_descriptor_from_desc(const SkDescriptor* source_desc,
diff --git a/src/core/SkRemoteGlyphCache.h b/src/core/SkRemoteGlyphCache.h
index 7b0dd18..1b61a30 100644
--- a/src/core/SkRemoteGlyphCache.h
+++ b/src/core/SkRemoteGlyphCache.h
@@ -14,16 +14,16 @@
 #include <unordered_set>
 #include <vector>
 
-#include "../private/SkTHash.h"
-#include "SkData.h"
-#include "SkDevice.h"
-#include "SkDrawLooper.h"
-#include "SkMakeUnique.h"
-#include "SkNoDrawCanvas.h"
-#include "SkRefCnt.h"
-#include "SkSerialProcs.h"
-#include "SkStrikeInterface.h"
-#include "SkTypeface.h"
+#include "include/core/SkData.h"
+#include "include/core/SkDrawLooper.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSerialProcs.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkTHash.h"
+#include "include/utils/SkNoDrawCanvas.h"
+#include "src/core/SkDevice.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkStrikeInterface.h"
 
 class Serializer;
 enum SkAxisAlignment : uint32_t;
diff --git a/src/core/SkRemoteGlyphCacheImpl.h b/src/core/SkRemoteGlyphCacheImpl.h
index b51c0ca..cabc619 100644
--- a/src/core/SkRemoteGlyphCacheImpl.h
+++ b/src/core/SkRemoteGlyphCacheImpl.h
@@ -8,11 +8,11 @@
 #ifndef SkRemoteGlyphCacheImpl_DEFINED
 #define SkRemoteGlyphCacheImpl_DEFINED
 
-#include "SkArenaAlloc.h"
-#include "SkDescriptor.h"
-#include "SkGlyphRun.h"
-#include "SkGlyphRunPainter.h"
-#include "SkRemoteGlyphCache.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkDescriptor.h"
+#include "src/core/SkGlyphRun.h"
+#include "src/core/SkGlyphRunPainter.h"
+#include "src/core/SkRemoteGlyphCache.h"
 
 class SkStrikeServer::SkGlyphCacheState : public SkStrikeInterface {
 public:
diff --git a/src/core/SkResourceCache.cpp b/src/core/SkResourceCache.cpp
index d37bce0..ff52a49 100644
--- a/src/core/SkResourceCache.cpp
+++ b/src/core/SkResourceCache.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkResourceCache.h"
+#include "src/core/SkResourceCache.h"
 
-#include "SkDiscardableMemory.h"
-#include "SkMessageBus.h"
-#include "SkMipMap.h"
-#include "SkMutex.h"
-#include "SkOpts.h"
-#include "SkTo.h"
-#include "SkTraceMemoryDump.h"
+#include "include/core/SkTraceMemoryDump.h"
+#include "include/private/SkMessageBus.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkDiscardableMemory.h"
+#include "src/core/SkMipMap.h"
+#include "src/core/SkOpts.h"
 
 #include <stddef.h>
 #include <stdlib.h>
@@ -60,7 +60,7 @@
                          (fCount32 - kUnhashedLocal32s) << 2);
 }
 
-#include "SkTHash.h"
+#include "include/private/SkTHash.h"
 
 namespace {
     struct HashTraits {
@@ -539,8 +539,8 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkGraphics.h"
-#include "SkImageFilter.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkImageFilter.h"
 
 size_t SkGraphics::GetResourceCacheTotalBytesUsed() {
     return SkResourceCache::GetTotalBytesUsed();
diff --git a/src/core/SkResourceCache.h b/src/core/SkResourceCache.h
index c805852..0e183f7 100644
--- a/src/core/SkResourceCache.h
+++ b/src/core/SkResourceCache.h
@@ -8,9 +8,9 @@
 #ifndef SkResourceCache_DEFINED
 #define SkResourceCache_DEFINED
 
-#include "SkBitmap.h"
-#include "SkMessageBus.h"
-#include "SkTDArray.h"
+#include "include/core/SkBitmap.h"
+#include "include/private/SkMessageBus.h"
+#include "include/private/SkTDArray.h"
 
 class SkCachedData;
 class SkDiscardableMemory;
diff --git a/src/core/SkSafeMath.h b/src/core/SkSafeMath.h
index c092272..ba64f12 100644
--- a/src/core/SkSafeMath.h
+++ b/src/core/SkSafeMath.h
@@ -8,8 +8,8 @@
 #ifndef SkSafeMath_DEFINED
 #define SkSafeMath_DEFINED
 
-#include "SkTFitsIn.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTFitsIn.h"
 #include <limits>
 
 // SkSafeMath always check that a series of operations do not overflow.
diff --git a/src/core/SkScalar.cpp b/src/core/SkScalar.cpp
index 87a5073..66f875e 100644
--- a/src/core/SkScalar.cpp
+++ b/src/core/SkScalar.cpp
@@ -6,8 +6,8 @@
  */
 
 
-#include "SkMath.h"
-#include "SkScalar.h"
+#include "include/core/SkMath.h"
+#include "include/core/SkScalar.h"
 
 SkScalar SkScalarInterpFunc(SkScalar searchKey, const SkScalar keys[],
                             const SkScalar values[], int length) {
diff --git a/src/core/SkScaleToSides.h b/src/core/SkScaleToSides.h
index 61bff63..e48d542 100644
--- a/src/core/SkScaleToSides.h
+++ b/src/core/SkScaleToSides.h
@@ -8,8 +8,8 @@
 #ifndef SkScaleToSides_DEFINED
 #define SkScaleToSides_DEFINED
 
-#include "SkScalar.h"
-#include "SkTypes.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkTypes.h"
 
 #include <cmath>
 #include <utility>
diff --git a/src/core/SkScalerContext.cpp b/src/core/SkScalerContext.cpp
index 4e1e715..d197fa7 100644
--- a/src/core/SkScalerContext.cpp
+++ b/src/core/SkScalerContext.cpp
@@ -5,33 +5,33 @@
  * found in the LICENSE file.
  */
 
-#include "SkPaint.h"
-#include "SkScalerContext.h"
+#include "include/core/SkPaint.h"
+#include "src/core/SkScalerContext.h"
 
-#include "SkAutoMalloc.h"
-#include "SkAutoPixmapStorage.h"
-#include "SkColorData.h"
-#include "SkDescriptor.h"
-#include "SkDraw.h"
-#include "SkFontMetrics.h"
-#include "SkFontPriv.h"
-#include "SkGlyph.h"
-#include "SkMakeUnique.h"
-#include "SkMaskFilter.h"
-#include "SkMaskGamma.h"
-#include "SkMatrix22.h"
-#include "SkPaintPriv.h"
-#include "SkPathEffect.h"
-#include "SkPathPriv.h"
-#include "SkRasterClip.h"
-#include "SkReadBuffer.h"
-#include "SkRectPriv.h"
-#include "SkStroke.h"
-#include "SkStrokeRec.h"
-#include "SkSurfacePriv.h"
-#include "SkTextFormatParams.h"
-#include "SkTo.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkAutoPixmapStorage.h"
+#include "src/core/SkDescriptor.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkFontPriv.h"
+#include "src/core/SkGlyph.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkMaskGamma.h"
+#include "src/core/SkPaintPriv.h"
+#include "src/core/SkPathPriv.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkRectPriv.h"
+#include "src/core/SkStroke.h"
+#include "src/core/SkSurfacePriv.h"
+#include "src/core/SkTextFormatParams.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/utils/SkMatrix22.h"
 #include <new>
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/src/core/SkScalerContext.h b/src/core/SkScalerContext.h
index 946245c..96f3dc0 100644
--- a/src/core/SkScalerContext.h
+++ b/src/core/SkScalerContext.h
@@ -10,19 +10,19 @@
 
 #include <memory>
 
-#include "SkFont.h"
-#include "SkFontTypes.h"
-#include "SkGlyph.h"
-#include "SkMacros.h"
-#include "SkMask.h"
-#include "SkMaskFilter.h"
-#include "SkMaskGamma.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkStrikeInterface.h"
-#include "SkSurfacePriv.h"
-#include "SkTypeface.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkFontTypes.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkMacros.h"
+#include "src/core/SkGlyph.h"
+#include "src/core/SkMask.h"
+#include "src/core/SkMaskGamma.h"
+#include "src/core/SkStrikeInterface.h"
+#include "src/core/SkSurfacePriv.h"
+#include "src/core/SkWriteBuffer.h"
 
 class SkAutoDescriptor;
 class SkDescriptor;
diff --git a/src/core/SkScan.cpp b/src/core/SkScan.cpp
index c7a0614..b93f5f4 100644
--- a/src/core/SkScan.cpp
+++ b/src/core/SkScan.cpp
@@ -6,9 +6,9 @@
  */
 
 
-#include "SkScan.h"
-#include "SkBlitter.h"
-#include "SkRasterClip.h"
+#include "src/core/SkBlitter.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkScan.h"
 
 std::atomic<bool> gSkUseAnalyticAA{true};
 std::atomic<bool> gSkForceAnalyticAA{false};
diff --git a/src/core/SkScan.h b/src/core/SkScan.h
index 92f6d1c..a1db6e5 100644
--- a/src/core/SkScan.h
+++ b/src/core/SkScan.h
@@ -9,8 +9,8 @@
 #ifndef SkScan_DEFINED
 #define SkScan_DEFINED
 
-#include "SkFixed.h"
-#include "SkRect.h"
+#include "include/core/SkRect.h"
+#include "include/private/SkFixed.h"
 #include <atomic>
 
 class SkRasterClip;
diff --git a/src/core/SkScanPriv.h b/src/core/SkScanPriv.h
index a1fddb2..2bec85f 100644
--- a/src/core/SkScanPriv.h
+++ b/src/core/SkScanPriv.h
@@ -8,9 +8,9 @@
 #ifndef SkScanPriv_DEFINED
 #define SkScanPriv_DEFINED
 
-#include "SkPath.h"
-#include "SkScan.h"
-#include "SkBlitter.h"
+#include "include/core/SkPath.h"
+#include "src/core/SkBlitter.h"
+#include "src/core/SkScan.h"
 
 // controls how much we super-sample (when we use that scan convertion)
 #define SK_SUPERSAMPLE_SHIFT    2
diff --git a/src/core/SkScan_AAAPath.cpp b/src/core/SkScan_AAAPath.cpp
index fd4adb9..a9c0af4 100644
--- a/src/core/SkScan_AAAPath.cpp
+++ b/src/core/SkScan_AAAPath.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "SkAnalyticEdge.h"
-#include "SkAntiRun.h"
-#include "SkAutoMalloc.h"
-#include "SkBlitter.h"
-#include "SkEdge.h"
-#include "SkEdgeBuilder.h"
-#include "SkGeometry.h"
-#include "SkPath.h"
-#include "SkQuadClipper.h"
-#include "SkRasterClip.h"
-#include "SkRegion.h"
-#include "SkScan.h"
-#include "SkScanPriv.h"
-#include "SkTSort.h"
-#include "SkTemplates.h"
-#include "SkTo.h"
-#include "SkUTF.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/private/SkTemplates.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkAnalyticEdge.h"
+#include "src/core/SkAntiRun.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkBlitter.h"
+#include "src/core/SkEdge.h"
+#include "src/core/SkEdgeBuilder.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkQuadClipper.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkScan.h"
+#include "src/core/SkScanPriv.h"
+#include "src/core/SkTSort.h"
+#include "src/utils/SkUTF.h"
 
 #include <utility>
 
diff --git a/src/core/SkScan_AntiPath.cpp b/src/core/SkScan_AntiPath.cpp
index d21cc2b..9b21e4b 100644
--- a/src/core/SkScan_AntiPath.cpp
+++ b/src/core/SkScan_AntiPath.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkScanPriv.h"
+#include "src/core/SkScanPriv.h"
 
-#include "SkAntiRun.h"
-#include "SkBlitter.h"
-#include "SkMatrix.h"
-#include "SkPath.h"
-#include "SkPathPriv.h"
-#include "SkRegion.h"
-#include "SkTo.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkAntiRun.h"
+#include "src/core/SkBlitter.h"
+#include "src/core/SkPathPriv.h"
 
 #define SHIFT   SK_SUPERSAMPLE_SHIFT
 #define SCALE   (1 << SHIFT)
@@ -801,7 +801,7 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkRasterClip.h"
+#include "src/core/SkRasterClip.h"
 
 void SkScan::FillPath(const SkPath& path, const SkRasterClip& clip, SkBlitter* blitter) {
     if (clip.isEmpty() || !path.isFinite()) {
diff --git a/src/core/SkScan_Antihair.cpp b/src/core/SkScan_Antihair.cpp
index 542f58e..b215fa8 100644
--- a/src/core/SkScan_Antihair.cpp
+++ b/src/core/SkScan_Antihair.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkScan.h"
+#include "src/core/SkScan.h"
 
-#include "SkBlitter.h"
-#include "SkColorData.h"
-#include "SkFDot6.h"
-#include "SkLineClipper.h"
-#include "SkRasterClip.h"
-#include "SkTo.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkBlitter.h"
+#include "src/core/SkFDot6.h"
+#include "src/core/SkLineClipper.h"
+#include "src/core/SkRasterClip.h"
 
 #include <utility>
 
diff --git a/src/core/SkScan_Hairline.cpp b/src/core/SkScan_Hairline.cpp
index d9c0408..6e85fc4 100644
--- a/src/core/SkScan_Hairline.cpp
+++ b/src/core/SkScan_Hairline.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkScan.h"
-#include "SkBlitter.h"
-#include "SkMathPriv.h"
-#include "SkPaint.h"
-#include "SkRasterClip.h"
-#include "SkFDot6.h"
-#include "SkLineClipper.h"
+#include "include/core/SkPaint.h"
+#include "src/core/SkBlitter.h"
+#include "src/core/SkFDot6.h"
+#include "src/core/SkLineClipper.h"
+#include "src/core/SkMathPriv.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkScan.h"
 
 #include <utility>
 
@@ -202,9 +202,9 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkPath.h"
-#include "SkGeometry.h"
-#include "SkNx.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkNx.h"
+#include "src/core/SkGeometry.h"
 
 #define kMaxCubicSubdivideLevel 9
 #define kMaxQuadSubdivideLevel  5
diff --git a/src/core/SkScan_Path.cpp b/src/core/SkScan_Path.cpp
index 2120343..419bf9b 100644
--- a/src/core/SkScan_Path.cpp
+++ b/src/core/SkScan_Path.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlitter.h"
-#include "SkEdge.h"
-#include "SkEdgeBuilder.h"
-#include "SkGeometry.h"
-#include "SkMacros.h"
-#include "SkPath.h"
-#include "SkQuadClipper.h"
-#include "SkRasterClip.h"
-#include "SkRectPriv.h"
-#include "SkRegion.h"
-#include "SkSafe32.h"
-#include "SkScanPriv.h"
-#include "SkTSort.h"
-#include "SkTemplates.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/private/SkMacros.h"
+#include "include/private/SkSafe32.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkBlitter.h"
+#include "src/core/SkEdge.h"
+#include "src/core/SkEdgeBuilder.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkQuadClipper.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkRectPriv.h"
+#include "src/core/SkScanPriv.h"
+#include "src/core/SkTSort.h"
 
 #include <utility>
 
diff --git a/src/core/SkScopeExit.h b/src/core/SkScopeExit.h
index aa4ec63..382b7b0 100644
--- a/src/core/SkScopeExit.h
+++ b/src/core/SkScopeExit.h
@@ -8,8 +8,8 @@
 #ifndef SkScopeExit_DEFINED
 #define SkScopeExit_DEFINED
 
-#include "SkTypes.h"
-#include "SkMacros.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkMacros.h"
 
 #include <functional>
 
diff --git a/src/core/SkSemaphore.cpp b/src/core/SkSemaphore.cpp
index 6dcb4f9..eba555d 100644
--- a/src/core/SkSemaphore.cpp
+++ b/src/core/SkSemaphore.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "../private/SkLeanWindows.h"
-#include "../private/SkSemaphore.h"
+#include "include/private/SkLeanWindows.h"
+#include "include/private/SkSemaphore.h"
 
 #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
     #include <mach/mach.h>
diff --git a/src/core/SkSharedMutex.cpp b/src/core/SkSharedMutex.cpp
index fa26053..4dd801c 100644
--- a/src/core/SkSharedMutex.cpp
+++ b/src/core/SkSharedMutex.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkSharedMutex.h"
+#include "src/core/SkSharedMutex.h"
 
-#include "SkTypes.h"
-#include "SkSemaphore.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkSemaphore.h"
 
 #if !defined(__has_feature)
     #define __has_feature(x) 0
@@ -71,8 +71,8 @@
 
 #ifdef SK_DEBUG
 
-    #include "SkThreadID.h"
-    #include "SkTDArray.h"
+    #include "include/private/SkTDArray.h"
+    #include "include/private/SkThreadID.h"
 
     class SkSharedMutex::ThreadIDSet {
     public:
diff --git a/src/core/SkSharedMutex.h b/src/core/SkSharedMutex.h
index 1177844..b7ff358 100644
--- a/src/core/SkSharedMutex.h
+++ b/src/core/SkSharedMutex.h
@@ -8,13 +8,13 @@
 #ifndef SkSharedLock_DEFINED
 #define SkSharedLock_DEFINED
 
-#include "SkMacros.h"
-#include "SkSemaphore.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkMacros.h"
+#include "include/private/SkSemaphore.h"
 #include <atomic>
 
 #ifdef SK_DEBUG
-    #include "SkMutex.h"
+    #include "include/private/SkMutex.h"
     #include <memory>
 #endif  // SK_DEBUG
 
diff --git a/src/core/SkSpecialImage.cpp b/src/core/SkSpecialImage.cpp
index c3a55e3..895b6ba 100644
--- a/src/core/SkSpecialImage.cpp
+++ b/src/core/SkSpecialImage.cpp
@@ -5,25 +5,25 @@
  * found in the LICENSE file
  */
 
-#include "SkSpecialImage.h"
-#include "SkBitmap.h"
-#include "SkImage.h"
-#include "SkBitmapCache.h"
-#include "SkCanvas.h"
-#include "SkImage_Base.h"
-#include "SkSpecialSurface.h"
-#include "SkSurfacePriv.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "src/core/SkBitmapCache.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkSpecialSurface.h"
+#include "src/core/SkSurfacePriv.h"
+#include "src/image/SkImage_Base.h"
 #include <atomic>
 
 #if SK_SUPPORT_GPU
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrSurfaceContext.h"
-#include "GrTextureProxy.h"
-#include "SkImage_Gpu.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrSurfaceContext.h"
+#include "src/image/SkImage_Gpu.h"
 #endif
 
 // Currently the raster imagefilters can only handle certain imageinfos. Call this to know if
diff --git a/src/core/SkSpecialImage.h b/src/core/SkSpecialImage.h
index d881902..ce396dd 100644
--- a/src/core/SkSpecialImage.h
+++ b/src/core/SkSpecialImage.h
@@ -8,12 +8,12 @@
 #ifndef SkSpecialImage_DEFINED
 #define SkSpecialImage_DEFINED
 
-#include "SkNextID.h"
-#include "SkRefCnt.h"
-#include "SkSurfaceProps.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSurfaceProps.h"
+#include "src/core/SkNextID.h"
 
-#include "SkImageFilter.h" // for OutputProperties
-#include "SkImageInfo.h"   // for SkAlphaType
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkImageInfo.h"
 
 class GrRecordingContext;
 class GrTextureProxy;
diff --git a/src/core/SkSpecialSurface.cpp b/src/core/SkSpecialSurface.cpp
index 1d9bad1..761a42c 100644
--- a/src/core/SkSpecialSurface.cpp
+++ b/src/core/SkSpecialSurface.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file
  */
 
-#include "SkCanvas.h"
-#include "SkSpecialImage.h"
-#include "SkSpecialSurface.h"
-#include "SkSurfacePriv.h"
+#include "include/core/SkCanvas.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkSpecialSurface.h"
+#include "src/core/SkSurfacePriv.h"
 
  ///////////////////////////////////////////////////////////////////////////////
 class SkSpecialSurface_Base : public SkSpecialSurface {
@@ -59,7 +59,7 @@
 }
 
 ///////////////////////////////////////////////////////////////////////////////
-#include "SkMallocPixelRef.h"
+#include "include/core/SkMallocPixelRef.h"
 
 class SkSpecialSurface_Raster : public SkSpecialSurface_Base {
 public:
@@ -117,10 +117,10 @@
 
 #if SK_SUPPORT_GPU
 ///////////////////////////////////////////////////////////////////////////////
-#include "GrBackendSurface.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "SkGpuDevice.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/SkGpuDevice.h"
 
 class SkSpecialSurface_Gpu : public SkSpecialSurface_Base {
 public:
diff --git a/src/core/SkSpecialSurface.h b/src/core/SkSpecialSurface.h
index abbfd87..6628791 100644
--- a/src/core/SkSpecialSurface.h
+++ b/src/core/SkSpecialSurface.h
@@ -8,12 +8,12 @@
 #ifndef SkSpecialSurface_DEFINED
 #define SkSpecialSurface_DEFINED
 
-#include "SkImageInfo.h"
-#include "SkRefCnt.h"
-#include "SkSurfaceProps.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSurfaceProps.h"
 
 #if SK_SUPPORT_GPU
-#include "GrTypesPriv.h"
+#include "include/private/GrTypesPriv.h"
 #endif
 
 class GrBackendFormat;
diff --git a/src/core/SkSpinlock.cpp b/src/core/SkSpinlock.cpp
index 2e4a9ed..fd43db3 100644
--- a/src/core/SkSpinlock.cpp
+++ b/src/core/SkSpinlock.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkSpinlock.h"
+#include "include/private/SkSpinlock.h"
 
 #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2
     #include <emmintrin.h>
diff --git a/src/core/SkSpriteBlitter.h b/src/core/SkSpriteBlitter.h
index 4231367..48a873a 100644
--- a/src/core/SkSpriteBlitter.h
+++ b/src/core/SkSpriteBlitter.h
@@ -8,9 +8,9 @@
 #ifndef SkSpriteBlitter_DEFINED
 #define SkSpriteBlitter_DEFINED
 
-#include "SkBlitter.h"
-#include "SkPixmap.h"
-#include "SkShader.h"
+#include "include/core/SkPixmap.h"
+#include "include/core/SkShader.h"
+#include "src/core/SkBlitter.h"
 
 class SkPaint;
 
diff --git a/src/core/SkSpriteBlitter_ARGB32.cpp b/src/core/SkSpriteBlitter_ARGB32.cpp
index f6712e7..8e94fb2 100644
--- a/src/core/SkSpriteBlitter_ARGB32.cpp
+++ b/src/core/SkSpriteBlitter_ARGB32.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkSpriteBlitter.h"
-#include "SkArenaAlloc.h"
-#include "SkBlitRow.h"
-#include "SkColorFilter.h"
-#include "SkColorData.h"
-#include "SkPaint.h"
-#include "SkTemplates.h"
-#include "SkUTF.h"
-#include "SkXfermodePriv.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkPaint.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkBlitRow.h"
+#include "src/core/SkSpriteBlitter.h"
+#include "src/core/SkXfermodePriv.h"
+#include "src/utils/SkUTF.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/core/SkSpriteBlitter_RGB565.cpp b/src/core/SkSpriteBlitter_RGB565.cpp
index 8547f1d..1cf7558 100644
--- a/src/core/SkSpriteBlitter_RGB565.cpp
+++ b/src/core/SkSpriteBlitter_RGB565.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkSpriteBlitter.h"
-#include "SkArenaAlloc.h"
-#include "SkBlitRow.h"
-#include "SkColorFilter.h"
-#include "SkColorData.h"
-#include "SkPaint.h"
-#include "SkTemplates.h"
-#include "SkUTF.h"
-#include "SkXfermodePriv.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkPaint.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkBlitRow.h"
+#include "src/core/SkSpriteBlitter.h"
+#include "src/core/SkXfermodePriv.h"
+#include "src/utils/SkUTF.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/core/SkStream.cpp b/src/core/SkStream.cpp
index 9cdb69a..de7882b 100644
--- a/src/core/SkStream.cpp
+++ b/src/core/SkStream.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "SkStream.h"
+#include "include/core/SkStream.h"
 
-#include "SkData.h"
-#include "SkFixed.h"
-#include "SkMakeUnique.h"
-#include "SkOSFile.h"
-#include "SkSafeMath.h"
-#include "SkStreamPriv.h"
-#include "SkString.h"
-#include "SkTFitsIn.h"
-#include "SkTo.h"
-#include "SkTypes.h"
+#include "include/core/SkData.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkFixed.h"
+#include "include/private/SkTFitsIn.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkOSFile.h"
+#include "src/core/SkSafeMath.h"
+#include "src/core/SkStreamPriv.h"
 
 #include <limits>
 
diff --git a/src/core/SkStreamPriv.h b/src/core/SkStreamPriv.h
index 6bec5f8..d9b6cc6 100644
--- a/src/core/SkStreamPriv.h
+++ b/src/core/SkStreamPriv.h
@@ -8,7 +8,7 @@
 #ifndef SkStreamPriv_DEFINED
 #define SkStreamPriv_DEFINED
 
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
 
 class SkData;
 class SkStream;
diff --git a/src/core/SkStrike.cpp b/src/core/SkStrike.cpp
index 4a11c86..ec35b5c 100644
--- a/src/core/SkStrike.cpp
+++ b/src/core/SkStrike.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkStrike.h"
+#include "src/core/SkStrike.h"
 
-#include "SkGraphics.h"
-#include "SkMakeUnique.h"
-#include "SkMutex.h"
-#include "SkOnce.h"
-#include "SkPath.h"
-#include "SkTemplates.h"
-#include "SkTypeface.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkOnce.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkMakeUnique.h"
 #include <cctype>
 
 namespace {
@@ -269,8 +269,8 @@
     return SkSpan<const SkGlyphPos>{result, drawableGlyphCount};
 }
 
-#include "../pathops/SkPathOpsCubic.h"
-#include "../pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsQuad.h"
 
 static bool quad_in_bounds(const SkScalar* pts, const SkScalar bounds[2]) {
     SkScalar min = SkTMin(SkTMin(pts[0], pts[2]), pts[4]);
diff --git a/src/core/SkStrike.h b/src/core/SkStrike.h
index 5111359..5a1e972 100644
--- a/src/core/SkStrike.h
+++ b/src/core/SkStrike.h
@@ -7,17 +7,17 @@
 #ifndef SkStrike_DEFINED
 #define SkStrike_DEFINED
 
-#include "SkArenaAlloc.h"
-#include "SkDescriptor.h"
-#include "SkFontMetrics.h"
-#include "SkFontTypes.h"
-#include "SkGlyph.h"
-#include "SkGlyphRunPainter.h"
-#include "SkPaint.h"
-#include "SkTHash.h"
-#include "SkScalerContext.h"
-#include "SkStrikeInterface.h"
-#include "SkTemplates.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkFontTypes.h"
+#include "include/core/SkPaint.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkTHash.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkDescriptor.h"
+#include "src/core/SkGlyph.h"
+#include "src/core/SkGlyphRunPainter.h"
+#include "src/core/SkScalerContext.h"
+#include "src/core/SkStrikeInterface.h"
 #include <memory>
 
 /** \class SkGlyphCache
diff --git a/src/core/SkStrikeCache.cpp b/src/core/SkStrikeCache.cpp
index 9b9e385..48f7b7b 100644
--- a/src/core/SkStrikeCache.cpp
+++ b/src/core/SkStrikeCache.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "SkStrikeCache.h"
+#include "src/core/SkStrikeCache.h"
 
 #include <cctype>
 
-#include "SkGlyphRunPainter.h"
-#include "SkGraphics.h"
-#include "SkMutex.h"
-#include "SkStrike.h"
-#include "SkTemplates.h"
-#include "SkTraceMemoryDump.h"
-#include "SkTypeface.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkTraceMemoryDump.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkGlyphRunPainter.h"
+#include "src/core/SkStrike.h"
 
 class SkStrikeCache::Node final : public SkStrikeInterface {
 public:
diff --git a/src/core/SkStrikeCache.h b/src/core/SkStrikeCache.h
index 8aeb63d..cb67500 100644
--- a/src/core/SkStrikeCache.h
+++ b/src/core/SkStrikeCache.h
@@ -11,10 +11,10 @@
 #include <unordered_map>
 #include <unordered_set>
 
-#include "SkDescriptor.h"
-#include "SkStrike.h"
-#include "SkSpinlock.h"
-#include "SkTemplates.h"
+#include "include/private/SkSpinlock.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkDescriptor.h"
+#include "src/core/SkStrike.h"
 
 class SkStrike;
 class SkTraceMemoryDump;
diff --git a/src/core/SkStrikeInterface.h b/src/core/SkStrikeInterface.h
index f1e7d03..8a98bd1 100644
--- a/src/core/SkStrikeInterface.h
+++ b/src/core/SkStrikeInterface.h
@@ -10,9 +10,9 @@
 
 #include <memory>
 
-#include "SkPoint.h"
-#include "SkSpan.h"
-#include "SkTypes.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkTypes.h"
+#include "src/core/SkSpan.h"
 
 class SkDescriptor;
 class SkGlyph;
diff --git a/src/core/SkString.cpp b/src/core/SkString.cpp
index bde5eb2..a87eec4 100644
--- a/src/core/SkString.cpp
+++ b/src/core/SkString.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkString.h"
+#include "include/core/SkString.h"
 
-#include "SkSafeMath.h"
-#include "SkTo.h"
-#include "SkUtils.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkSafeMath.h"
+#include "src/core/SkUtils.h"
 
 #include <cstdarg>
 #include <cstdio>
diff --git a/src/core/SkStringUtils.cpp b/src/core/SkStringUtils.cpp
index 0f1bd5a..efb9d13 100644
--- a/src/core/SkStringUtils.cpp
+++ b/src/core/SkStringUtils.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkString.h"
-#include "SkStringUtils.h"
-#include "SkUTF.h"
+#include "include/core/SkString.h"
+#include "src/core/SkStringUtils.h"
+#include "src/utils/SkUTF.h"
 
 void SkAppendScalar(SkString* str, SkScalar value, SkScalarAsStringType asType) {
     switch (asType) {
diff --git a/src/core/SkStringUtils.h b/src/core/SkStringUtils.h
index ac587d6..184ca6e 100644
--- a/src/core/SkStringUtils.h
+++ b/src/core/SkStringUtils.h
@@ -8,7 +8,7 @@
 #ifndef SkStringUtils_DEFINED
 #define SkStringUtils_DEFINED
 
-#include "SkScalar.h"
+#include "include/core/SkScalar.h"
 
 class SkString;
 
diff --git a/src/core/SkStroke.cpp b/src/core/SkStroke.cpp
index c898fda..e37c68c 100644
--- a/src/core/SkStroke.cpp
+++ b/src/core/SkStroke.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkStrokerPriv.h"
+#include "src/core/SkStrokerPriv.h"
 
-#include "SkGeometry.h"
-#include "SkMacros.h"
-#include "SkPathPriv.h"
-#include "SkPointPriv.h"
-#include "SkTo.h"
+#include "include/private/SkMacros.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkPathPriv.h"
+#include "src/core/SkPointPriv.h"
 
 #include <utility>
 
@@ -1299,7 +1299,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkPaintDefaults.h"
+#include "src/core/SkPaintDefaults.h"
 
 SkStroke::SkStroke() {
     fWidth      = SK_Scalar1;
diff --git a/src/core/SkStroke.h b/src/core/SkStroke.h
index 189b5cf..66edf3d 100644
--- a/src/core/SkStroke.h
+++ b/src/core/SkStroke.h
@@ -8,11 +8,11 @@
 #ifndef SkStroke_DEFINED
 #define SkStroke_DEFINED
 
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPoint.h"
-#include "SkStrokerPriv.h"
-#include "SkTo.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkStrokerPriv.h"
 
 #ifdef SK_DEBUG
 extern bool gDebugStrokerErrorSet;
diff --git a/src/core/SkStrokeRec.cpp b/src/core/SkStrokeRec.cpp
index bbea1e2..a668dab 100644
--- a/src/core/SkStrokeRec.cpp
+++ b/src/core/SkStrokeRec.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkStrokeRec.h"
-#include "SkPaintDefaults.h"
+#include "include/core/SkStrokeRec.h"
+#include "src/core/SkPaintDefaults.h"
 
 // must be < 0, since ==0 means hairline, and >0 means normal stroke
 #define kStrokeRec_FillStyleWidth     (-SK_Scalar1)
@@ -94,7 +94,7 @@
     }
 }
 
-#include "SkStroke.h"
+#include "src/core/SkStroke.h"
 
 #ifdef SK_DEBUG
     // enables tweaking these values at runtime from Viewer
diff --git a/src/core/SkStrokerPriv.cpp b/src/core/SkStrokerPriv.cpp
index 87bc172..32cf9ec 100644
--- a/src/core/SkStrokerPriv.cpp
+++ b/src/core/SkStrokerPriv.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkStrokerPriv.h"
-#include "SkGeometry.h"
-#include "SkPath.h"
-#include "SkPointPriv.h"
+#include "include/core/SkPath.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkPointPriv.h"
+#include "src/core/SkStrokerPriv.h"
 
 #include <utility>
 
diff --git a/src/core/SkStrokerPriv.h b/src/core/SkStrokerPriv.h
index 3dd4438..a7294f7 100644
--- a/src/core/SkStrokerPriv.h
+++ b/src/core/SkStrokerPriv.h
@@ -9,7 +9,7 @@
 #ifndef SkStrokerPriv_DEFINED
 #define SkStrokerPriv_DEFINED
 
-#include "SkStroke.h"
+#include "src/core/SkStroke.h"
 
 #define CWX(x, y)   (-y)
 #define CWY(x, y)   (x)
diff --git a/src/core/SkSurfaceCharacterization.cpp b/src/core/SkSurfaceCharacterization.cpp
index 63014db..00453a6 100644
--- a/src/core/SkSurfaceCharacterization.cpp
+++ b/src/core/SkSurfaceCharacterization.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkSurfaceCharacterization.h"
+#include "include/core/SkSurfaceCharacterization.h"
 
 #if SK_SUPPORT_GPU
-#include "GrCaps.h"
-#include "GrContextThreadSafeProxyPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextThreadSafeProxyPriv.h"
 
 bool SkSurfaceCharacterization::operator==(const SkSurfaceCharacterization& other) const {
     if (!this->isValid() || !other.isValid()) {
diff --git a/src/core/SkSurfacePriv.h b/src/core/SkSurfacePriv.h
index e86a639..6e5ff09 100644
--- a/src/core/SkSurfacePriv.h
+++ b/src/core/SkSurfacePriv.h
@@ -8,7 +8,7 @@
 #ifndef SkSurfacePriv_DEFINED
 #define SkSurfacePriv_DEFINED
 
-#include "SkSurfaceProps.h"
+#include "include/core/SkSurfaceProps.h"
 
 struct SkImageInfo;
 
diff --git a/src/core/SkSwizzle.cpp b/src/core/SkSwizzle.cpp
index f080b83..301b018 100644
--- a/src/core/SkSwizzle.cpp
+++ b/src/core/SkSwizzle.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkSwizzle.h"
+#include "include/core/SkSwizzle.h"
 
-#include "SkOpts.h"
+#include "src/core/SkOpts.h"
 
 void SkSwapRB(uint32_t* dest, const uint32_t* src, int count) {
     SkOpts::RGBA_to_BGRA(dest, src, count);
diff --git a/src/core/SkTDPQueue.h b/src/core/SkTDPQueue.h
index 6e2a09c..569bbcb 100644
--- a/src/core/SkTDPQueue.h
+++ b/src/core/SkTDPQueue.h
@@ -8,8 +8,8 @@
 #ifndef SkTDPQueue_DEFINED
 #define SkTDPQueue_DEFINED
 
-#include "SkTDArray.h"
-#include "SkTSort.h"
+#include "include/private/SkTDArray.h"
+#include "src/core/SkTSort.h"
 
 #include <utility>
 
diff --git a/src/core/SkTDynamicHash.h b/src/core/SkTDynamicHash.h
index 77d020f..c0beaea 100644
--- a/src/core/SkTDynamicHash.h
+++ b/src/core/SkTDynamicHash.h
@@ -8,9 +8,9 @@
 #ifndef SkTDynamicHash_DEFINED
 #define SkTDynamicHash_DEFINED
 
-#include "SkMath.h"
-#include "SkTemplates.h"
-#include "SkTypes.h"
+#include "include/core/SkMath.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTemplates.h"
 
 // Traits requires:
 //   static const Key& GetKey(const T&) { ... }
diff --git a/src/core/SkTLList.h b/src/core/SkTLList.h
index 5d6ea3e..d542926 100644
--- a/src/core/SkTLList.h
+++ b/src/core/SkTLList.h
@@ -8,10 +8,10 @@
 #ifndef SkTLList_DEFINED
 #define SkTLList_DEFINED
 
-#include "SkMalloc.h"
-#include "SkTInternalLList.h"
-#include "SkTemplates.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkMalloc.h"
+#include "include/private/SkTInternalLList.h"
+#include "include/private/SkTemplates.h"
 #include <new>
 #include <utility>
 
diff --git a/src/core/SkTLS.cpp b/src/core/SkTLS.cpp
index 9cbc612..e781a53 100644
--- a/src/core/SkTLS.cpp
+++ b/src/core/SkTLS.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkTLS.h"
+#include "src/core/SkTLS.h"
 
 struct SkTLSRec {
     SkTLSRec*           fNext;
diff --git a/src/core/SkTLS.h b/src/core/SkTLS.h
index ace2de5..3d86a26 100644
--- a/src/core/SkTLS.h
+++ b/src/core/SkTLS.h
@@ -8,7 +8,7 @@
 #ifndef SkTLS_DEFINED
 #define SkTLS_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 /**
  *  Maintains a per-thread cache, using a CreateProc as the key into that cache.
diff --git a/src/core/SkTLazy.h b/src/core/SkTLazy.h
index cdb5a61..a6533cb 100644
--- a/src/core/SkTLazy.h
+++ b/src/core/SkTLazy.h
@@ -8,7 +8,7 @@
 #ifndef SkTLazy_DEFINED
 #define SkTLazy_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #include <new>
 #include <type_traits>
 #include <utility>
diff --git a/src/core/SkTMultiMap.h b/src/core/SkTMultiMap.h
index e642cae..d14aa97 100644
--- a/src/core/SkTMultiMap.h
+++ b/src/core/SkTMultiMap.h
@@ -8,8 +8,8 @@
 #ifndef SkTMultiMap_DEFINED
 #define SkTMultiMap_DEFINED
 
-#include "GrTypes.h"
-#include "SkTDynamicHash.h"
+#include "include/gpu/GrTypes.h"
+#include "src/core/SkTDynamicHash.h"
 
 /** A set that contains pointers to instances of T. Instances can be looked up with key Key.
  * Multiple (possibly same) values can have the same key.
diff --git a/src/core/SkTSearch.cpp b/src/core/SkTSearch.cpp
index 7081f67..6a7b1dd 100644
--- a/src/core/SkTSearch.cpp
+++ b/src/core/SkTSearch.cpp
@@ -6,9 +6,9 @@
  */
 
 
-#include "SkTSearch.h"
+#include "include/private/SkTSearch.h"
 
-#include "SkMalloc.h"
+#include "include/private/SkMalloc.h"
 
 #include <ctype.h>
 
diff --git a/src/core/SkTSort.h b/src/core/SkTSort.h
index 87d99d5..1e853b0 100644
--- a/src/core/SkTSort.h
+++ b/src/core/SkTSort.h
@@ -8,9 +8,9 @@
 #ifndef SkTSort_DEFINED
 #define SkTSort_DEFINED
 
-#include "SkMathPriv.h"
-#include "SkTo.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkMathPriv.h"
 
 #include <utility>
 
diff --git a/src/core/SkTTopoSort.h b/src/core/SkTTopoSort.h
index 01dee53..9df95ee 100644
--- a/src/core/SkTTopoSort.h
+++ b/src/core/SkTTopoSort.h
@@ -8,8 +8,8 @@
 #ifndef SkTTopoSort_DEFINED
 #define SkTTopoSort_DEFINED
 
-#include "SkRefCnt.h"
-#include "SkTArray.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkTArray.h"
 
 #ifdef SK_DEBUG
 template <typename T, typename Traits = T>
diff --git a/src/core/SkTaskGroup.cpp b/src/core/SkTaskGroup.cpp
index 58b9216..5425821 100644
--- a/src/core/SkTaskGroup.cpp
+++ b/src/core/SkTaskGroup.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkExecutor.h"
-#include "SkTaskGroup.h"
+#include "include/core/SkExecutor.h"
+#include "src/core/SkTaskGroup.h"
 
 SkTaskGroup::SkTaskGroup(SkExecutor& executor) : fPending(0), fExecutor(executor) {}
 
diff --git a/src/core/SkTaskGroup.h b/src/core/SkTaskGroup.h
index fcf8820..8d0da7c 100644
--- a/src/core/SkTaskGroup.h
+++ b/src/core/SkTaskGroup.h
@@ -8,9 +8,9 @@
 #ifndef SkTaskGroup_DEFINED
 #define SkTaskGroup_DEFINED
 
-#include "SkExecutor.h"
-#include "SkNoncopyable.h"
-#include "SkTypes.h"
+#include "include/core/SkExecutor.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkNoncopyable.h"
 #include <atomic>
 #include <functional>
 
diff --git a/src/core/SkTextBlob.cpp b/src/core/SkTextBlob.cpp
index fb67007..7c77816 100644
--- a/src/core/SkTextBlob.cpp
+++ b/src/core/SkTextBlob.cpp
@@ -5,24 +5,24 @@
  * found in the LICENSE file.
  */
 
-#include "SkTextBlob.h"
-#include "SkFontPriv.h"
-#include "SkGlyphRun.h"
-#include "SkPaintPriv.h"
-#include "SkReadBuffer.h"
-#include "SkRSXform.h"
-#include "SkSafeMath.h"
-#include "SkTextBlobPriv.h"
-#include "SkTextToPathIter.h"
-#include "SkTypeface.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkRSXform.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "src/core/SkFontPriv.h"
+#include "src/core/SkGlyphRun.h"
+#include "src/core/SkPaintPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSafeMath.h"
+#include "src/core/SkTextBlobPriv.h"
+#include "src/core/SkTextToPathIter.h"
+#include "src/core/SkWriteBuffer.h"
 
 #include <atomic>
 #include <limits>
 #include <new>
 
 #if SK_SUPPORT_GPU
-#include "text/GrTextBlobCache.h"
+#include "src/gpu/text/GrTextBlobCache.h"
 #endif
 
 namespace {
diff --git a/src/core/SkTextBlobPriv.h b/src/core/SkTextBlobPriv.h
index d3a7b94..8a5f970 100644
--- a/src/core/SkTextBlobPriv.h
+++ b/src/core/SkTextBlobPriv.h
@@ -8,17 +8,17 @@
 #ifndef SkTextBlobPriv_DEFINED
 #define SkTextBlobPriv_DEFINED
 
-#include "SkColorFilter.h"
-#include "SkDrawLooper.h"
-#include "SkFont.h"
-#include "SkImageFilter.h"
-#include "SkMaskFilter.h"
-#include "SkPaintPriv.h"
-#include "SkPathEffect.h"
-#include "SkSafeMath.h"
-#include "SkShader.h"
-#include "SkTextBlob.h"
-#include "SkTypeface.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkDrawLooper.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "src/core/SkPaintPriv.h"
+#include "src/core/SkSafeMath.h"
 
 class SkReadBuffer;
 class SkWriteBuffer;
diff --git a/src/core/SkTextFormatParams.h b/src/core/SkTextFormatParams.h
index ef22c84..a4f1c0e 100644
--- a/src/core/SkTextFormatParams.h
+++ b/src/core/SkTextFormatParams.h
@@ -9,8 +9,8 @@
 #ifndef SkTextFormatParams_DEFINES
 #define SkTextFormatParams_DEFINES
 
-#include "SkScalar.h"
-#include "SkTypes.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkTypes.h"
 
 // Fraction of the text size to lower a strike through line below the baseline.
 #define kStdStrikeThru_Offset       (-SK_Scalar1 * 6 / 21)
diff --git a/src/core/SkTextToPathIter.h b/src/core/SkTextToPathIter.h
index 0b15cce..8ee4aa5 100644
--- a/src/core/SkTextToPathIter.h
+++ b/src/core/SkTextToPathIter.h
@@ -8,9 +8,9 @@
 #ifndef SkTextToPathIter_DEFINED
 #define SkTextToPathIter_DEFINED
 
-#include "SkFontPriv.h"
-#include "SkPaint.h"
-#include "SkStrikeCache.h"
+#include "include/core/SkPaint.h"
+#include "src/core/SkFontPriv.h"
+#include "src/core/SkStrikeCache.h"
 
 class SkTextBaseIter {
 public:
diff --git a/src/core/SkThreadID.cpp b/src/core/SkThreadID.cpp
index 948884d..ff8dd62 100644
--- a/src/core/SkThreadID.cpp
+++ b/src/core/SkThreadID.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkLeanWindows.h"
-#include "SkThreadID.h"
+#include "include/private/SkLeanWindows.h"
+#include "include/private/SkThreadID.h"
 
 #ifdef SK_BUILD_FOR_WIN
     SkThreadID SkGetThreadID() { return GetCurrentThreadId(); }
diff --git a/src/core/SkTime.cpp b/src/core/SkTime.cpp
index b70b89c..9626e76 100644
--- a/src/core/SkTime.cpp
+++ b/src/core/SkTime.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkTime.h"
+#include "include/core/SkTime.h"
 
-#include "SkLeanWindows.h"
-#include "SkString.h"
-#include "SkTo.h"
-#include "SkTypes.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkLeanWindows.h"
+#include "include/private/SkTo.h"
 
 #include <chrono>
 
diff --git a/src/core/SkTraceEvent.h b/src/core/SkTraceEvent.h
index 7acef7e..b4548dd 100644
--- a/src/core/SkTraceEvent.h
+++ b/src/core/SkTraceEvent.h
@@ -10,8 +10,8 @@
 #ifndef SkTraceEvent_DEFINED
 #define SkTraceEvent_DEFINED
 
-#include "SkEventTracer.h"
-#include "SkTraceEventCommon.h"
+#include "include/utils/SkEventTracer.h"
+#include "src/core/SkTraceEventCommon.h"
 #include <atomic>
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/src/core/SkTraceEventCommon.h b/src/core/SkTraceEventCommon.h
index 7fdf9f9..2bf5c82 100644
--- a/src/core/SkTraceEventCommon.h
+++ b/src/core/SkTraceEventCommon.h
@@ -4,8 +4,8 @@
 #ifndef SkTraceEventCommon_DEFINED
 #define SkTraceEventCommon_DEFINED
 
-#include "SkTraceEventPhase.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/utils/SkTraceEventPhase.h"
 
 // Trace events are for tracking application performance and resource usage.
 // Macros are provided to track:
diff --git a/src/core/SkTypeface.cpp b/src/core/SkTypeface.cpp
index b21cac4..4466bc4 100644
--- a/src/core/SkTypeface.cpp
+++ b/src/core/SkTypeface.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkAdvancedTypefaceMetrics.h"
-#include "SkEndian.h"
-#include "SkFontDescriptor.h"
-#include "SkFontMetrics.h"
-#include "SkFontMgr.h"
-#include "SkMakeUnique.h"
-#include "SkMutex.h"
-#include "SkOTTable_OS_2.h"
-#include "SkOnce.h"
-#include "SkStream.h"
-#include "SkSurfacePriv.h"
-#include "SkTypeface.h"
-#include "SkTypefaceCache.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkOnce.h"
+#include "src/core/SkAdvancedTypefaceMetrics.h"
+#include "src/core/SkEndian.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkSurfacePriv.h"
+#include "src/core/SkTypefaceCache.h"
+#include "src/sfnt/SkOTTable_OS_2.h"
 
 SkTypeface::SkTypeface(const SkFontStyle& style, bool isFixedPitch)
     : fUniqueID(SkTypefaceCache::NewFontID()), fStyle(style), fIsFixedPitch(isFixedPitch) { }
@@ -359,8 +359,8 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkDescriptor.h"
-#include "SkPaint.h"
+#include "include/core/SkPaint.h"
+#include "src/core/SkDescriptor.h"
 
 SkRect SkTypeface::getBounds() const {
     fBoundsOnce([this] {
diff --git a/src/core/SkTypefaceCache.cpp b/src/core/SkTypefaceCache.cpp
index 6238c5d..c4bc953 100644
--- a/src/core/SkTypefaceCache.cpp
+++ b/src/core/SkTypefaceCache.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypefaceCache.h"
-#include "SkMutex.h"
+#include "include/private/SkMutex.h"
+#include "src/core/SkTypefaceCache.h"
 #include <atomic>
 
 #define TYPEFACE_CACHE_LIMIT    1024
diff --git a/src/core/SkTypefaceCache.h b/src/core/SkTypefaceCache.h
index 99ccea9..ac3faaf 100644
--- a/src/core/SkTypefaceCache.h
+++ b/src/core/SkTypefaceCache.h
@@ -10,9 +10,9 @@
 #ifndef SkTypefaceCache_DEFINED
 #define SkTypefaceCache_DEFINED
 
-#include "SkRefCnt.h"
-#include "SkTypeface.h"
-#include "SkTArray.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkTArray.h"
 
 class SkTypefaceCache {
 public:
diff --git a/src/core/SkTypefacePriv.h b/src/core/SkTypefacePriv.h
index f8d7e63e..cc25b84 100644
--- a/src/core/SkTypefacePriv.h
+++ b/src/core/SkTypefacePriv.h
@@ -8,7 +8,7 @@
 #ifndef SkTypefacePriv_DEFINED
 #define SkTypefacePriv_DEFINED
 
-#include "SkTypeface.h"
+#include "include/core/SkTypeface.h"
 
 /**
  *  Return a ref'd typeface, which must later be unref'd
diff --git a/src/core/SkTypeface_remote.cpp b/src/core/SkTypeface_remote.cpp
index 6478472a..36ac2bf 100644
--- a/src/core/SkTypeface_remote.cpp
+++ b/src/core/SkTypeface_remote.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypeface_remote.h"
-#include "SkPaint.h"
-#include "SkRemoteGlyphCache.h"
-#include "SkStrike.h"
-#include "SkStrikeCache.h"
-#include "SkTraceEvent.h"
+#include "include/core/SkPaint.h"
+#include "src/core/SkRemoteGlyphCache.h"
+#include "src/core/SkStrike.h"
+#include "src/core/SkStrikeCache.h"
+#include "src/core/SkTraceEvent.h"
+#include "src/core/SkTypeface_remote.h"
 
 SkScalerContextProxy::SkScalerContextProxy(sk_sp<SkTypeface> tf,
                                            const SkScalerContextEffects& effects,
diff --git a/src/core/SkTypeface_remote.h b/src/core/SkTypeface_remote.h
index 9110f12..568e3c0 100644
--- a/src/core/SkTypeface_remote.h
+++ b/src/core/SkTypeface_remote.h
@@ -8,14 +8,14 @@
 #ifndef SkRemoteTypeface_DEFINED
 #define SkRemoteTypeface_DEFINED
 
-#include "SkAdvancedTypefaceMetrics.h"
-#include "SkDescriptor.h"
-#include "SkFontDescriptor.h"
-#include "SkFontStyle.h"
-#include "SkPaint.h"
-#include "SkRemoteGlyphCache.h"
-#include "SkScalerContext.h"
-#include "SkTypeface.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkTypeface.h"
+#include "src/core/SkAdvancedTypefaceMetrics.h"
+#include "src/core/SkDescriptor.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/core/SkRemoteGlyphCache.h"
+#include "src/core/SkScalerContext.h"
 
 class SkTypefaceProxy;
 class SkStrikeCache;
diff --git a/src/core/SkUnPreMultiply.cpp b/src/core/SkUnPreMultiply.cpp
index 05bf701..2b999190 100644
--- a/src/core/SkUnPreMultiply.cpp
+++ b/src/core/SkUnPreMultiply.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkUnPreMultiply.h"
-#include "SkColorData.h"
+#include "include/core/SkUnPreMultiply.h"
+#include "include/private/SkColorData.h"
 
 SkColor SkUnPreMultiply::PMColorToColor(SkPMColor c) {
     const unsigned a = SkGetPackedA32(c);
diff --git a/src/core/SkUtils.cpp b/src/core/SkUtils.cpp
index 9754da6..d369d50 100644
--- a/src/core/SkUtils.cpp
+++ b/src/core/SkUtils.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkUtils.h"
+#include "src/core/SkUtils.h"
 
 template <typename T>
 static SkUnichar next(const T** srcPtr, unsigned N, SkUnichar (*fn)(const T**, const T*)) {
diff --git a/src/core/SkUtils.h b/src/core/SkUtils.h
index 1597c98..f5d981e 100644
--- a/src/core/SkUtils.h
+++ b/src/core/SkUtils.h
@@ -8,9 +8,9 @@
 #ifndef SkUtils_DEFINED
 #define SkUtils_DEFINED
 
-#include "SkOpts.h"
-#include "SkFontTypes.h"
-#include "../utils/SkUTF.h"
+#include "include/core/SkFontTypes.h"
+#include "src/core/SkOpts.h"
+#include "src/utils/SkUTF.h"
 
 /** Similar to memset(), but it assigns a 16, 32, or 64-bit value into the buffer.
     @param buffer   The memory to have value copied into it
diff --git a/src/core/SkValidatingReadBuffer.h b/src/core/SkValidatingReadBuffer.h
index ccf66d4..887c621 100644
--- a/src/core/SkValidatingReadBuffer.h
+++ b/src/core/SkValidatingReadBuffer.h
@@ -8,12 +8,12 @@
 #ifndef SkValidatingReadBuffer_DEFINED
 #define SkValidatingReadBuffer_DEFINED
 
-#include "SkRefCnt.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
-#include "SkPath.h"
-#include "SkPicture.h"
-#include "SkReader32.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkRefCnt.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkReader32.h"
+#include "src/core/SkWriteBuffer.h"
 
 class SkBitmap;
 
diff --git a/src/core/SkValidationUtils.h b/src/core/SkValidationUtils.h
index 84b906a..16dfdb3 100644
--- a/src/core/SkValidationUtils.h
+++ b/src/core/SkValidationUtils.h
@@ -8,9 +8,9 @@
 #ifndef SkValidationUtils_DEFINED
 #define SkValidationUtils_DEFINED
 
-#include "SkBitmap.h"
-#include "SkBlendMode.h"
-#include "SkXfermodePriv.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkBlendMode.h"
+#include "src/core/SkXfermodePriv.h"
 
 /** Returns true if mode's value is in the SkBlendMode enum.
   */
diff --git a/src/core/SkVertState.cpp b/src/core/SkVertState.cpp
index ef3604d..d10a23d 100644
--- a/src/core/SkVertState.cpp
+++ b/src/core/SkVertState.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkVertState.h"
+#include "src/core/SkVertState.h"
 
 bool VertState::Triangles(VertState* state) {
     int index = state->fCurrIndex;
diff --git a/src/core/SkVertState.h b/src/core/SkVertState.h
index 89d224e..fb981b7 100644
--- a/src/core/SkVertState.h
+++ b/src/core/SkVertState.h
@@ -8,7 +8,7 @@
 #ifndef SkVertState_DEFINED
 #define SkVertState_DEFINED
 
-#include "SkVertices.h"
+#include "include/core/SkVertices.h"
 
 /** \struct VertState
     This is a helper for drawVertices(). It is used to iterate over the triangles
diff --git a/src/core/SkVertices.cpp b/src/core/SkVertices.cpp
index ac7efef..38bf972 100644
--- a/src/core/SkVertices.cpp
+++ b/src/core/SkVertices.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkVertices.h"
+#include "include/core/SkVertices.h"
 
-#include "SkData.h"
-#include "SkReader32.h"
-#include "SkSafeMath.h"
-#include "SkSafeRange.h"
-#include "SkTo.h"
-#include "SkWriter32.h"
+#include "include/core/SkData.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkReader32.h"
+#include "src/core/SkSafeMath.h"
+#include "src/core/SkSafeRange.h"
+#include "src/core/SkWriter32.h"
 #include <atomic>
 #include <new>
 
diff --git a/src/core/SkWriteBuffer.cpp b/src/core/SkWriteBuffer.cpp
index e906acd..f12099a 100644
--- a/src/core/SkWriteBuffer.cpp
+++ b/src/core/SkWriteBuffer.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkWriteBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 
-#include "SkBitmap.h"
-#include "SkData.h"
-#include "SkImagePriv.h"
-#include "SkPaintPriv.h"
-#include "SkPtrRecorder.h"
-#include "SkStream.h"
-#include "SkTo.h"
-#include "SkTypeface.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkImagePriv.h"
+#include "src/core/SkPaintPriv.h"
+#include "src/core/SkPtrRecorder.h"
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/core/SkWriteBuffer.h b/src/core/SkWriteBuffer.h
index 7912087..5bd58e9 100644
--- a/src/core/SkWriteBuffer.h
+++ b/src/core/SkWriteBuffer.h
@@ -8,11 +8,11 @@
 #ifndef SkWriteBuffer_DEFINED
 #define SkWriteBuffer_DEFINED
 
-#include "SkData.h"
-#include "SkFlattenable.h"
-#include "SkSerialProcs.h"
-#include "SkWriter32.h"
-#include "../private/SkTHash.h"
+#include "include/core/SkData.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkSerialProcs.h"
+#include "include/private/SkTHash.h"
+#include "src/core/SkWriter32.h"
 
 class SkFactorySet;
 class SkImage;
diff --git a/src/core/SkWritePixelsRec.h b/src/core/SkWritePixelsRec.h
index 262a2de..2414d96 100644
--- a/src/core/SkWritePixelsRec.h
+++ b/src/core/SkWritePixelsRec.h
@@ -8,7 +8,7 @@
 #ifndef SkWritePixelsRec_DEFINED
 #define SkWritePixelsRec_DEFINED
 
-#include "SkImageInfo.h"
+#include "include/core/SkImageInfo.h"
 
 /**
  *  Helper class to package and trim the parameters passed to writePixels()
diff --git a/src/core/SkWriter32.cpp b/src/core/SkWriter32.cpp
index b1638e4..cab2812 100644
--- a/src/core/SkWriter32.cpp
+++ b/src/core/SkWriter32.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkMatrixPriv.h"
-#include "SkReader32.h"
-#include "SkString.h"
-#include "SkTo.h"
+#include "include/core/SkString.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkMatrixPriv.h"
+#include "src/core/SkReader32.h"
 
-#include "SkWriter32.h"
+#include "src/core/SkWriter32.h"
 
 void SkWriter32::writeMatrix(const SkMatrix& matrix) {
     size_t size = SkMatrixPriv::WriteToMemory(matrix, nullptr);
diff --git a/src/core/SkWriter32.h b/src/core/SkWriter32.h
index dc72c7b..3f7d305 100644
--- a/src/core/SkWriter32.h
+++ b/src/core/SkWriter32.h
@@ -8,20 +8,20 @@
 #ifndef SkWriter32_DEFINED
 #define SkWriter32_DEFINED
 
-#include "SkData.h"
-#include "SkMatrix.h"
-#include "SkNoncopyable.h"
-#include "SkPath.h"
-#include "SkPoint.h"
-#include "SkPoint3.h"
-#include "SkRRect.h"
-#include "SkRect.h"
-#include "SkRegion.h"
-#include "SkScalar.h"
-#include "SkStream.h"
-#include "SkTemplates.h"
-#include "SkTo.h"
-#include "SkTypes.h"
+#include "include/core/SkData.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkPoint3.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkNoncopyable.h"
+#include "include/private/SkTemplates.h"
+#include "include/private/SkTo.h"
 
 class SK_API SkWriter32 : SkNoncopyable {
 public:
diff --git a/src/core/SkXfermode.cpp b/src/core/SkXfermode.cpp
index 81f90af..71a13dc 100644
--- a/src/core/SkXfermode.cpp
+++ b/src/core/SkXfermode.cpp
@@ -5,22 +5,22 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlendModePriv.h"
-#include "SkColorData.h"
-#include "SkMathPriv.h"
-#include "SkOnce.h"
-#include "SkOpts.h"
-#include "SkRasterPipeline.h"
-#include "SkReadBuffer.h"
-#include "SkString.h"
-#include "SkWriteBuffer.h"
-#include "SkXfermodePriv.h"
+#include "include/core/SkString.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkOnce.h"
+#include "src/core/SkBlendModePriv.h"
+#include "src/core/SkMathPriv.h"
+#include "src/core/SkOpts.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/core/SkXfermodePriv.h"
 
 #if SK_SUPPORT_GPU
-#include "GrFragmentProcessor.h"
-#include "effects/GrCustomXfermode.h"
-#include "effects/GrPorterDuffXferProcessor.h"
-#include "effects/GrXfermodeFragmentProcessor.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/effects/GrCustomXfermode.h"
+#include "src/gpu/effects/GrPorterDuffXferProcessor.h"
+#include "src/gpu/effects/GrXfermodeFragmentProcessor.h"
 #endif
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/core/SkXfermodeInterpretation.cpp b/src/core/SkXfermodeInterpretation.cpp
index 3a1da36..95675a5 100644
--- a/src/core/SkXfermodeInterpretation.cpp
+++ b/src/core/SkXfermodeInterpretation.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkXfermodeInterpretation.h"
-#include "SkPaint.h"
+#include "include/core/SkPaint.h"
+#include "src/core/SkXfermodeInterpretation.h"
 
 static bool just_solid_color(const SkPaint& p) {
     return SK_AlphaOPAQUE == p.getAlpha() && !p.getColorFilter() && !p.getShader();
diff --git a/src/core/SkXfermodePriv.h b/src/core/SkXfermodePriv.h
index ad9aa47..0b7a920 100644
--- a/src/core/SkXfermodePriv.h
+++ b/src/core/SkXfermodePriv.h
@@ -8,9 +8,9 @@
 #ifndef SkXfermodePriv_DEFINED
 #define SkXfermodePriv_DEFINED
 
-#include "SkBlendMode.h"
-#include "SkColor.h"
-#include "SkRefCnt.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkRefCnt.h"
 
 class GrFragmentProcessor;
 class GrTexture;
diff --git a/src/core/SkYUVASizeInfo.cpp b/src/core/SkYUVASizeInfo.cpp
index cf4d303..855ed26 100644
--- a/src/core/SkYUVASizeInfo.cpp
+++ b/src/core/SkYUVASizeInfo.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkYUVASizeInfo.h"
-#include "SkTemplates.h"
+#include "include/core/SkYUVASizeInfo.h"
+#include "include/private/SkTemplates.h"
 
 void SkYUVASizeInfo::computePlanes(void* base, void* planes[SkYUVASizeInfo::kMaxCount]) const {
     planes[0] = base;
diff --git a/src/core/SkYUVPlanesCache.cpp b/src/core/SkYUVPlanesCache.cpp
index a962d5a..756937f 100644
--- a/src/core/SkYUVPlanesCache.cpp
+++ b/src/core/SkYUVPlanesCache.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmapCache.h"
-#include "SkResourceCache.h"
-#include "SkYUVPlanesCache.h"
+#include "src/core/SkBitmapCache.h"
+#include "src/core/SkResourceCache.h"
+#include "src/core/SkYUVPlanesCache.h"
 
 #define CHECK_LOCAL(localCache, localName, globalName, ...) \
     ((localCache) ? localCache->localName(__VA_ARGS__) : SkResourceCache::globalName(__VA_ARGS__))
diff --git a/src/core/SkYUVPlanesCache.h b/src/core/SkYUVPlanesCache.h
index 39768000..1879230 100644
--- a/src/core/SkYUVPlanesCache.h
+++ b/src/core/SkYUVPlanesCache.h
@@ -8,10 +8,10 @@
 #ifndef SkYUVPlanesCache_DEFINED
 #define SkYUVPlanesCache_DEFINED
 
-#include "SkCachedData.h"
-#include "SkImageInfo.h"
-#include "SkYUVAIndex.h"
-#include "SkYUVASizeInfo.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkYUVAIndex.h"
+#include "include/core/SkYUVASizeInfo.h"
+#include "src/core/SkCachedData.h"
 
 class SkResourceCache;
 
diff --git a/src/effects/Sk1DPathEffect.cpp b/src/effects/Sk1DPathEffect.cpp
index fbb73f5..360179d 100644
--- a/src/effects/Sk1DPathEffect.cpp
+++ b/src/effects/Sk1DPathEffect.cpp
@@ -6,11 +6,11 @@
  */
 
 
-#include "Sk1DPathEffect.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
-#include "SkPathMeasure.h"
-#include "SkStrokeRec.h"
+#include "include/core/SkPathMeasure.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/effects/Sk1DPathEffect.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 
 // Since we are stepping by a float, the do/while loop might go on forever (or nearly so).
 // Put in a governor to limit crash values from looping too long (and allocating too much ram).
diff --git a/src/effects/Sk2DPathEffect.cpp b/src/effects/Sk2DPathEffect.cpp
index fb6a88e..fa19bb9 100644
--- a/src/effects/Sk2DPathEffect.cpp
+++ b/src/effects/Sk2DPathEffect.cpp
@@ -6,12 +6,12 @@
  */
 
 
-#include "Sk2DPathEffect.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkStrokeRec.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/effects/Sk2DPathEffect.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 
 Sk2DPathEffect::Sk2DPathEffect(const SkMatrix& mat) : fMatrix(mat) {
     // Calling invert will set the type mask on both matrices, making them thread safe.
diff --git a/src/effects/SkColorMatrix.cpp b/src/effects/SkColorMatrix.cpp
index c8d03bd..f6d8eaed 100644
--- a/src/effects/SkColorMatrix.cpp
+++ b/src/effects/SkColorMatrix.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorMatrix.h"
-#include "../private/SkFloatingPoint.h"
+#include "include/effects/SkColorMatrix.h"
+#include "include/private/SkFloatingPoint.h"
 
 enum {
     kR_Scale = 0,
diff --git a/src/effects/SkColorMatrixFilter.cpp b/src/effects/SkColorMatrixFilter.cpp
index 3325e56..0a86dcf 100644
--- a/src/effects/SkColorMatrixFilter.cpp
+++ b/src/effects/SkColorMatrixFilter.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorMatrixFilter.h"
+#include "include/effects/SkColorMatrixFilter.h"
 
 static SkScalar byte_to_scale(U8CPU byte) {
     if (0xFF == byte) {
diff --git a/src/effects/SkCornerPathEffect.cpp b/src/effects/SkCornerPathEffect.cpp
index a5280ab..3a5cfb4 100644
--- a/src/effects/SkCornerPathEffect.cpp
+++ b/src/effects/SkCornerPathEffect.cpp
@@ -6,11 +6,11 @@
  */
 
 
-#include "SkCornerPathEffect.h"
-#include "SkPath.h"
-#include "SkPoint.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint.h"
+#include "include/effects/SkCornerPathEffect.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 
 SkCornerPathEffect::SkCornerPathEffect(SkScalar radius) {
     // check with ! to catch NaNs
diff --git a/src/effects/SkDashImpl.h b/src/effects/SkDashImpl.h
index d8143d7..1d50971 100644
--- a/src/effects/SkDashImpl.h
+++ b/src/effects/SkDashImpl.h
@@ -8,7 +8,7 @@
 #ifndef SkDashImpl_DEFINED
 #define SkDashImpl_DEFINED
 
-#include "SkPathEffect.h"
+#include "include/core/SkPathEffect.h"
 
 class SkDashImpl : public SkPathEffect {
 public:
diff --git a/src/effects/SkDashPathEffect.cpp b/src/effects/SkDashPathEffect.cpp
index ebcc683..913d851 100644
--- a/src/effects/SkDashPathEffect.cpp
+++ b/src/effects/SkDashPathEffect.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkDashPathEffect.h"
+#include "include/effects/SkDashPathEffect.h"
 
-#include "SkDashImpl.h"
-#include "SkDashPathPriv.h"
-#include "SkReadBuffer.h"
-#include "SkStrokeRec.h"
-#include "SkTo.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/effects/SkDashImpl.h"
+#include "src/utils/SkDashPathPriv.h"
 
 #include <utility>
 
diff --git a/src/effects/SkDiscretePathEffect.cpp b/src/effects/SkDiscretePathEffect.cpp
index 2c913d8..93ea43f 100644
--- a/src/effects/SkDiscretePathEffect.cpp
+++ b/src/effects/SkDiscretePathEffect.cpp
@@ -6,13 +6,13 @@
  */
 
 
-#include "SkDiscretePathEffect.h"
-#include "SkFixed.h"
-#include "SkPathMeasure.h"
-#include "SkPointPriv.h"
-#include "SkReadBuffer.h"
-#include "SkStrokeRec.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkPathMeasure.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/effects/SkDiscretePathEffect.h"
+#include "include/private/SkFixed.h"
+#include "src/core/SkPointPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 
 sk_sp<SkPathEffect> SkDiscretePathEffect::Make(SkScalar segLength, SkScalar deviation,
                                                uint32_t seedAssist) {
diff --git a/src/effects/SkEmbossMask.cpp b/src/effects/SkEmbossMask.cpp
index a9b8e4f..dcac971 100644
--- a/src/effects/SkEmbossMask.cpp
+++ b/src/effects/SkEmbossMask.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkEmbossMask.h"
+#include "src/effects/SkEmbossMask.h"
 
-#include "SkFixed.h"
-#include "SkMath.h"
-#include "SkMathPriv.h"
-#include "SkTo.h"
+#include "include/core/SkMath.h"
+#include "include/private/SkFixed.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkMathPriv.h"
 
 static inline int nonzero_to_one(int x) {
 #if 0
diff --git a/src/effects/SkEmbossMask.h b/src/effects/SkEmbossMask.h
index 80fcb20..7185fc9 100644
--- a/src/effects/SkEmbossMask.h
+++ b/src/effects/SkEmbossMask.h
@@ -9,7 +9,7 @@
 #ifndef SkEmbossMask_DEFINED
 #define SkEmbossMask_DEFINED
 
-#include "SkEmbossMaskFilter.h"
+#include "src/effects/SkEmbossMaskFilter.h"
 
 class SkEmbossMask {
 public:
diff --git a/src/effects/SkEmbossMaskFilter.cpp b/src/effects/SkEmbossMaskFilter.cpp
index ef26520..5592fc7 100644
--- a/src/effects/SkEmbossMaskFilter.cpp
+++ b/src/effects/SkEmbossMaskFilter.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkEmbossMaskFilter.h"
-#include "SkBlurMaskFilter.h"
-#include "SkBlurMask.h"
-#include "SkColorPriv.h"
-#include "SkEmbossMask.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
-#include "SkString.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "src/core/SkBlurMask.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/effects/SkEmbossMask.h"
+#include "src/effects/SkEmbossMaskFilter.h"
 
 static void normalize3(SkScalar dst[3], const SkScalar src[3]) {
     SkScalar mag = SkScalarSquare(src[0]) + SkScalarSquare(src[1]) + SkScalarSquare(src[2]);
diff --git a/src/effects/SkEmbossMaskFilter.h b/src/effects/SkEmbossMaskFilter.h
index 221b81f..d79e89b 100644
--- a/src/effects/SkEmbossMaskFilter.h
+++ b/src/effects/SkEmbossMaskFilter.h
@@ -8,7 +8,7 @@
 #ifndef SkEmbossMaskFilter_DEFINED
 #define SkEmbossMaskFilter_DEFINED
 
-#include "SkMaskFilterBase.h"
+#include "src/core/SkMaskFilterBase.h"
 
 /** \class SkEmbossMaskFilter
 
diff --git a/src/effects/SkHighContrastFilter.cpp b/src/effects/SkHighContrastFilter.cpp
index 0fc7b00..de9c4ab 100644
--- a/src/effects/SkHighContrastFilter.cpp
+++ b/src/effects/SkHighContrastFilter.cpp
@@ -5,20 +5,20 @@
 * found in the LICENSE file.
 */
 
-#include "SkHighContrastFilter.h"
-#include "SkArenaAlloc.h"
-#include "SkColorData.h"
-#include "SkEffectPriv.h"
-#include "SkRasterPipeline.h"
-#include "SkReadBuffer.h"
-#include "SkString.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkHighContrastFilter.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkColorData.h"
+#include "src/core/SkEffectPriv.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 
 #if SK_SUPPORT_GPU
-#include "GrColorSpaceInfo.h"
-#include "GrContext.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrColorSpaceInfo.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
 #endif
 
 using InvertStyle = SkHighContrastConfig::InvertStyle;
diff --git a/src/effects/SkLayerDrawLooper.cpp b/src/effects/SkLayerDrawLooper.cpp
index cd3f51b..d9b6eb7 100644
--- a/src/effects/SkLayerDrawLooper.cpp
+++ b/src/effects/SkLayerDrawLooper.cpp
@@ -4,21 +4,21 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkArenaAlloc.h"
-#include "SkBlendModePriv.h"
-#include "SkBlurDrawLooper.h"
-#include "SkColorSpacePriv.h"
-#include "SkMaskFilter.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkMaskFilterBase.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
-#include "SkLayerDrawLooper.h"
-#include "SkString.h"
-#include "SkStringUtils.h"
-#include "SkUnPreMultiply.h"
-#include "SkXfermodePriv.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkString.h"
+#include "include/core/SkUnPreMultiply.h"
+#include "include/effects/SkBlurDrawLooper.h"
+#include "include/effects/SkLayerDrawLooper.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkBlendModePriv.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkMaskFilterBase.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkStringUtils.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/core/SkXfermodePriv.h"
 
 SkLayerDrawLooper::LayerInfo::LayerInfo() {
     fPaintBits = 0;                     // ignore our paint fields
diff --git a/src/effects/SkLumaColorFilter.cpp b/src/effects/SkLumaColorFilter.cpp
index a7b7ff2..e66fb9e 100644
--- a/src/effects/SkLumaColorFilter.cpp
+++ b/src/effects/SkLumaColorFilter.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "SkLumaColorFilter.h"
-#include "SkColorData.h"
-#include "SkEffectPriv.h"
-#include "SkRasterPipeline.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkLumaColorFilter.h"
+#include "include/private/SkColorData.h"
+#include "src/core/SkEffectPriv.h"
+#include "src/core/SkRasterPipeline.h"
 
 #if SK_SUPPORT_GPU
-#include "GrContext.h"
-#include "effects/generated/GrLumaColorFilterEffect.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/effects/generated/GrLumaColorFilterEffect.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
 #endif
 
 bool SkLumaColorFilter::onAppendStages(const SkStageRec& rec, bool shaderIsOpaque) const {
diff --git a/src/effects/SkOpPE.h b/src/effects/SkOpPE.h
index ea4f811..1f51579 100644
--- a/src/effects/SkOpPE.h
+++ b/src/effects/SkOpPE.h
@@ -8,7 +8,7 @@
 #ifndef SkOpPE_DEFINED
 #define SkOpPE_DEFINED
 
-#include "SkOpPathEffect.h"
+#include "include/effects/SkOpPathEffect.h"
 
 class SkOpPE : public SkPathEffect {
 public:
diff --git a/src/effects/SkOpPathEffect.cpp b/src/effects/SkOpPathEffect.cpp
index 1623b86..e7b8a60 100644
--- a/src/effects/SkOpPathEffect.cpp
+++ b/src/effects/SkOpPathEffect.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkOpPE.h"
-#include "SkStrokeRec.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkStrokeRec.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/effects/SkOpPE.h"
 
 sk_sp<SkPathEffect> SkMergePathEffect::Make(sk_sp<SkPathEffect> one, sk_sp<SkPathEffect> two,
                                             SkPathOp op) {
diff --git a/src/effects/SkOverdrawColorFilter.cpp b/src/effects/SkOverdrawColorFilter.cpp
index 044bdf3..00cb8f8 100644
--- a/src/effects/SkOverdrawColorFilter.cpp
+++ b/src/effects/SkOverdrawColorFilter.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkArenaAlloc.h"
-#include "SkEffectPriv.h"
-#include "SkOverdrawColorFilter.h"
-#include "SkRasterPipeline.h"
-#include "SkReadBuffer.h"
+#include "include/effects/SkOverdrawColorFilter.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkEffectPriv.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/core/SkReadBuffer.h"
 
 #if SK_SUPPORT_GPU
-#include "effects/GrSkSLFP.h"
+#include "src/gpu/effects/GrSkSLFP.h"
 
 GR_FP_SRC_STRING SKSL_OVERDRAW_SRC = R"(
 layout(ctype=SkPMColor) in uniform half4 color0;
@@ -85,7 +85,7 @@
 }
 #if SK_SUPPORT_GPU
 
-#include "GrRecordingContext.h"
+#include "include/private/GrRecordingContext.h"
 
 std::unique_ptr<GrFragmentProcessor> SkOverdrawColorFilter::asFragmentProcessor(
         GrRecordingContext* context, const GrColorSpaceInfo&) const {
diff --git a/src/effects/SkPackBits.cpp b/src/effects/SkPackBits.cpp
index a9e61c4..a590eb6 100644
--- a/src/effects/SkPackBits.cpp
+++ b/src/effects/SkPackBits.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkPackBits.h"
-#include "SkTo.h"
+#include "include/private/SkTo.h"
+#include "src/effects/SkPackBits.h"
 
 #include <cstring>
 
diff --git a/src/effects/SkPackBits.h b/src/effects/SkPackBits.h
index 773b13e..b04e28d 100644
--- a/src/effects/SkPackBits.h
+++ b/src/effects/SkPackBits.h
@@ -9,7 +9,7 @@
 #ifndef SkPackBits_DEFINED
 #define SkPackBits_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 class SkPackBits {
 public:
diff --git a/src/effects/SkShaderMaskFilter.cpp b/src/effects/SkShaderMaskFilter.cpp
index 400bb81..1cae6a1 100644
--- a/src/effects/SkShaderMaskFilter.cpp
+++ b/src/effects/SkShaderMaskFilter.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkMaskFilterBase.h"
-#include "SkReadBuffer.h"
-#include "SkShaderMaskFilter.h"
-#include "SkShaderBase.h"
-#include "SkString.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkShaderMaskFilter.h"
+#include "src/core/SkMaskFilterBase.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/shaders/SkShaderBase.h"
 
 class SkShaderMF : public SkMaskFilterBase {
 public:
@@ -111,7 +111,7 @@
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 #if SK_SUPPORT_GPU
-#include "GrFragmentProcessor.h"
+#include "src/gpu/GrFragmentProcessor.h"
 
 std::unique_ptr<GrFragmentProcessor> SkShaderMF::onAsFragmentProcessor(const GrFPArgs& args) const {
     return GrFragmentProcessor::MulInputByChildAlpha(as_SB(fShader)->asFragmentProcessor(args));
diff --git a/src/effects/SkTableColorFilter.cpp b/src/effects/SkTableColorFilter.cpp
index ca83f05..b8dbe47 100644
--- a/src/effects/SkTableColorFilter.cpp
+++ b/src/effects/SkTableColorFilter.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "SkTableColorFilter.h"
+#include "include/effects/SkTableColorFilter.h"
 
-#include "SkArenaAlloc.h"
-#include "SkBitmap.h"
-#include "SkColorData.h"
-#include "SkEffectPriv.h"
-#include "SkRasterPipeline.h"
-#include "SkReadBuffer.h"
-#include "SkString.h"
-#include "SkTo.h"
-#include "SkUnPreMultiply.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkString.h"
+#include "include/core/SkUnPreMultiply.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkEffectPriv.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 
 static const uint8_t gIdentityTable[] = {
     0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
@@ -147,7 +147,7 @@
     2, 3, 3, 4
 };
 
-#include "SkPackBits.h"
+#include "src/effects/SkPackBits.h"
 
 void SkTable_ColorFilter::flatten(SkWriteBuffer& buffer) const {
     uint8_t storage[5*256];
@@ -233,15 +233,15 @@
 
 #if SK_SUPPORT_GPU
 
-#include "GrColorSpaceInfo.h"
-#include "GrFragmentProcessor.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "SkGr.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrColorSpaceInfo.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 class ColorTableEffect : public GrFragmentProcessor {
 public:
@@ -374,7 +374,7 @@
 
 #if GR_TEST_UTILS
 
-#include "GrContext.h"
+#include "include/gpu/GrContext.h"
 
 std::unique_ptr<GrFragmentProcessor> ColorTableEffect::TestCreate(GrProcessorTestData* d) {
     int flags = 0;
diff --git a/src/effects/SkTableMaskFilter.cpp b/src/effects/SkTableMaskFilter.cpp
index f1119f8..4fe0fb1 100644
--- a/src/effects/SkTableMaskFilter.cpp
+++ b/src/effects/SkTableMaskFilter.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkFixed.h"
-#include "SkReadBuffer.h"
-#include "SkString.h"
-#include "SkTableMaskFilter.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkString.h"
+#include "include/effects/SkTableMaskFilter.h"
+#include "include/private/SkFixed.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 
 class SkTableMaskFilterImpl : public SkMaskFilterBase {
 public:
diff --git a/src/effects/SkTrimPE.h b/src/effects/SkTrimPE.h
index c4fc7e0..b457a38 100644
--- a/src/effects/SkTrimPE.h
+++ b/src/effects/SkTrimPE.h
@@ -8,9 +8,9 @@
 #ifndef SkTrimImpl_DEFINED
 #define SkTrimImpl_DEFINED
 
-#include "SkPathEffect.h"
+#include "include/core/SkPathEffect.h"
 
-#include "SkTrimPathEffect.h"
+#include "include/effects/SkTrimPathEffect.h"
 
 class SkTrimPE : public SkPathEffect {
 public:
diff --git a/src/effects/SkTrimPathEffect.cpp b/src/effects/SkTrimPathEffect.cpp
index fe3b7c1..d0a8806 100644
--- a/src/effects/SkTrimPathEffect.cpp
+++ b/src/effects/SkTrimPathEffect.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkPathMeasure.h"
-#include "SkTrimPathEffect.h"
-#include "SkTrimPE.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkPathMeasure.h"
+#include "include/effects/SkTrimPathEffect.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/effects/SkTrimPE.h"
 
 namespace {
 
diff --git a/src/effects/imagefilters/SkAlphaThresholdFilter.cpp b/src/effects/imagefilters/SkAlphaThresholdFilter.cpp
index 01a738e..a66a09c 100644
--- a/src/effects/imagefilters/SkAlphaThresholdFilter.cpp
+++ b/src/effects/imagefilters/SkAlphaThresholdFilter.cpp
@@ -5,26 +5,26 @@
  * found in the LICENSE file.
  */
 
-#include "SkAlphaThresholdFilter.h"
+#include "include/effects/SkAlphaThresholdFilter.h"
 
-#include "SkBitmap.h"
-#include "SkImageFilterPriv.h"
-#include "SkReadBuffer.h"
-#include "SkSpecialImage.h"
-#include "SkWriteBuffer.h"
-#include "SkRegion.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkRegion.h"
+#include "src/core/SkImageFilterPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkWriteBuffer.h"
 
 #if SK_SUPPORT_GPU
-#include "GrCaps.h"
-#include "GrColorSpaceXform.h"
-#include "GrContext.h"
-#include "GrFixedClip.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrTextureProxy.h"
-#include "effects/generated/GrAlphaThresholdFragmentProcessor.h"
-#include "effects/generated/GrSimpleTextureEffect.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrColorSpaceXform.h"
+#include "src/gpu/GrFixedClip.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/effects/generated/GrAlphaThresholdFragmentProcessor.h"
+#include "src/gpu/effects/generated/GrSimpleTextureEffect.h"
 #endif
 
 class SkAlphaThresholdFilterImpl : public SkImageFilter {
diff --git a/src/effects/imagefilters/SkArithmeticImageFilter.cpp b/src/effects/imagefilters/SkArithmeticImageFilter.cpp
index 0a174d5..9ca4192 100644
--- a/src/effects/imagefilters/SkArithmeticImageFilter.cpp
+++ b/src/effects/imagefilters/SkArithmeticImageFilter.cpp
@@ -5,30 +5,30 @@
  * found in the LICENSE file.
  */
 
-#include "SkArithmeticImageFilter.h"
-#include "SkCanvas.h"
-#include "SkImageFilterPriv.h"
-#include "SkNx.h"
-#include "SkReadBuffer.h"
-#include "SkSpecialImage.h"
-#include "SkSpecialSurface.h"
-#include "SkWriteBuffer.h"
-#include "SkXfermodeImageFilter.h"
+#include "include/core/SkCanvas.h"
+#include "include/effects/SkArithmeticImageFilter.h"
+#include "include/effects/SkXfermodeImageFilter.h"
+#include "include/private/SkNx.h"
+#include "src/core/SkImageFilterPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkSpecialSurface.h"
+#include "src/core/SkWriteBuffer.h"
 #if SK_SUPPORT_GPU
-#include "GrClip.h"
-#include "GrColorSpaceXform.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrTextureProxy.h"
-#include "SkGr.h"
-#include "effects/generated/GrConstColorProcessor.h"
-#include "effects/GrSkSLFP.h"
-#include "effects/GrTextureDomain.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrColorSpaceXform.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/effects/GrSkSLFP.h"
+#include "src/gpu/effects/GrTextureDomain.h"
+#include "src/gpu/effects/generated/GrConstColorProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 GR_FP_SRC_STRING SKSL_ARITHMETIC_SRC = R"(
 in uniform float4 k;
diff --git a/src/effects/imagefilters/SkBlurImageFilter.cpp b/src/effects/imagefilters/SkBlurImageFilter.cpp
index 62d53c7..8d756f9 100644
--- a/src/effects/imagefilters/SkBlurImageFilter.cpp
+++ b/src/effects/imagefilters/SkBlurImageFilter.cpp
@@ -5,27 +5,27 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlurImageFilter.h"
+#include "include/effects/SkBlurImageFilter.h"
 
 #include <algorithm>
 
-#include "SkArenaAlloc.h"
-#include "SkAutoPixmapStorage.h"
-#include "SkBitmap.h"
-#include "SkColorData.h"
-#include "SkImageFilterPriv.h"
-#include "SkTFitsIn.h"
-#include "SkGpuBlurUtils.h"
-#include "SkNx.h"
-#include "SkOpts.h"
-#include "SkReadBuffer.h"
-#include "SkSpecialImage.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkBitmap.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkNx.h"
+#include "include/private/SkTFitsIn.h"
+#include "src/core/SkAutoPixmapStorage.h"
+#include "src/core/SkGpuBlurUtils.h"
+#include "src/core/SkImageFilterPriv.h"
+#include "src/core/SkOpts.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkWriteBuffer.h"
 
 #if SK_SUPPORT_GPU
-#include "GrContext.h"
-#include "GrTextureProxy.h"
-#include "SkGr.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/SkGr.h"
 #endif
 
 static constexpr double kPi = 3.14159265358979323846264338327950288;
diff --git a/src/effects/imagefilters/SkColorFilterImageFilter.cpp b/src/effects/imagefilters/SkColorFilterImageFilter.cpp
index af0ff36..296f621 100644
--- a/src/effects/imagefilters/SkColorFilterImageFilter.cpp
+++ b/src/effects/imagefilters/SkColorFilterImageFilter.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorFilterImageFilter.h"
+#include "include/effects/SkColorFilterImageFilter.h"
 
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkImageFilterPriv.h"
-#include "SkReadBuffer.h"
-#include "SkSpecialImage.h"
-#include "SkSpecialSurface.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "src/core/SkImageFilterPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkSpecialSurface.h"
+#include "src/core/SkWriteBuffer.h"
 
 sk_sp<SkImageFilter> SkColorFilterImageFilter::Make(sk_sp<SkColorFilter> cf,
                                                     sk_sp<SkImageFilter> input,
diff --git a/src/effects/imagefilters/SkComposeImageFilter.cpp b/src/effects/imagefilters/SkComposeImageFilter.cpp
index 0f1672d..a08cb69 100644
--- a/src/effects/imagefilters/SkComposeImageFilter.cpp
+++ b/src/effects/imagefilters/SkComposeImageFilter.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkComposeImageFilter.h"
-#include "SkImageFilterPriv.h"
-#include "SkReadBuffer.h"
-#include "SkSpecialImage.h"
-#include "SkWriteBuffer.h"
+#include "include/effects/SkComposeImageFilter.h"
+#include "src/core/SkImageFilterPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkWriteBuffer.h"
 
 sk_sp<SkImageFilter> SkComposeImageFilter::Make(sk_sp<SkImageFilter> outer,
                                                 sk_sp<SkImageFilter> inner) {
diff --git a/src/effects/imagefilters/SkDisplacementMapEffect.cpp b/src/effects/imagefilters/SkDisplacementMapEffect.cpp
index b665fd6..7d969ee 100644
--- a/src/effects/imagefilters/SkDisplacementMapEffect.cpp
+++ b/src/effects/imagefilters/SkDisplacementMapEffect.cpp
@@ -5,31 +5,31 @@
  * found in the LICENSE file.
  */
 
-#include "SkDisplacementMapEffect.h"
+#include "include/effects/SkDisplacementMapEffect.h"
 
-#include "SkBitmap.h"
-#include "SkImageFilterPriv.h"
-#include "SkReadBuffer.h"
-#include "SkSpecialImage.h"
-#include "SkWriteBuffer.h"
-#include "SkUnPreMultiply.h"
-#include "SkColorData.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkUnPreMultiply.h"
+#include "include/private/SkColorData.h"
+#include "src/core/SkImageFilterPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkWriteBuffer.h"
 #if SK_SUPPORT_GPU
-#include "GrCaps.h"
-#include "GrClip.h"
-#include "GrColorSpaceXform.h"
-#include "GrCoordTransform.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrTexture.h"
-#include "GrTextureProxy.h"
-#include "SkGr.h"
-#include "effects/GrTextureDomain.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrColorSpaceXform.h"
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/effects/GrTextureDomain.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 #endif
 
 namespace {
diff --git a/src/effects/imagefilters/SkDropShadowImageFilter.cpp b/src/effects/imagefilters/SkDropShadowImageFilter.cpp
index c27ff22..cfb924a 100644
--- a/src/effects/imagefilters/SkDropShadowImageFilter.cpp
+++ b/src/effects/imagefilters/SkDropShadowImageFilter.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkDropShadowImageFilter.h"
+#include "include/effects/SkDropShadowImageFilter.h"
 
-#include "SkBlurImageFilter.h"
-#include "SkCanvas.h"
-#include "SkImageFilterPriv.h"
-#include "SkReadBuffer.h"
-#include "SkSpecialImage.h"
-#include "SkSpecialSurface.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkCanvas.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "src/core/SkImageFilterPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkSpecialSurface.h"
+#include "src/core/SkWriteBuffer.h"
 
 sk_sp<SkImageFilter> SkDropShadowImageFilter::Make(SkScalar dx, SkScalar dy,
                                                    SkScalar sigmaX, SkScalar sigmaY,
diff --git a/src/effects/imagefilters/SkImageSource.cpp b/src/effects/imagefilters/SkImageSource.cpp
index 5a7d26d..90d3c67 100644
--- a/src/effects/imagefilters/SkImageSource.cpp
+++ b/src/effects/imagefilters/SkImageSource.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkImageSource.h"
+#include "include/effects/SkImageSource.h"
 
-#include "SkCanvas.h"
-#include "SkImage.h"
-#include "SkReadBuffer.h"
-#include "SkSpecialImage.h"
-#include "SkSpecialSurface.h"
-#include "SkWriteBuffer.h"
-#include "SkString.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkString.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkSpecialSurface.h"
+#include "src/core/SkWriteBuffer.h"
 
 sk_sp<SkImageFilter> SkImageSource::Make(sk_sp<SkImage> image) {
     if (!image) {
diff --git a/src/effects/imagefilters/SkLightingImageFilter.cpp b/src/effects/imagefilters/SkLightingImageFilter.cpp
index 55e9801..e89542d 100644
--- a/src/effects/imagefilters/SkLightingImageFilter.cpp
+++ b/src/effects/imagefilters/SkLightingImageFilter.cpp
@@ -5,33 +5,33 @@
  * found in the LICENSE file.
  */
 
-#include "SkLightingImageFilter.h"
-#include "SkBitmap.h"
-#include "SkColorData.h"
-#include "SkImageFilterPriv.h"
-#include "SkPoint3.h"
-#include "SkReadBuffer.h"
-#include "SkSpecialImage.h"
-#include "SkTypes.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkPoint3.h"
+#include "include/core/SkTypes.h"
+#include "include/effects/SkLightingImageFilter.h"
+#include "include/private/SkColorData.h"
+#include "src/core/SkImageFilterPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkWriteBuffer.h"
 
 #if SK_SUPPORT_GPU
-#include "GrCaps.h"
-#include "GrFixedClip.h"
-#include "GrFragmentProcessor.h"
-#include "GrPaint.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrTexture.h"
-#include "GrTextureProxy.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrFixedClip.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/GrPaint.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
 
-#include "SkGr.h"
-#include "effects/GrTextureDomain.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/effects/GrTextureDomain.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 class GrGLDiffuseLightingEffect;
 class GrGLSpecularLightingEffect;
diff --git a/src/effects/imagefilters/SkMagnifierImageFilter.cpp b/src/effects/imagefilters/SkMagnifierImageFilter.cpp
index ed9f3c7..8030b4f 100644
--- a/src/effects/imagefilters/SkMagnifierImageFilter.cpp
+++ b/src/effects/imagefilters/SkMagnifierImageFilter.cpp
@@ -5,27 +5,27 @@
  * found in the LICENSE file.
  */
 
-#include "SkMagnifierImageFilter.h"
+#include "include/effects/SkMagnifierImageFilter.h"
 
-#include "SkBitmap.h"
-#include "SkColorData.h"
-#include "SkImageFilterPriv.h"
-#include "SkReadBuffer.h"
-#include "SkSpecialImage.h"
-#include "SkWriteBuffer.h"
-#include "SkValidationUtils.h"
+#include "include/core/SkBitmap.h"
+#include "include/private/SkColorData.h"
+#include "src/core/SkImageFilterPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkValidationUtils.h"
+#include "src/core/SkWriteBuffer.h"
 
 ////////////////////////////////////////////////////////////////////////////////
 #if SK_SUPPORT_GPU
-#include "GrColorSpaceXform.h"
-#include "GrContext.h"
-#include "GrCoordTransform.h"
-#include "GrTexture.h"
-#include "effects/generated/GrMagnifierEffect.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrColorSpaceXform.h"
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/effects/generated/GrMagnifierEffect.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 #endif
 
 sk_sp<SkImageFilter> SkMagnifierImageFilter::Make(const SkRect& srcRect, SkScalar inset,
diff --git a/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp b/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp
index 7d2f9d3..d4632a8 100644
--- a/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp
+++ b/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "SkMatrixConvolutionImageFilter.h"
-#include "SkBitmap.h"
-#include "SkColorData.h"
-#include "SkImageFilterPriv.h"
-#include "SkReadBuffer.h"
-#include "SkSpecialImage.h"
-#include "SkWriteBuffer.h"
-#include "SkRect.h"
-#include "SkUnPreMultiply.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkUnPreMultiply.h"
+#include "include/effects/SkMatrixConvolutionImageFilter.h"
+#include "include/private/SkColorData.h"
+#include "src/core/SkImageFilterPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkWriteBuffer.h"
 
 #if SK_SUPPORT_GPU
-#include "GrContext.h"
-#include "GrTextureProxy.h"
-#include "effects/GrMatrixConvolutionEffect.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/effects/GrMatrixConvolutionEffect.h"
 #endif
 
 // We need to be able to read at most SK_MaxS32 bytes, so divide that
diff --git a/src/effects/imagefilters/SkMergeImageFilter.cpp b/src/effects/imagefilters/SkMergeImageFilter.cpp
index 9730506..b0c6f46 100644
--- a/src/effects/imagefilters/SkMergeImageFilter.cpp
+++ b/src/effects/imagefilters/SkMergeImageFilter.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkMergeImageFilter.h"
+#include "include/effects/SkMergeImageFilter.h"
 
-#include "SkCanvas.h"
-#include "SkReadBuffer.h"
-#include "SkSpecialImage.h"
-#include "SkSpecialSurface.h"
-#include "SkWriteBuffer.h"
-#include "SkValidationUtils.h"
+#include "include/core/SkCanvas.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkSpecialSurface.h"
+#include "src/core/SkValidationUtils.h"
+#include "src/core/SkWriteBuffer.h"
 
 sk_sp<SkImageFilter> SkMergeImageFilter::Make(sk_sp<SkImageFilter>* const filters, int count,
                                                const CropRect* cropRect) {
diff --git a/src/effects/imagefilters/SkMorphologyImageFilter.cpp b/src/effects/imagefilters/SkMorphologyImageFilter.cpp
index e156764..ae3328c 100644
--- a/src/effects/imagefilters/SkMorphologyImageFilter.cpp
+++ b/src/effects/imagefilters/SkMorphologyImageFilter.cpp
@@ -5,31 +5,31 @@
  * found in the LICENSE file.
  */
 
-#include "SkMorphologyImageFilter.h"
+#include "include/effects/SkMorphologyImageFilter.h"
 
-#include "SkBitmap.h"
-#include "SkColorData.h"
-#include "SkImageFilterPriv.h"
-#include "SkReadBuffer.h"
-#include "SkRect.h"
-#include "SkSpecialImage.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkRect.h"
+#include "include/private/SkColorData.h"
+#include "src/core/SkImageFilterPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkWriteBuffer.h"
 
 #if SK_SUPPORT_GPU
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrCoordTransform.h"
-#include "GrFixedClip.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrTexture.h"
-#include "GrTextureProxy.h"
-#include "SkGr.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFixedClip.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 #endif
 
 sk_sp<SkImageFilter> SkDilateImageFilter::Make(int radiusX, int radiusY,
diff --git a/src/effects/imagefilters/SkOffsetImageFilter.cpp b/src/effects/imagefilters/SkOffsetImageFilter.cpp
index f7d3bc1..13ceee9 100644
--- a/src/effects/imagefilters/SkOffsetImageFilter.cpp
+++ b/src/effects/imagefilters/SkOffsetImageFilter.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkOffsetImageFilter.h"
-#include "SkCanvas.h"
-#include "SkImageFilterPriv.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkPointPriv.h"
-#include "SkReadBuffer.h"
-#include "SkSpecialImage.h"
-#include "SkSpecialSurface.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/effects/SkOffsetImageFilter.h"
+#include "src/core/SkImageFilterPriv.h"
+#include "src/core/SkPointPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkSpecialSurface.h"
+#include "src/core/SkWriteBuffer.h"
 
 static SkIPoint map_offset_vector(const SkMatrix& ctm, const SkVector& offset) {
     SkVector vec = ctm.mapVector(offset.fX, offset.fY);
diff --git a/src/effects/imagefilters/SkPaintImageFilter.cpp b/src/effects/imagefilters/SkPaintImageFilter.cpp
index 10d924d..d33002d 100644
--- a/src/effects/imagefilters/SkPaintImageFilter.cpp
+++ b/src/effects/imagefilters/SkPaintImageFilter.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkPaintImageFilter.h"
-#include "SkCanvas.h"
-#include "SkImageFilterPriv.h"
-#include "SkReadBuffer.h"
-#include "SkSpecialImage.h"
-#include "SkSpecialSurface.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkCanvas.h"
+#include "include/effects/SkPaintImageFilter.h"
+#include "src/core/SkImageFilterPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkSpecialSurface.h"
+#include "src/core/SkWriteBuffer.h"
 
 sk_sp<SkImageFilter> SkPaintImageFilter::Make(const SkPaint& paint,
                                               const CropRect* cropRect) {
diff --git a/src/effects/imagefilters/SkPictureImageFilter.cpp b/src/effects/imagefilters/SkPictureImageFilter.cpp
index da8a98a..0ff2f74 100644
--- a/src/effects/imagefilters/SkPictureImageFilter.cpp
+++ b/src/effects/imagefilters/SkPictureImageFilter.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkPictureImageFilter.h"
+#include "include/effects/SkPictureImageFilter.h"
 
-#include "SkCanvas.h"
-#include "SkImageSource.h"
-#include "SkPicturePriv.h"
-#include "SkReadBuffer.h"
-#include "SkSpecialImage.h"
-#include "SkSpecialSurface.h"
-#include "SkWriteBuffer.h"
-#include "SkValidationUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/effects/SkImageSource.h"
+#include "src/core/SkPicturePriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkSpecialSurface.h"
+#include "src/core/SkValidationUtils.h"
+#include "src/core/SkWriteBuffer.h"
 
 sk_sp<SkImageFilter> SkPictureImageFilter::Make(sk_sp<SkPicture> picture) {
     return sk_sp<SkImageFilter>(new SkPictureImageFilter(std::move(picture)));
diff --git a/src/effects/imagefilters/SkTileImageFilter.cpp b/src/effects/imagefilters/SkTileImageFilter.cpp
index edd9f67..1ee9baf 100644
--- a/src/effects/imagefilters/SkTileImageFilter.cpp
+++ b/src/effects/imagefilters/SkTileImageFilter.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "SkTileImageFilter.h"
-#include "SkCanvas.h"
-#include "SkImage.h"
-#include "SkImageFilterPriv.h"
-#include "SkMatrix.h"
-#include "SkOffsetImageFilter.h"
-#include "SkPaint.h"
-#include "SkReadBuffer.h"
-#include "SkShader.h"
-#include "SkSpecialImage.h"
-#include "SkSpecialSurface.h"
-#include "SkSurface.h"
-#include "SkValidationUtils.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkOffsetImageFilter.h"
+#include "include/effects/SkTileImageFilter.h"
+#include "src/core/SkImageFilterPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkSpecialSurface.h"
+#include "src/core/SkValidationUtils.h"
+#include "src/core/SkWriteBuffer.h"
 
 sk_sp<SkImageFilter> SkTileImageFilter::Make(const SkRect& srcRect, const SkRect& dstRect,
                                              sk_sp<SkImageFilter> input) {
diff --git a/src/effects/imagefilters/SkXfermodeImageFilter.cpp b/src/effects/imagefilters/SkXfermodeImageFilter.cpp
index 8cd21c8..53fbdcb 100644
--- a/src/effects/imagefilters/SkXfermodeImageFilter.cpp
+++ b/src/effects/imagefilters/SkXfermodeImageFilter.cpp
@@ -5,30 +5,30 @@
  * found in the LICENSE file.
  */
 
-#include "SkXfermodeImageFilter.h"
-#include "SkArithmeticImageFilter.h"
-#include "SkCanvas.h"
-#include "SkColorData.h"
-#include "SkImageFilterPriv.h"
-#include "SkReadBuffer.h"
-#include "SkSpecialImage.h"
-#include "SkSpecialSurface.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkCanvas.h"
+#include "include/effects/SkArithmeticImageFilter.h"
+#include "include/effects/SkXfermodeImageFilter.h"
+#include "include/private/SkColorData.h"
+#include "src/core/SkImageFilterPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkSpecialSurface.h"
+#include "src/core/SkWriteBuffer.h"
 #if SK_SUPPORT_GPU
-#include "GrCaps.h"
-#include "GrClip.h"
-#include "GrColorSpaceXform.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrTextureProxy.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrColorSpaceXform.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
 
-#include "effects/generated/GrConstColorProcessor.h"
-#include "effects/GrTextureDomain.h"
-#include "effects/generated/GrSimpleTextureEffect.h"
-#include "SkGr.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/effects/GrTextureDomain.h"
+#include "src/gpu/effects/generated/GrConstColorProcessor.h"
+#include "src/gpu/effects/generated/GrSimpleTextureEffect.h"
 #endif
-#include "SkClipOpPriv.h"
+#include "src/core/SkClipOpPriv.h"
 
 class SkXfermodeImageFilter_Base : public SkImageFilter {
 public:
@@ -236,7 +236,7 @@
 
 #if SK_SUPPORT_GPU
 
-#include "effects/GrXfermodeFragmentProcessor.h"
+#include "src/gpu/effects/GrXfermodeFragmentProcessor.h"
 
 sk_sp<SkSpecialImage> SkXfermodeImageFilter_Base::filterImageGPU(
                                                    SkSpecialImage* source,
diff --git a/src/fonts/SkFontMgr_indirect.cpp b/src/fonts/SkFontMgr_indirect.cpp
index 98889b6..af53215 100644
--- a/src/fonts/SkFontMgr_indirect.cpp
+++ b/src/fonts/SkFontMgr_indirect.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontMgr.h"
-#include "SkFontMgr_indirect.h"
-#include "SkFontStyle.h"
-#include "SkMutex.h"
-#include "SkOnce.h"
-#include "SkRefCnt.h"
-#include "SkRemotableFontMgr.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkTArray.h"
-#include "SkTypeface.h"
-#include "SkTypes.h"
-#include "SkTemplates.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypeface.h"
+#include "include/core/SkTypes.h"
+#include "include/ports/SkFontMgr_indirect.h"
+#include "include/ports/SkRemotableFontMgr.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkOnce.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTemplates.h"
 
 class SkData;
 
diff --git a/src/fonts/SkRemotableFontMgr.cpp b/src/fonts/SkRemotableFontMgr.cpp
index aca8a0b..9b89a53 100644
--- a/src/fonts/SkRemotableFontMgr.cpp
+++ b/src/fonts/SkRemotableFontMgr.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkOnce.h"
-#include "SkRemotableFontMgr.h"
+#include "include/ports/SkRemotableFontMgr.h"
+#include "include/private/SkOnce.h"
 
 SkRemotableFontIdentitySet::SkRemotableFontIdentitySet(int count, SkFontIdentity** data)
       : fCount(count), fData(count)
diff --git a/src/gpu/GrAHardwareBufferImageGenerator.cpp b/src/gpu/GrAHardwareBufferImageGenerator.cpp
index 51908e1..59f59a9 100644
--- a/src/gpu/GrAHardwareBufferImageGenerator.cpp
+++ b/src/gpu/GrAHardwareBufferImageGenerator.cpp
@@ -5,33 +5,33 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 26
 #define GL_GLEXT_PROTOTYPES
 #define EGL_EGLEXT_PROTOTYPES
 
 
-#include "GrAHardwareBufferImageGenerator.h"
+#include "src/gpu/GrAHardwareBufferImageGenerator.h"
 
 #include <android/hardware_buffer.h>
 
-#include "GrAHardwareBufferUtils.h"
-#include "GrBackendSurface.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrResourceCache.h"
-#include "GrResourceProvider.h"
-#include "GrResourceProviderPriv.h"
-#include "GrTexture.h"
-#include "GrTextureProxy.h"
-#include "SkExchange.h"
-#include "SkMessageBus.h"
-#include "gl/GrGLDefines.h"
-#include "gl/GrGLTypes.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTexture.h"
+#include "include/gpu/gl/GrGLTypes.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "include/private/SkMessageBus.h"
+#include "src/core/SkExchange.h"
+#include "src/gpu/GrAHardwareBufferUtils.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrResourceCache.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrResourceProviderPriv.h"
+#include "src/gpu/gl/GrGLDefines.h"
 
 #include <EGL/egl.h>
 #include <EGL/eglext.h>
@@ -39,8 +39,8 @@
 #include <GLES/glext.h>
 
 #ifdef SK_VULKAN
-#include "vk/GrVkExtensions.h"
-#include "vk/GrVkGpu.h"
+#include "include/gpu/vk/GrVkExtensions.h"
+#include "src/gpu/vk/GrVkGpu.h"
 #endif
 
 #define PROT_CONTENT_EXT_STR "EGL_EXT_protected_content"
diff --git a/src/gpu/GrAHardwareBufferImageGenerator.h b/src/gpu/GrAHardwareBufferImageGenerator.h
index 95b2fc2..f200d39 100644
--- a/src/gpu/GrAHardwareBufferImageGenerator.h
+++ b/src/gpu/GrAHardwareBufferImageGenerator.h
@@ -7,9 +7,9 @@
 #ifndef GrAHardwareBufferImageGenerator_DEFINED
 #define GrAHardwareBufferImageGenerator_DEFINED
 
-#include "SkImageGenerator.h"
+#include "include/core/SkImageGenerator.h"
 
-#include "GrTypesPriv.h"
+#include "include/private/GrTypesPriv.h"
 
 class GrGpuResource;
 
diff --git a/src/gpu/GrAHardwareBufferUtils.cpp b/src/gpu/GrAHardwareBufferUtils.cpp
index 43272ce..294f999 100644
--- a/src/gpu/GrAHardwareBufferUtils.cpp
+++ b/src/gpu/GrAHardwareBufferUtils.cpp
@@ -5,24 +5,24 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 26
 #define GL_GLEXT_PROTOTYPES
 #define EGL_EGLEXT_PROTOTYPES
 
-#include "GrAHardwareBufferUtils.h"
+#include "src/gpu/GrAHardwareBufferUtils.h"
 
 #include <android/hardware_buffer.h>
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "gl/GrGLDefines.h"
-#include "gl/GrGLTypes.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/gl/GrGLTypes.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/gl/GrGLDefines.h"
 
 #ifdef SK_VULKAN
-#include "vk/GrVkCaps.h"
-#include "vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkCaps.h"
+#include "src/gpu/vk/GrVkGpu.h"
 #endif
 
 #include <EGL/egl.h>
diff --git a/src/gpu/GrAHardwareBufferUtils.h b/src/gpu/GrAHardwareBufferUtils.h
index 31cb140..f35a031 100644
--- a/src/gpu/GrAHardwareBufferUtils.h
+++ b/src/gpu/GrAHardwareBufferUtils.h
@@ -7,12 +7,12 @@
 #ifndef GrAHardwareBufferUtils_DEFINED
 #define GrAHardwareBufferUtils_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 26
 
-#include "GrBackendSurface.h"
-#include "GrTypes.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrTypes.h"
 
 class GrContext;
 
diff --git a/src/gpu/GrAllocator.h b/src/gpu/GrAllocator.h
index 72df8b6..b2945e8 100644
--- a/src/gpu/GrAllocator.h
+++ b/src/gpu/GrAllocator.h
@@ -8,11 +8,11 @@
 #ifndef GrAllocator_DEFINED
 #define GrAllocator_DEFINED
 
-#include "GrConfig.h"
-#include "GrTypes.h"
-#include "SkNoncopyable.h"
-#include "SkTArray.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/gpu/GrConfig.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/SkNoncopyable.h"
+#include "include/private/SkTArray.h"
 #include <new>
 
 class GrAllocator : SkNoncopyable {
diff --git a/src/gpu/GrAppliedClip.h b/src/gpu/GrAppliedClip.h
index bfe3383..d40377b 100644
--- a/src/gpu/GrAppliedClip.h
+++ b/src/gpu/GrAppliedClip.h
@@ -8,11 +8,11 @@
 #ifndef GrAppliedClip_DEFINED
 #define GrAppliedClip_DEFINED
 
-#include "GrFragmentProcessor.h"
-#include "GrScissorState.h"
-#include "GrWindowRectsState.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/GrScissorState.h"
+#include "src/gpu/GrWindowRectsState.h"
 
-#include "SkClipStack.h"
+#include "src/core/SkClipStack.h"
 
 
 /**
diff --git a/src/gpu/GrAuditTrail.cpp b/src/gpu/GrAuditTrail.cpp
index 750890a..92b9066 100644
--- a/src/gpu/GrAuditTrail.cpp
+++ b/src/gpu/GrAuditTrail.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "GrAuditTrail.h"
-#include "ops/GrOp.h"
-#include "SkJSONWriter.h"
+#include "include/private/GrAuditTrail.h"
+#include "src/gpu/ops/GrOp.h"
+#include "src/utils/SkJSONWriter.h"
 
 const int GrAuditTrail::kGrAuditTrailInvalidID = -1;
 
diff --git a/src/gpu/GrAutoLocaleSetter.h b/src/gpu/GrAutoLocaleSetter.h
index f6a10e5..aa24177 100644
--- a/src/gpu/GrAutoLocaleSetter.h
+++ b/src/gpu/GrAutoLocaleSetter.h
@@ -8,11 +8,11 @@
 #ifndef GrAutoLocaleSetter_DEFINED
 #define GrAutoLocaleSetter_DEFINED
 
-#include "GrTypes.h"
-#include "SkNoncopyable.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/SkNoncopyable.h"
 
 #if defined(SK_BUILD_FOR_WIN)
-#include "SkString.h"
+#include "include/core/SkString.h"
 #endif
 
 #if !defined(SK_BUILD_FOR_ANDROID)
diff --git a/src/gpu/GrBackendSurface.cpp b/src/gpu/GrBackendSurface.cpp
index 187f7d8..657085b 100644
--- a/src/gpu/GrBackendSurface.cpp
+++ b/src/gpu/GrBackendSurface.cpp
@@ -6,18 +6,18 @@
  */
 
 
-#include "GrBackendSurface.h"
+#include "include/gpu/GrBackendSurface.h"
 
-#include "gl/GrGLUtil.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
 #ifdef SK_VULKAN
-#include "vk/GrVkImageLayout.h"
-#include "vk/GrVkTypes.h"
-#include "vk/GrVkUtil.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/vk/GrVkImageLayout.h"
+#include "src/gpu/vk/GrVkUtil.h"
 #endif
 #ifdef SK_METAL
-#include "mtl/GrMtlTypes.h"
-#include "mtl/GrMtlCppUtil.h"
+#include "include/gpu/mtl/GrMtlTypes.h"
+#include "src/gpu/mtl/GrMtlCppUtil.h"
 #endif
 
 GrBackendFormat::GrBackendFormat(GrGLenum format, GrGLenum target)
diff --git a/src/gpu/GrBackendTextureImageGenerator.cpp b/src/gpu/GrBackendTextureImageGenerator.cpp
index 8ed29ec..7c3e403 100644
--- a/src/gpu/GrBackendTextureImageGenerator.cpp
+++ b/src/gpu/GrBackendTextureImageGenerator.cpp
@@ -5,24 +5,24 @@
  * found in the LICENSE file.
  */
 
-#include "GrBackendTextureImageGenerator.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrResourceCache.h"
-#include "GrResourceProvider.h"
-#include "GrResourceProviderPriv.h"
-#include "GrSemaphore.h"
-#include "GrTexture.h"
-#include "GrTexturePriv.h"
-#include "GrTextureProxyPriv.h"
-#include "SkGr.h"
-#include "SkMessageBus.h"
-#include "gl/GrGLTexture.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/SkMessageBus.h"
+#include "src/gpu/GrBackendTextureImageGenerator.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrResourceCache.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrResourceProviderPriv.h"
+#include "src/gpu/GrSemaphore.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/GrTextureProxyPriv.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/gl/GrGLTexture.h"
 
 GrBackendTextureImageGenerator::RefHelper::RefHelper(GrTexture* texture, uint32_t owningContextID)
         : fOriginalTexture(texture)
diff --git a/src/gpu/GrBackendTextureImageGenerator.h b/src/gpu/GrBackendTextureImageGenerator.h
index 5999f8f..13616a3 100644
--- a/src/gpu/GrBackendTextureImageGenerator.h
+++ b/src/gpu/GrBackendTextureImageGenerator.h
@@ -7,10 +7,10 @@
 #ifndef GrBackendTextureImageGenerator_DEFINED
 #define GrBackendTextureImageGenerator_DEFINED
 
-#include "GrBackendSurface.h"
-#include "GrResourceKey.h"
-#include "SkImageGenerator.h"
-#include "SkMutex.h"
+#include "include/core/SkImageGenerator.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/private/GrResourceKey.h"
+#include "include/private/SkMutex.h"
 
 class GrSemaphore;
 
diff --git a/src/gpu/GrBaseContextPriv.h b/src/gpu/GrBaseContextPriv.h
index 61d4a30..c65aacb 100644
--- a/src/gpu/GrBaseContextPriv.h
+++ b/src/gpu/GrBaseContextPriv.h
@@ -8,7 +8,7 @@
 #ifndef GrBaseContextPriv_DEFINED
 #define GrBaseContextPriv_DEFINED
 
-#include "GrContext_Base.h"
+#include "include/private/GrContext_Base.h"
 
 /** Class that exposes methods on GrContext_Base that are only intended for use internal to Skia.
     This class is purely a privileged window into GrContext_Base. It should never have
diff --git a/src/gpu/GrBitmapTextureMaker.cpp b/src/gpu/GrBitmapTextureMaker.cpp
index c6d7504..b3ee025 100644
--- a/src/gpu/GrBitmapTextureMaker.cpp
+++ b/src/gpu/GrBitmapTextureMaker.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "GrBitmapTextureMaker.h"
+#include "src/gpu/GrBitmapTextureMaker.h"
 
-#include "GrGpuResourcePriv.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrSurfaceContext.h"
-#include "SkBitmap.h"
-#include "SkGr.h"
-#include "SkMipMap.h"
-#include "SkPixelRef.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkPixelRef.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/core/SkMipMap.h"
+#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrSurfaceContext.h"
+#include "src/gpu/SkGr.h"
 
 static bool bmp_is_alpha_only(const SkBitmap& bm) { return kAlpha_8_SkColorType == bm.colorType(); }
 
diff --git a/src/gpu/GrBitmapTextureMaker.h b/src/gpu/GrBitmapTextureMaker.h
index da9869c..9a599c2 100644
--- a/src/gpu/GrBitmapTextureMaker.h
+++ b/src/gpu/GrBitmapTextureMaker.h
@@ -8,8 +8,8 @@
 #ifndef GrBitmapTextureMaker_DEFINED
 #define GrBitmapTextureMaker_DEFINED
 
-#include "GrTextureMaker.h"
-#include "SkBitmap.h"
+#include "include/core/SkBitmap.h"
+#include "src/gpu/GrTextureMaker.h"
 
 /** This class manages the conversion of SW-backed bitmaps to GrTextures. If the input bitmap is
     non-volatile the texture is cached using a key created from the pixels' image id and the
diff --git a/src/gpu/GrBlurUtils.cpp b/src/gpu/GrBlurUtils.cpp
index 2b61aef..388c5b0 100644
--- a/src/gpu/GrBlurUtils.cpp
+++ b/src/gpu/GrBlurUtils.cpp
@@ -5,26 +5,26 @@
  * found in the LICENSE file.
  */
 
-#include "GrBlurUtils.h"
+#include "src/gpu/GrBlurUtils.h"
 
-#include "GrCaps.h"
-#include "GrFixedClip.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "GrShape.h"
-#include "GrSoftwarePathRenderer.h"
-#include "GrStyle.h"
-#include "GrTextureProxy.h"
-#include "effects/generated/GrSimpleTextureEffect.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrFixedClip.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/GrSoftwarePathRenderer.h"
+#include "src/gpu/GrStyle.h"
+#include "src/gpu/effects/generated/GrSimpleTextureEffect.h"
 
-#include "SkDraw.h"
-#include "SkGr.h"
-#include "SkMaskFilterBase.h"
-#include "SkPaint.h"
-#include "SkTLazy.h"
+#include "include/core/SkPaint.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkMaskFilterBase.h"
+#include "src/core/SkTLazy.h"
+#include "src/gpu/SkGr.h"
 
 static bool clip_bounds_quick_reject(const SkIRect& clipBounds, const SkIRect& rect) {
     return clipBounds.isEmpty() || rect.isEmpty() || !SkIRect::Intersects(clipBounds, rect);
diff --git a/src/gpu/GrBlurUtils.h b/src/gpu/GrBlurUtils.h
index 7e10edc..d2f2570 100644
--- a/src/gpu/GrBlurUtils.h
+++ b/src/gpu/GrBlurUtils.h
@@ -8,7 +8,7 @@
 #ifndef GrBlurUtils_DEFINED
 #define GrBlurUtils_DEFINED
 
-#include "GrTypesPriv.h"
+#include "include/private/GrTypesPriv.h"
 
 class GrClip;
 class GrContext;
diff --git a/src/gpu/GrBuffer.h b/src/gpu/GrBuffer.h
index cc710c7..b9780d1 100644
--- a/src/gpu/GrBuffer.h
+++ b/src/gpu/GrBuffer.h
@@ -8,7 +8,7 @@
 #ifndef GrBuffer_DEFINED
 #define GrBuffer_DEFINED
 
-#include "GrTypes.h"
+#include "include/gpu/GrTypes.h"
 
 /** Base class for a GPU buffer object or a client side arrays. */
 class GrBuffer {
diff --git a/src/gpu/GrBufferAllocPool.cpp b/src/gpu/GrBufferAllocPool.cpp
index 36c0431..8d09d5c 100644
--- a/src/gpu/GrBufferAllocPool.cpp
+++ b/src/gpu/GrBufferAllocPool.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "GrBufferAllocPool.h"
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrCpuBuffer.h"
-#include "GrGpu.h"
-#include "GrGpuBuffer.h"
-#include "GrResourceProvider.h"
-#include "GrTypes.h"
-#include "SkMacros.h"
-#include "SkSafeMath.h"
-#include "SkTraceEvent.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/SkMacros.h"
+#include "src/core/SkSafeMath.h"
+#include "src/core/SkTraceEvent.h"
+#include "src/gpu/GrBufferAllocPool.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrCpuBuffer.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrGpuBuffer.h"
+#include "src/gpu/GrResourceProvider.h"
 
 sk_sp<GrBufferAllocPool::CpuBufferCache> GrBufferAllocPool::CpuBufferCache::Make(
         int maxBuffersToCache) {
diff --git a/src/gpu/GrBufferAllocPool.h b/src/gpu/GrBufferAllocPool.h
index b499e80..d42ef56 100644
--- a/src/gpu/GrBufferAllocPool.h
+++ b/src/gpu/GrBufferAllocPool.h
@@ -8,13 +8,13 @@
 #ifndef GrBufferAllocPool_DEFINED
 #define GrBufferAllocPool_DEFINED
 
-#include "GrCpuBuffer.h"
-#include "GrNonAtomicRef.h"
-#include "GrTypesPriv.h"
-#include "SkNoncopyable.h"
-#include "SkTArray.h"
-#include "SkTDArray.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/GrTypesPriv.h"
+#include "include/private/SkNoncopyable.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTDArray.h"
+#include "src/gpu/GrCpuBuffer.h"
+#include "src/gpu/GrNonAtomicRef.h"
 
 class GrGpu;
 
diff --git a/src/gpu/GrCaps.cpp b/src/gpu/GrCaps.cpp
index f2589f5..d3f6374 100644
--- a/src/gpu/GrCaps.cpp
+++ b/src/gpu/GrCaps.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrCaps.h"
-#include "GrBackendSurface.h"
-#include "GrContextOptions.h"
-#include "GrSurface.h"
-#include "GrSurfaceProxy.h"
-#include "GrTypesPriv.h"
-#include "GrWindowRectangles.h"
-#include "SkJSONWriter.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContextOptions.h"
+#include "include/gpu/GrSurface.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrWindowRectangles.h"
+#include "src/utils/SkJSONWriter.h"
 
 GrCaps::GrCaps(const GrContextOptions& options) {
     fMipMapSupport = false;
diff --git a/src/gpu/GrCaps.h b/src/gpu/GrCaps.h
index 8ae8bba..e6518fb 100644
--- a/src/gpu/GrCaps.h
+++ b/src/gpu/GrCaps.h
@@ -8,13 +8,13 @@
 #ifndef GrCaps_DEFINED
 #define GrCaps_DEFINED
 
-#include "../private/GrTypesPriv.h"
-#include "GrBlend.h"
-#include "GrDriverBugWorkarounds.h"
-#include "GrShaderCaps.h"
-#include "SkImageInfo.h"
-#include "SkRefCnt.h"
-#include "SkString.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkString.h"
+#include "include/gpu/GrBlend.h"
+#include "include/gpu/GrDriverBugWorkarounds.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/GrShaderCaps.h"
 
 class GrBackendFormat;
 class GrBackendRenderTarget;
diff --git a/src/gpu/GrClip.h b/src/gpu/GrClip.h
index eb7d95b..cc73c64 100644
--- a/src/gpu/GrClip.h
+++ b/src/gpu/GrClip.h
@@ -8,10 +8,10 @@
 #ifndef GrClip_DEFINED
 #define GrClip_DEFINED
 
-#include "GrAppliedClip.h"
-#include "GrRenderTargetContext.h"
-#include "SkRRect.h"
-#include "SkRect.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRect.h"
+#include "src/gpu/GrAppliedClip.h"
+#include "src/gpu/GrRenderTargetContext.h"
 
 class GrContext;
 
diff --git a/src/gpu/GrClipStackClip.cpp b/src/gpu/GrClipStackClip.cpp
index dd31406..321fc36 100644
--- a/src/gpu/GrClipStackClip.cpp
+++ b/src/gpu/GrClipStackClip.cpp
@@ -5,29 +5,29 @@
  * found in the LICENSE file.
  */
 
-#include "GrClipStackClip.h"
-#include "GrAppliedClip.h"
-#include "GrContextPriv.h"
-#include "GrDeferredProxyUploader.h"
-#include "GrDrawingManager.h"
-#include "GrFixedClip.h"
-#include "GrGpuResourcePriv.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContextPriv.h"
-#include "GrSWMaskHelper.h"
-#include "GrShape.h"
-#include "GrStencilAttachment.h"
-#include "GrStyle.h"
-#include "GrTextureProxy.h"
-#include "SkClipOpPriv.h"
-#include "SkMakeUnique.h"
-#include "SkTaskGroup.h"
-#include "SkTo.h"
-#include "SkTraceEvent.h"
-#include "effects/GrConvexPolyEffect.h"
-#include "effects/GrRRectEffect.h"
-#include "effects/GrTextureDomain.h"
+#include "include/private/GrTextureProxy.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkClipOpPriv.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkTaskGroup.h"
+#include "src/core/SkTraceEvent.h"
+#include "src/gpu/GrAppliedClip.h"
+#include "src/gpu/GrClipStackClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrDeferredProxyUploader.h"
+#include "src/gpu/GrDrawingManager.h"
+#include "src/gpu/GrFixedClip.h"
+#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/GrSWMaskHelper.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/GrStencilAttachment.h"
+#include "src/gpu/GrStyle.h"
+#include "src/gpu/effects/GrConvexPolyEffect.h"
+#include "src/gpu/effects/GrRRectEffect.h"
+#include "src/gpu/effects/GrTextureDomain.h"
 
 typedef SkClipStack::Element Element;
 typedef GrReducedClip::InitialState InitialState;
diff --git a/src/gpu/GrClipStackClip.h b/src/gpu/GrClipStackClip.h
index 6f4b2b1..7d16d5e 100644
--- a/src/gpu/GrClipStackClip.h
+++ b/src/gpu/GrClipStackClip.h
@@ -7,9 +7,9 @@
 #ifndef GrClipStackClip_DEFINED
 #define GrClipStackClip_DEFINED
 
-#include "GrClip.h"
-#include "GrReducedClip.h"
-#include "SkClipStack.h"
+#include "src/core/SkClipStack.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrReducedClip.h"
 
 class GrPathRenderer;
 class GrTextureProxy;
diff --git a/src/gpu/GrColorSpaceInfo.cpp b/src/gpu/GrColorSpaceInfo.cpp
index 9edb487..794dfd9 100644
--- a/src/gpu/GrColorSpaceInfo.cpp
+++ b/src/gpu/GrColorSpaceInfo.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "GrColorSpaceInfo.h"
-#include "SkColorSpacePriv.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/gpu/GrColorSpaceInfo.h"
 
 GrColorSpaceInfo::GrColorSpaceInfo(sk_sp<SkColorSpace> colorSpace, GrPixelConfig config)
         : fColorSpace(std::move(colorSpace))
diff --git a/src/gpu/GrColorSpaceInfo.h b/src/gpu/GrColorSpaceInfo.h
index 9dd471b..46d6ba6 100644
--- a/src/gpu/GrColorSpaceInfo.h
+++ b/src/gpu/GrColorSpaceInfo.h
@@ -8,10 +8,10 @@
 #ifndef GrColorSpaceInfo_DEFINED
 #define GrColorSpaceInfo_DEFINED
 
-#include "GrColorSpaceXform.h"
-#include "GrTypes.h"
-#include "SkColorSpace.h"
-#include "SkRefCnt.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/GrTypes.h"
+#include "src/gpu/GrColorSpaceXform.h"
 
 /** Describes the color space properties of a surface context. */
 class GrColorSpaceInfo {
diff --git a/src/gpu/GrColorSpaceXform.cpp b/src/gpu/GrColorSpaceXform.cpp
index 986ac7a..39118a6 100644
--- a/src/gpu/GrColorSpaceXform.cpp
+++ b/src/gpu/GrColorSpaceXform.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "GrColorSpaceXform.h"
-#include "SkColorSpace.h"
-#include "SkColorSpacePriv.h"
-#include "glsl/GrGLSLColorSpaceXformHelper.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
+#include "include/core/SkColorSpace.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/gpu/GrColorSpaceXform.h"
+#include "src/gpu/glsl/GrGLSLColorSpaceXformHelper.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
 
 sk_sp<GrColorSpaceXform> GrColorSpaceXform::Make(SkColorSpace* src, SkAlphaType srcAT,
                                                  SkColorSpace* dst, SkAlphaType dstAT) {
diff --git a/src/gpu/GrColorSpaceXform.h b/src/gpu/GrColorSpaceXform.h
index 7b28164..6abcef1 100644
--- a/src/gpu/GrColorSpaceXform.h
+++ b/src/gpu/GrColorSpaceXform.h
@@ -8,9 +8,9 @@
 #ifndef GrColorSpaceXform_DEFINED
 #define GrColorSpaceXform_DEFINED
 
-#include "GrFragmentProcessor.h"
-#include "SkColorSpaceXformSteps.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "src/core/SkColorSpaceXformSteps.h"
+#include "src/gpu/GrFragmentProcessor.h"
 
 class SkColorSpace;
 
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
index 6ee25d6..ca9e679 100644
--- a/src/gpu/GrContext.cpp
+++ b/src/gpu/GrContext.cpp
@@ -5,31 +5,31 @@
  * found in the LICENSE file.
  */
 
-#include "GrContext.h"
-#include "GrBackendSemaphore.h"
-#include "GrDrawingManager.h"
-#include "GrGpu.h"
-#include "GrMemoryPool.h"
-#include "GrPathRendererChain.h"
-#include "GrProxyProvider.h"
-#include "GrRenderTargetProxy.h"
-#include "GrResourceCache.h"
-#include "GrResourceProvider.h"
-#include "GrSemaphore.h"
-#include "GrSoftwarePathRenderer.h"
-#include "GrTracing.h"
-#include "SkDeferredDisplayList.h"
-#include "SkGr.h"
-#include "SkImageInfoPriv.h"
-#include "SkMakeUnique.h"
-#include "SkSurface_Gpu.h"
-#include "SkTaskGroup.h"
-#include "SkTraceMemoryDump.h"
-#include "effects/generated/GrConfigConversionEffect.h"
-#include "effects/GrSkSLFP.h"
-#include "ccpr/GrCoverageCountingPathRenderer.h"
-#include "text/GrTextBlobCache.h"
-#include "text/GrTextContext.h"
+#include "include/core/SkTraceMemoryDump.h"
+#include "include/gpu/GrBackendSemaphore.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrRenderTargetProxy.h"
+#include "include/private/SkDeferredDisplayList.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkTaskGroup.h"
+#include "src/gpu/GrDrawingManager.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrPathRendererChain.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrResourceCache.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSemaphore.h"
+#include "src/gpu/GrSoftwarePathRenderer.h"
+#include "src/gpu/GrTracing.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/ccpr/GrCoverageCountingPathRenderer.h"
+#include "src/gpu/effects/GrSkSLFP.h"
+#include "src/gpu/effects/generated/GrConfigConversionEffect.h"
+#include "src/gpu/text/GrTextBlobCache.h"
+#include "src/gpu/text/GrTextContext.h"
+#include "src/image/SkSurface_Gpu.h"
 #include <atomic>
 #include <unordered_map>
 
diff --git a/src/gpu/GrContextPriv.cpp b/src/gpu/GrContextPriv.cpp
index 87a4084..c6c6507 100644
--- a/src/gpu/GrContextPriv.cpp
+++ b/src/gpu/GrContextPriv.cpp
@@ -5,24 +5,24 @@
  * found in the LICENSE file.
  */
 
-#include "GrContextPriv.h"
+#include "src/gpu/GrContextPriv.h"
 
-#include "GrClip.h"
-#include "GrContextThreadSafeProxy.h"
-#include "GrContextThreadSafeProxyPriv.h"
-#include "GrDrawingManager.h"
-#include "GrGpu.h"
-#include "GrMemoryPool.h"
-#include "GrRenderTargetContext.h"
-#include "GrSkSLFPFactoryCache.h"
-#include "GrSurfacePriv.h"
-#include "GrTexture.h"
-#include "GrTextureContext.h"
-#include "SkAutoPixmapStorage.h"
-#include "SkImage_Base.h"
-#include "SkImage_Gpu.h"
-#include "SkGr.h"
-#include "text/GrTextBlobCache.h"
+#include "include/gpu/GrContextThreadSafeProxy.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrSkSLFPFactoryCache.h"
+#include "src/core/SkAutoPixmapStorage.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextThreadSafeProxyPriv.h"
+#include "src/gpu/GrDrawingManager.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfacePriv.h"
+#include "src/gpu/GrTextureContext.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/text/GrTextBlobCache.h"
+#include "src/image/SkImage_Base.h"
+#include "src/image/SkImage_Gpu.h"
 
 #define ASSERT_OWNED_PROXY_PRIV(P) \
     SkASSERT(!(P) || !((P)->peekTexture()) || (P)->peekTexture()->getContext() == fContext)
@@ -644,7 +644,7 @@
 
 //////////////////////////////////////////////////////////////////////////////
 #ifdef SK_ENABLE_DUMP_GPU
-#include "SkJSONWriter.h"
+#include "src/utils/SkJSONWriter.h"
 SkString GrContextPriv::dump() const {
     SkDynamicMemoryWStream stream;
     SkJSONWriter writer(&stream, SkJSONWriter::Mode::kPretty);
diff --git a/src/gpu/GrContextPriv.h b/src/gpu/GrContextPriv.h
index 3839aa9..97c76e4 100644
--- a/src/gpu/GrContextPriv.h
+++ b/src/gpu/GrContextPriv.h
@@ -8,9 +8,9 @@
 #ifndef GrContextPriv_DEFINED
 #define GrContextPriv_DEFINED
 
-#include "GrContext.h"
-#include "GrSurfaceContext.h"
-#include "text/GrAtlasManager.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrSurfaceContext.h"
+#include "src/gpu/text/GrAtlasManager.h"
 
 class GrBackendFormat;
 class GrBackendRenderTarget;
diff --git a/src/gpu/GrContextThreadSafeProxy.cpp b/src/gpu/GrContextThreadSafeProxy.cpp
index 826867f..77fb801 100644
--- a/src/gpu/GrContextThreadSafeProxy.cpp
+++ b/src/gpu/GrContextThreadSafeProxy.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "GrContextThreadSafeProxy.h"
-#include "GrContextThreadSafeProxyPriv.h"
+#include "include/gpu/GrContextThreadSafeProxy.h"
+#include "src/gpu/GrContextThreadSafeProxyPriv.h"
 
-#include "GrBaseContextPriv.h"
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrSkSLFPFactoryCache.h"
-#include "SkSurface_Gpu.h"
-#include "SkSurfaceCharacterization.h"
+#include "include/core/SkSurfaceCharacterization.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrSkSLFPFactoryCache.h"
+#include "src/gpu/GrBaseContextPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/image/SkSurface_Gpu.h"
 
 GrContextThreadSafeProxy::GrContextThreadSafeProxy(GrBackendApi backend,
                                                    const GrContextOptions& options,
diff --git a/src/gpu/GrContextThreadSafeProxyPriv.h b/src/gpu/GrContextThreadSafeProxyPriv.h
index 4da021d..bf09305 100644
--- a/src/gpu/GrContextThreadSafeProxyPriv.h
+++ b/src/gpu/GrContextThreadSafeProxyPriv.h
@@ -8,7 +8,7 @@
 #ifndef GrContextThreadSafeProxyPriv_DEFINED
 #define GrContextThreadSafeProxyPriv_DEFINED
 
-#include "GrContextThreadSafeProxy.h"
+#include "include/gpu/GrContextThreadSafeProxy.h"
 
 /**
  * Class that adds methods to GrContextThreadSafeProxy that are only intended for use internal to
diff --git a/src/gpu/GrContext_Base.cpp b/src/gpu/GrContext_Base.cpp
index e3f8988..d462c9c 100644
--- a/src/gpu/GrContext_Base.cpp
+++ b/src/gpu/GrContext_Base.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrContext_Base.h"
+#include "include/private/GrContext_Base.h"
 
-#include "GrBaseContextPriv.h"
-#include "GrCaps.h"
-#include "GrSkSLFPFactoryCache.h"
+#include "include/private/GrSkSLFPFactoryCache.h"
+#include "src/gpu/GrBaseContextPriv.h"
+#include "src/gpu/GrCaps.h"
 
 static int32_t next_id() {
     static std::atomic<int32_t> nextID{1};
diff --git a/src/gpu/GrCoordTransform.h b/src/gpu/GrCoordTransform.h
index aee2253..ff6ed92 100644
--- a/src/gpu/GrCoordTransform.h
+++ b/src/gpu/GrCoordTransform.h
@@ -8,9 +8,9 @@
 #ifndef GrCoordTransform_DEFINED
 #define GrCoordTransform_DEFINED
 
-#include "SkMatrix.h"
-#include "GrSurfaceProxyPriv.h"
-#include "GrTextureProxy.h"
+#include "include/core/SkMatrix.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
 
 class GrTexture;
 
diff --git a/src/gpu/GrCpuBuffer.h b/src/gpu/GrCpuBuffer.h
index 3fab08b..10780fe 100644
--- a/src/gpu/GrCpuBuffer.h
+++ b/src/gpu/GrCpuBuffer.h
@@ -8,8 +8,8 @@
 #ifndef GrCpuBuffer_DEFINED
 #define GrCpuBuffer_DEFINED
 
-#include "GrBuffer.h"
-#include "GrNonAtomicRef.h"
+#include "src/gpu/GrBuffer.h"
+#include "src/gpu/GrNonAtomicRef.h"
 
 class GrCpuBuffer final : public GrNonAtomicRef<GrCpuBuffer>, public GrBuffer {
 public:
diff --git a/src/gpu/GrDDLContext.cpp b/src/gpu/GrDDLContext.cpp
index 3b2d6d0..70e2377 100644
--- a/src/gpu/GrDDLContext.cpp
+++ b/src/gpu/GrDDLContext.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrContext.h"
-#include "GrCaps.h"
-#include "GrContextPriv.h"
-#include "GrContextThreadSafeProxyPriv.h"
-#include "GrSkSLFPFactoryCache.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrSkSLFPFactoryCache.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrContextThreadSafeProxyPriv.h"
 
 /**
  * The DDL Context is the one in effect during DDL Recording. It isn't backed by a GrGPU and
diff --git a/src/gpu/GrDefaultGeoProcFactory.cpp b/src/gpu/GrDefaultGeoProcFactory.cpp
index fdc1214..09a6846 100644
--- a/src/gpu/GrDefaultGeoProcFactory.cpp
+++ b/src/gpu/GrDefaultGeoProcFactory.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "GrDefaultGeoProcFactory.h"
+#include "src/gpu/GrDefaultGeoProcFactory.h"
 
-#include "GrCaps.h"
-#include "SkRefCnt.h"
-#include "glsl/GrGLSLColorSpaceXformHelper.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
-#include "glsl/GrGLSLVarying.h"
-#include "glsl/GrGLSLUniformHandler.h"
-#include "glsl/GrGLSLUtil.h"
+#include "include/core/SkRefCnt.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/glsl/GrGLSLColorSpaceXformHelper.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/glsl/GrGLSLUtil.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 /*
  * The default Geometry Processor simply takes position and multiplies it by the uniform view
diff --git a/src/gpu/GrDefaultGeoProcFactory.h b/src/gpu/GrDefaultGeoProcFactory.h
index b02d556..fb61567 100644
--- a/src/gpu/GrDefaultGeoProcFactory.h
+++ b/src/gpu/GrDefaultGeoProcFactory.h
@@ -8,9 +8,9 @@
 #ifndef GrDefaultGeoProcFactory_DEFINED
 #define GrDefaultGeoProcFactory_DEFINED
 
-#include "GrColorSpaceXform.h"
-#include "GrGeometryProcessor.h"
-#include "GrShaderCaps.h"
+#include "src/gpu/GrColorSpaceXform.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrShaderCaps.h"
 
 /*
  * A factory for creating default Geometry Processors which simply multiply position by the uniform
diff --git a/src/gpu/GrDeferredProxyUploader.h b/src/gpu/GrDeferredProxyUploader.h
index 589fa33..c0047c0 100644
--- a/src/gpu/GrDeferredProxyUploader.h
+++ b/src/gpu/GrDeferredProxyUploader.h
@@ -8,13 +8,13 @@
 #ifndef GrDeferredProxyUploader_DEFINED
 #define GrDeferredProxyUploader_DEFINED
 
-#include "SkAutoPixmapStorage.h"
-#include "SkMakeUnique.h"
-#include "SkRefCnt.h"
-#include "SkSemaphore.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkSemaphore.h"
+#include "src/core/SkAutoPixmapStorage.h"
+#include "src/core/SkMakeUnique.h"
 
-#include "GrOpFlushState.h"
-#include "GrTextureProxyPriv.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrTextureProxyPriv.h"
 
 /**
  * GrDeferredProxyUploader assists with threaded generation of textures. Currently used by both
diff --git a/src/gpu/GrDeferredUpload.h b/src/gpu/GrDeferredUpload.h
index d783631..f38ee7a 100644
--- a/src/gpu/GrDeferredUpload.h
+++ b/src/gpu/GrDeferredUpload.h
@@ -9,8 +9,8 @@
 #define GrDeferredUpload_DEFINED
 
 #include <functional>
-#include "GrTypes.h"
-#include "GrTypesPriv.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/GrTypesPriv.h"
 
 class GrTextureProxy;
 
diff --git a/src/gpu/GrDeinstantiateProxyTracker.cpp b/src/gpu/GrDeinstantiateProxyTracker.cpp
index 06d1e93..0aa4b75 100644
--- a/src/gpu/GrDeinstantiateProxyTracker.cpp
+++ b/src/gpu/GrDeinstantiateProxyTracker.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrDeinstantiateProxyTracker.h"
+#include "src/gpu/GrDeinstantiateProxyTracker.h"
 
-#include "GrSurfaceProxy.h"
-#include "GrSurfaceProxyPriv.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
 
 void GrDeinstantiateProxyTracker::addProxy(GrSurfaceProxy* proxy) {
 #ifdef SK_DEBUG
diff --git a/src/gpu/GrDeinstantiateProxyTracker.h b/src/gpu/GrDeinstantiateProxyTracker.h
index f144fc2..32a8771 100644
--- a/src/gpu/GrDeinstantiateProxyTracker.h
+++ b/src/gpu/GrDeinstantiateProxyTracker.h
@@ -8,8 +8,8 @@
 #ifndef GrDeinstantiateProxyTracker_DEFINED
 #define GrDeinstantiateProxyTracker_DEFINED
 
-#include "GrSurfaceProxy.h"
-#include "SkTArray.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "include/private/SkTArray.h"
 
 class GrResourceCache;
 
diff --git a/src/gpu/GrDistanceFieldGenFromVector.cpp b/src/gpu/GrDistanceFieldGenFromVector.cpp
index e822825..a80d2e5 100644
--- a/src/gpu/GrDistanceFieldGenFromVector.cpp
+++ b/src/gpu/GrDistanceFieldGenFromVector.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "SkDistanceFieldGen.h"
-#include "GrDistanceFieldGenFromVector.h"
+#include "src/core/SkDistanceFieldGen.h"
+#include "src/gpu/GrDistanceFieldGenFromVector.h"
 
-#include "GrConfig.h"
-#include "GrPathUtils.h"
-#include "SkAutoMalloc.h"
-#include "SkGeometry.h"
-#include "SkMatrix.h"
-#include "SkPathOps.h"
-#include "SkPointPriv.h"
-#include "SkRectPriv.h"
+#include "include/core/SkMatrix.h"
+#include "include/gpu/GrConfig.h"
+#include "include/pathops/SkPathOps.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkPointPriv.h"
+#include "src/core/SkRectPriv.h"
+#include "src/gpu/GrPathUtils.h"
 
 /**
  * If a scanline (a row of texel) cross from the kRight_SegSide
diff --git a/src/gpu/GrDistanceFieldGenFromVector.h b/src/gpu/GrDistanceFieldGenFromVector.h
index cadc33a..8e8d1b3 100644
--- a/src/gpu/GrDistanceFieldGenFromVector.h
+++ b/src/gpu/GrDistanceFieldGenFromVector.h
@@ -8,7 +8,7 @@
 #ifndef GrDistanceFieldGenFromVector_DEFINED
 #define GrDistanceFieldGenFromVector_DEFINED
 
-#include "SkPath.h"
+#include "include/core/SkPath.h"
 
 class SkMatrix;
 
diff --git a/src/gpu/GrDrawOpAtlas.cpp b/src/gpu/GrDrawOpAtlas.cpp
index 4f7e246..b3752ca 100644
--- a/src/gpu/GrDrawOpAtlas.cpp
+++ b/src/gpu/GrDrawOpAtlas.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "GrDrawOpAtlas.h"
+#include "src/gpu/GrDrawOpAtlas.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrOnFlushResourceProvider.h"
-#include "GrOpFlushState.h"
-#include "GrRectanizer.h"
-#include "GrProxyProvider.h"
-#include "GrResourceProvider.h"
-#include "GrSurfaceProxyPriv.h"
-#include "GrTexture.h"
-#include "GrTracing.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrOnFlushResourceProvider.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRectanizer.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
+#include "src/gpu/GrTracing.h"
 
 // When proxy allocation is deferred until flush time the proxies acting as atlases require
 // special handling. This is because the usage that can be determined from the ops themselves
diff --git a/src/gpu/GrDrawOpAtlas.h b/src/gpu/GrDrawOpAtlas.h
index 099524f..2f15f41 100644
--- a/src/gpu/GrDrawOpAtlas.h
+++ b/src/gpu/GrDrawOpAtlas.h
@@ -10,13 +10,13 @@
 
 #include <cmath>
 
-#include "SkGlyphRunPainter.h"
-#include "SkIPoint16.h"
-#include "SkSize.h"
-#include "SkTDArray.h"
-#include "SkTInternalLList.h"
+#include "include/core/SkSize.h"
+#include "include/private/SkTDArray.h"
+#include "include/private/SkTInternalLList.h"
+#include "src/core/SkGlyphRunPainter.h"
+#include "src/core/SkIPoint16.h"
 
-#include "ops/GrDrawOp.h"
+#include "src/gpu/ops/GrDrawOp.h"
 
 class GrOnFlushResourceProvider;
 class GrRectanizer;
diff --git a/src/gpu/GrDrawOpTest.cpp b/src/gpu/GrDrawOpTest.cpp
index cebe297..5b93c3f 100644
--- a/src/gpu/GrDrawOpTest.cpp
+++ b/src/gpu/GrDrawOpTest.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "GrDrawOpTest.h"
-#include "GrCaps.h"
-#include "GrContext_Base.h"
-#include "GrBaseContextPriv.h"
-#include "GrUserStencilSettings.h"
-#include "SkRandom.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/GrContext_Base.h"
+#include "include/utils/SkRandom.h"
+#include "src/gpu/GrBaseContextPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrDrawOpTest.h"
+#include "src/gpu/GrUserStencilSettings.h"
 
 #if GR_TEST_UTILS
 
diff --git a/src/gpu/GrDrawOpTest.h b/src/gpu/GrDrawOpTest.h
index ba97ae7..9780278 100644
--- a/src/gpu/GrDrawOpTest.h
+++ b/src/gpu/GrDrawOpTest.h
@@ -8,8 +8,8 @@
 #ifndef GrDrawOpTest_DEFINED
 #define GrDrawOpTest_DEFINED
 
-#include "GrTestUtils.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "src/gpu/GrTestUtils.h"
 
 #if GR_TEST_UTILS
 
diff --git a/src/gpu/GrDrawingManager.cpp b/src/gpu/GrDrawingManager.cpp
index b7d4d31..22d21d3 100644
--- a/src/gpu/GrDrawingManager.cpp
+++ b/src/gpu/GrDrawingManager.cpp
@@ -5,34 +5,34 @@
  * found in the LICENSE file.
  */
 
-#include "GrDrawingManager.h"
+#include "src/gpu/GrDrawingManager.h"
 
-#include "GrBackendSemaphore.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrMemoryPool.h"
-#include "GrOnFlushResourceProvider.h"
-#include "GrOpList.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetProxy.h"
-#include "GrResourceAllocator.h"
-#include "GrResourceProvider.h"
-#include "GrSoftwarePathRenderer.h"
-#include "GrSurfaceProxyPriv.h"
-#include "GrTexture.h"
-#include "GrTextureContext.h"
-#include "GrTextureOpList.h"
-#include "GrTexturePriv.h"
-#include "GrTextureProxy.h"
-#include "GrTextureProxyPriv.h"
-#include "GrTracing.h"
-#include "SkDeferredDisplayList.h"
-#include "SkSurface_Gpu.h"
-#include "SkTTopoSort.h"
-#include "ccpr/GrCoverageCountingPathRenderer.h"
-#include "text/GrTextContext.h"
+#include "include/gpu/GrBackendSemaphore.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrOpList.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrRenderTargetProxy.h"
+#include "include/private/GrTextureProxy.h"
+#include "include/private/SkDeferredDisplayList.h"
+#include "src/core/SkTTopoSort.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOnFlushResourceProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrResourceAllocator.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSoftwarePathRenderer.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
+#include "src/gpu/GrTextureContext.h"
+#include "src/gpu/GrTextureOpList.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/GrTextureProxyPriv.h"
+#include "src/gpu/GrTracing.h"
+#include "src/gpu/ccpr/GrCoverageCountingPathRenderer.h"
+#include "src/gpu/text/GrTextContext.h"
+#include "src/image/SkSurface_Gpu.h"
 
 GrDrawingManager::OpListDAG::OpListDAG(bool sortOpLists) : fSortOpLists(sortOpLists) {}
 
diff --git a/src/gpu/GrDrawingManager.h b/src/gpu/GrDrawingManager.h
index 592e471..b5655ea 100644
--- a/src/gpu/GrDrawingManager.h
+++ b/src/gpu/GrDrawingManager.h
@@ -8,14 +8,14 @@
 #ifndef GrDrawingManager_DEFINED
 #define GrDrawingManager_DEFINED
 
-#include "GrBufferAllocPool.h"
-#include "GrDeferredUpload.h"
-#include "GrPathRenderer.h"
-#include "GrPathRendererChain.h"
-#include "GrResourceCache.h"
-#include "SkSurface.h"
-#include "SkTArray.h"
-#include "text/GrTextContext.h"
+#include "include/core/SkSurface.h"
+#include "include/private/SkTArray.h"
+#include "src/gpu/GrBufferAllocPool.h"
+#include "src/gpu/GrDeferredUpload.h"
+#include "src/gpu/GrPathRenderer.h"
+#include "src/gpu/GrPathRendererChain.h"
+#include "src/gpu/GrResourceCache.h"
+#include "src/gpu/text/GrTextContext.h"
 
 class GrCoverageCountingPathRenderer;
 class GrOnFlushCallbackObject;
diff --git a/src/gpu/GrDriverBugWorkarounds.cpp b/src/gpu/GrDriverBugWorkarounds.cpp
index a1f27a3..e91623c 100644
--- a/src/gpu/GrDriverBugWorkarounds.cpp
+++ b/src/gpu/GrDriverBugWorkarounds.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "GrDriverBugWorkarounds.h"
+#include "include/gpu/GrDriverBugWorkarounds.h"
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 GrDriverBugWorkarounds::GrDriverBugWorkarounds() = default;
 
diff --git a/src/gpu/GrFPArgs.h b/src/gpu/GrFPArgs.h
index 43f2868..720d2fd 100644
--- a/src/gpu/GrFPArgs.h
+++ b/src/gpu/GrFPArgs.h
@@ -8,8 +8,8 @@
 #ifndef GrFPArgs_DEFINED
 #define GrFPArgs_DEFINED
 
-#include "SkFilterQuality.h"
-#include "SkMatrix.h"
+#include "include/core/SkFilterQuality.h"
+#include "include/core/SkMatrix.h"
 
 class GrColorSpaceInfo;
 class GrRecordingContext;
diff --git a/src/gpu/GrFixedClip.cpp b/src/gpu/GrFixedClip.cpp
index 94a89fd..2977d9d 100644
--- a/src/gpu/GrFixedClip.cpp
+++ b/src/gpu/GrFixedClip.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrFixedClip.h"
+#include "src/gpu/GrFixedClip.h"
 
-#include "GrAppliedClip.h"
-#include "GrRenderTargetContext.h"
+#include "src/gpu/GrAppliedClip.h"
+#include "src/gpu/GrRenderTargetContext.h"
 
 bool GrFixedClip::quickContains(const SkRect& rect) const {
     if (fWindowRectsState.enabled()) {
diff --git a/src/gpu/GrFixedClip.h b/src/gpu/GrFixedClip.h
index d44c1e8..087617e 100644
--- a/src/gpu/GrFixedClip.h
+++ b/src/gpu/GrFixedClip.h
@@ -8,9 +8,9 @@
 #ifndef GrFixedClip_DEFINED
 #define GrFixedClip_DEFINED
 
-#include "GrClip.h"
-#include "GrScissorState.h"
-#include "GrWindowRectsState.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrScissorState.h"
+#include "src/gpu/GrWindowRectsState.h"
 
 /**
  * Implements GrHardClip with scissor and window rectangles.
diff --git a/src/gpu/GrFragmentProcessor.cpp b/src/gpu/GrFragmentProcessor.cpp
index 4a4c4cb..7205f08 100644
--- a/src/gpu/GrFragmentProcessor.cpp
+++ b/src/gpu/GrFragmentProcessor.cpp
@@ -5,18 +5,18 @@
 * found in the LICENSE file.
 */
 
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
-#include "GrPipeline.h"
-#include "GrProcessorAnalysis.h"
-#include "effects/GrXfermodeFragmentProcessor.h"
-#include "effects/generated/GrConstColorProcessor.h"
-#include "effects/generated/GrOverrideInputFragmentProcessor.h"
-#include "effects/generated/GrPremulInputFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/GrProcessorAnalysis.h"
+#include "src/gpu/effects/GrXfermodeFragmentProcessor.h"
+#include "src/gpu/effects/generated/GrConstColorProcessor.h"
+#include "src/gpu/effects/generated/GrOverrideInputFragmentProcessor.h"
+#include "src/gpu/effects/generated/GrPremulInputFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 bool GrFragmentProcessor::isEqual(const GrFragmentProcessor& that) const {
     if (this->classID() != that.classID()) {
diff --git a/src/gpu/GrFragmentProcessor.h b/src/gpu/GrFragmentProcessor.h
index 007458b..434d888 100644
--- a/src/gpu/GrFragmentProcessor.h
+++ b/src/gpu/GrFragmentProcessor.h
@@ -8,8 +8,8 @@
 #ifndef GrFragmentProcessor_DEFINED
 #define GrFragmentProcessor_DEFINED
 
-#include "GrProcessor.h"
-#include "GrProxyRef.h"
+#include "include/private/GrProxyRef.h"
+#include "src/gpu/GrProcessor.h"
 
 class GrCoordTransform;
 class GrGLSLFragmentProcessor;
diff --git a/src/gpu/GrGeometryProcessor.h b/src/gpu/GrGeometryProcessor.h
index f0f8a74..6f596a5 100644
--- a/src/gpu/GrGeometryProcessor.h
+++ b/src/gpu/GrGeometryProcessor.h
@@ -8,7 +8,7 @@
 #ifndef GrGeometryProcessor_DEFINED
 #define GrGeometryProcessor_DEFINED
 
-#include "GrPrimitiveProcessor.h"
+#include "src/gpu/GrPrimitiveProcessor.h"
 
 /**
  * A GrGeometryProcessor is a flexible method for rendering a primitive.  The GrGeometryProcessor
diff --git a/src/gpu/GrGlyph.h b/src/gpu/GrGlyph.h
index 45f333d..f4d61e9 100644
--- a/src/gpu/GrGlyph.h
+++ b/src/gpu/GrGlyph.h
@@ -8,13 +8,13 @@
 #ifndef GrGlyph_DEFINED
 #define GrGlyph_DEFINED
 
-#include "GrDrawOpAtlas.h"
-#include "GrRect.h"
-#include "GrTypes.h"
+#include "include/gpu/GrTypes.h"
+#include "src/gpu/GrDrawOpAtlas.h"
+#include "src/gpu/GrRect.h"
 
-#include "SkChecksum.h"
-#include "SkFixed.h"
-#include "SkPath.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkChecksum.h"
+#include "include/private/SkFixed.h"
 
 struct GrGlyph {
     enum MaskStyle {
diff --git a/src/gpu/GrGpu.cpp b/src/gpu/GrGpu.cpp
index 27bf001..811f8d3 100644
--- a/src/gpu/GrGpu.cpp
+++ b/src/gpu/GrGpu.cpp
@@ -6,29 +6,29 @@
  */
 
 
-#include "GrGpu.h"
+#include "src/gpu/GrGpu.h"
 
-#include "GrBackendSemaphore.h"
-#include "GrBackendSurface.h"
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpuResourcePriv.h"
-#include "GrMesh.h"
-#include "GrPathRendering.h"
-#include "GrPipeline.h"
-#include "GrRenderTargetPriv.h"
-#include "GrResourceCache.h"
-#include "GrResourceProvider.h"
-#include "GrSemaphore.h"
-#include "GrStencilAttachment.h"
-#include "GrStencilSettings.h"
-#include "GrSurfacePriv.h"
-#include "GrTexturePriv.h"
-#include "GrTextureProxyPriv.h"
-#include "GrTracing.h"
-#include "SkJSONWriter.h"
-#include "SkMathPriv.h"
+#include "include/gpu/GrBackendSemaphore.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "src/core/SkMathPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/GrMesh.h"
+#include "src/gpu/GrPathRendering.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/GrResourceCache.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSemaphore.h"
+#include "src/gpu/GrStencilAttachment.h"
+#include "src/gpu/GrStencilSettings.h"
+#include "src/gpu/GrSurfacePriv.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/GrTextureProxyPriv.h"
+#include "src/gpu/GrTracing.h"
+#include "src/utils/SkJSONWriter.h"
 
 ////////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/gpu/GrGpu.h b/src/gpu/GrGpu.h
index 3e58908..a64a74e 100644
--- a/src/gpu/GrGpu.h
+++ b/src/gpu/GrGpu.h
@@ -8,18 +8,18 @@
 #ifndef GrGpu_DEFINED
 #define GrGpu_DEFINED
 
-#include "GrCaps.h"
-#include "GrGpuCommandBuffer.h"
-#include "GrProgramDesc.h"
-#include "GrSamplePatternDictionary.h"
-#include "GrSwizzle.h"
-#include "GrAllocator.h"
-#include "GrTextureProducer.h"
-#include "GrTypes.h"
-#include "GrXferProcessor.h"
-#include "SkPath.h"
-#include "SkSurface.h"
-#include "SkTArray.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/SkTArray.h"
+#include "src/gpu/GrAllocator.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
+#include "src/gpu/GrProgramDesc.h"
+#include "src/gpu/GrSamplePatternDictionary.h"
+#include "src/gpu/GrSwizzle.h"
+#include "src/gpu/GrTextureProducer.h"
+#include "src/gpu/GrXferProcessor.h"
 #include <map>
 
 class GrBackendRenderTarget;
diff --git a/src/gpu/GrGpuBuffer.cpp b/src/gpu/GrGpuBuffer.cpp
index 03f351b..64e1167 100644
--- a/src/gpu/GrGpuBuffer.cpp
+++ b/src/gpu/GrGpuBuffer.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "GrGpuBuffer.h"
-#include "GrCaps.h"
-#include "GrGpu.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrGpuBuffer.h"
 
 GrGpuBuffer::GrGpuBuffer(GrGpu* gpu, size_t sizeInBytes, GrGpuBufferType type,
                          GrAccessPattern pattern)
diff --git a/src/gpu/GrGpuBuffer.h b/src/gpu/GrGpuBuffer.h
index e8c0141..7e3561e 100644
--- a/src/gpu/GrGpuBuffer.h
+++ b/src/gpu/GrGpuBuffer.h
@@ -8,8 +8,8 @@
 #ifndef GrGpuBuffer_DEFINED
 #define GrGpuBuffer_DEFINED
 
-#include "GrBuffer.h"
-#include "GrGpuResource.h"
+#include "include/gpu/GrGpuResource.h"
+#include "src/gpu/GrBuffer.h"
 
 class GrGpu;
 
diff --git a/src/gpu/GrGpuCommandBuffer.cpp b/src/gpu/GrGpuCommandBuffer.cpp
index b1215f6..292a39a 100644
--- a/src/gpu/GrGpuCommandBuffer.cpp
+++ b/src/gpu/GrGpuCommandBuffer.cpp
@@ -5,18 +5,18 @@
 * found in the LICENSE file.
 */
 
-#include "GrGpuCommandBuffer.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
 
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrFixedClip.h"
-#include "GrGpu.h"
-#include "GrMesh.h"
-#include "GrPrimitiveProcessor.h"
-#include "GrRenderTarget.h"
-#include "GrRenderTargetPriv.h"
-#include "SkRect.h"
+#include "include/core/SkRect.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrFixedClip.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrMesh.h"
+#include "src/gpu/GrPrimitiveProcessor.h"
+#include "src/gpu/GrRenderTargetPriv.h"
 
 void GrGpuRTCommandBuffer::clear(const GrFixedClip& clip, const SkPMColor4f& color) {
     SkASSERT(fRenderTarget);
diff --git a/src/gpu/GrGpuCommandBuffer.h b/src/gpu/GrGpuCommandBuffer.h
index ca03378..1c4d5f4 100644
--- a/src/gpu/GrGpuCommandBuffer.h
+++ b/src/gpu/GrGpuCommandBuffer.h
@@ -8,9 +8,9 @@
 #ifndef GrGpuCommandBuffer_DEFINED
 #define GrGpuCommandBuffer_DEFINED
 
-#include "GrPipeline.h"
-#include "SkDrawable.h"
-#include "ops/GrDrawOp.h"
+#include "include/core/SkDrawable.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/ops/GrDrawOp.h"
 
 class GrOpFlushState;
 class GrFixedClip;
diff --git a/src/gpu/GrGpuResource.cpp b/src/gpu/GrGpuResource.cpp
index 3d2c197..ffdbf6b 100644
--- a/src/gpu/GrGpuResource.cpp
+++ b/src/gpu/GrGpuResource.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "GrGpuResource.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrResourceCache.h"
-#include "GrGpu.h"
-#include "GrGpuResourcePriv.h"
-#include "SkTraceMemoryDump.h"
+#include "include/core/SkTraceMemoryDump.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrGpuResource.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/GrResourceCache.h"
 #include <atomic>
 
 static inline GrResourceCache* get_resource_cache(GrGpu* gpu) {
diff --git a/src/gpu/GrGpuResourceCacheAccess.h b/src/gpu/GrGpuResourceCacheAccess.h
index 0e1ace03..027ccd8 100644
--- a/src/gpu/GrGpuResourceCacheAccess.h
+++ b/src/gpu/GrGpuResourceCacheAccess.h
@@ -8,8 +8,8 @@
 #ifndef GrGpuResourceCacheAccess_DEFINED
 #define GrGpuResourceCacheAccess_DEFINED
 
-#include "GrGpuResource.h"
-#include "GrGpuResourcePriv.h"
+#include "include/gpu/GrGpuResource.h"
+#include "src/gpu/GrGpuResourcePriv.h"
 
 namespace skiatest {
     class Reporter;
diff --git a/src/gpu/GrGpuResourcePriv.h b/src/gpu/GrGpuResourcePriv.h
index 30f686c..cde8662 100644
--- a/src/gpu/GrGpuResourcePriv.h
+++ b/src/gpu/GrGpuResourcePriv.h
@@ -8,7 +8,7 @@
 #ifndef GrGpuResourcePriv_DEFINED
 #define GrGpuResourcePriv_DEFINED
 
-#include "GrGpuResource.h"
+#include "include/gpu/GrGpuResource.h"
 
 /**
  * This class allows code internal to Skia privileged access to manage the cache keys and budget
diff --git a/src/gpu/GrImageContext.cpp b/src/gpu/GrImageContext.cpp
index 91e81bc..8a66eab 100644
--- a/src/gpu/GrImageContext.cpp
+++ b/src/gpu/GrImageContext.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "GrImageContext.h"
+#include "include/private/GrImageContext.h"
 
-#include "GrCaps.h"
-#include "GrImageContextPriv.h"
-#include "GrProxyProvider.h"
-#include "GrSkSLFPFactoryCache.h"
+#include "include/private/GrSkSLFPFactoryCache.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrImageContextPriv.h"
+#include "src/gpu/GrProxyProvider.h"
 
 #define ASSERT_SINGLE_OWNER \
     SkDEBUGCODE(GrSingleOwner::AutoEnforce debug_SingleOwner(this->singleOwner());)
diff --git a/src/gpu/GrImageContextPriv.h b/src/gpu/GrImageContextPriv.h
index c1fca60..db9313e 100644
--- a/src/gpu/GrImageContextPriv.h
+++ b/src/gpu/GrImageContextPriv.h
@@ -8,7 +8,7 @@
 #ifndef GrImageContextPriv_DEFINED
 #define GrImageContextPriv_DEFINED
 
-#include "GrImageContext.h"
+#include "include/private/GrImageContext.h"
 
 /** Class that exposes methods on GrImageContext that are only intended for use internal to Skia.
     This class is purely a privileged window into GrImageContext. It should never have
diff --git a/src/gpu/GrImageTextureMaker.cpp b/src/gpu/GrImageTextureMaker.cpp
index 0ce1f7b..80b39d0 100644
--- a/src/gpu/GrImageTextureMaker.cpp
+++ b/src/gpu/GrImageTextureMaker.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "GrColorSpaceXform.h"
-#include "GrImageTextureMaker.h"
-#include "SkGr.h"
-#include "SkImage_GpuYUVA.h"
-#include "SkImage_Lazy.h"
-#include "effects/GrYUVtoRGBEffect.h"
+#include "src/gpu/GrColorSpaceXform.h"
+#include "src/gpu/GrImageTextureMaker.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/effects/GrYUVtoRGBEffect.h"
+#include "src/image/SkImage_GpuYUVA.h"
+#include "src/image/SkImage_Lazy.h"
 
 GrImageTextureMaker::GrImageTextureMaker(GrRecordingContext* context, const SkImage* client,
                                          SkImage::CachingHint chint, bool useDecal)
diff --git a/src/gpu/GrImageTextureMaker.h b/src/gpu/GrImageTextureMaker.h
index 4fa5e9b..75facf8 100644
--- a/src/gpu/GrImageTextureMaker.h
+++ b/src/gpu/GrImageTextureMaker.h
@@ -8,8 +8,8 @@
 #ifndef GrImageTextureMaker_DEFINED
 #define GrImageTextureMaker_DEFINED
 
-#include "GrTextureMaker.h"
-#include "SkImage.h"
+#include "include/core/SkImage.h"
+#include "src/gpu/GrTextureMaker.h"
 
 class SkImage_Lazy;
 class SkImage_GpuYUVA;
diff --git a/src/gpu/GrLegacyDirectContext.cpp b/src/gpu/GrLegacyDirectContext.cpp
index 1cf4b64..6fccc6b 100644
--- a/src/gpu/GrLegacyDirectContext.cpp
+++ b/src/gpu/GrLegacyDirectContext.cpp
@@ -6,22 +6,22 @@
  */
 
 
-#include "GrContext.h"
+#include "include/gpu/GrContext.h"
 
-#include "GrContextPriv.h"
-#include "GrContextThreadSafeProxy.h"
-#include "GrContextThreadSafeProxyPriv.h"
-#include "GrGpu.h"
+#include "include/gpu/GrContextThreadSafeProxy.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrContextThreadSafeProxyPriv.h"
+#include "src/gpu/GrGpu.h"
 
-#include "effects/GrSkSLFP.h"
-#include "gl/GrGLGpu.h"
-#include "mock/GrMockGpu.h"
-#include "text/GrStrikeCache.h"
+#include "src/gpu/effects/GrSkSLFP.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/mock/GrMockGpu.h"
+#include "src/gpu/text/GrStrikeCache.h"
 #ifdef SK_METAL
-#include "mtl/GrMtlTrampoline.h"
+#include "src/gpu/mtl/GrMtlTrampoline.h"
 #endif
 #ifdef SK_VULKAN
-#include "vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkGpu.h"
 #endif
 
 #ifdef SK_DISABLE_OPLIST_SORTING
diff --git a/src/gpu/GrMemoryPool.cpp b/src/gpu/GrMemoryPool.cpp
index 1366c4c..8a92a5e 100644
--- a/src/gpu/GrMemoryPool.cpp
+++ b/src/gpu/GrMemoryPool.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "GrMemoryPool.h"
-#include "SkMalloc.h"
-#include "ops/GrOp.h"
+#include "include/private/SkMalloc.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/ops/GrOp.h"
 #ifdef SK_DEBUG
     #include <atomic>
 #endif
diff --git a/src/gpu/GrMemoryPool.h b/src/gpu/GrMemoryPool.h
index 7000739..a442830 100644
--- a/src/gpu/GrMemoryPool.h
+++ b/src/gpu/GrMemoryPool.h
@@ -8,12 +8,12 @@
 #ifndef GrMemoryPool_DEFINED
 #define GrMemoryPool_DEFINED
 
-#include "GrTypes.h"
+#include "include/gpu/GrTypes.h"
 
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
 
 #ifdef SK_DEBUG
-#include "SkTHash.h"
+#include "include/private/SkTHash.h"
 #endif
 
 /**
diff --git a/src/gpu/GrMesh.h b/src/gpu/GrMesh.h
index 5cfc5fb..e968bd4 100644
--- a/src/gpu/GrMesh.h
+++ b/src/gpu/GrMesh.h
@@ -8,9 +8,9 @@
 #ifndef GrMesh_DEFINED
 #define GrMesh_DEFINED
 
-#include "GrBuffer.h"
-#include "GrPendingIOResource.h"
-#include "GrGpuBuffer.h"
+#include "src/gpu/GrBuffer.h"
+#include "src/gpu/GrGpuBuffer.h"
+#include "src/gpu/GrPendingIOResource.h"
 
 class GrPrimitiveProcessor;
 
diff --git a/src/gpu/GrNonAtomicRef.h b/src/gpu/GrNonAtomicRef.h
index d554755..d60c978 100644
--- a/src/gpu/GrNonAtomicRef.h
+++ b/src/gpu/GrNonAtomicRef.h
@@ -8,9 +8,9 @@
 #ifndef GrNonAtomicRef_DEFINED
 #define GrNonAtomicRef_DEFINED
 
-#include "SkNoncopyable.h"
-#include "SkRefCnt.h"
-#include "SkTArray.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkNoncopyable.h"
+#include "include/private/SkTArray.h"
 
 /**
  * A simple non-atomic ref used in the GrBackendApi when we don't want to pay for the overhead of a
diff --git a/src/gpu/GrOnFlushResourceProvider.cpp b/src/gpu/GrOnFlushResourceProvider.cpp
index e2ea013..3f9ba44 100644
--- a/src/gpu/GrOnFlushResourceProvider.cpp
+++ b/src/gpu/GrOnFlushResourceProvider.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "GrOnFlushResourceProvider.h"
+#include "src/gpu/GrOnFlushResourceProvider.h"
 
-#include "GrContextPriv.h"
-#include "GrDrawingManager.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrSurfaceProxy.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrDrawingManager.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
 
 sk_sp<GrRenderTargetContext> GrOnFlushResourceProvider::makeRenderTargetContext(
                                                         sk_sp<GrSurfaceProxy> proxy,
diff --git a/src/gpu/GrOnFlushResourceProvider.h b/src/gpu/GrOnFlushResourceProvider.h
index 5851942..cdc9b7e 100644
--- a/src/gpu/GrOnFlushResourceProvider.h
+++ b/src/gpu/GrOnFlushResourceProvider.h
@@ -8,11 +8,11 @@
 #ifndef GrOnFlushResourceProvider_DEFINED
 #define GrOnFlushResourceProvider_DEFINED
 
-#include "GrDeferredUpload.h"
-#include "GrOpFlushState.h"
-#include "GrResourceProvider.h"
-#include "SkRefCnt.h"
-#include "SkTArray.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkTArray.h"
+#include "src/gpu/GrDeferredUpload.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrResourceProvider.h"
 
 class GrDrawingManager;
 class GrOpList;
diff --git a/src/gpu/GrOpFlushState.cpp b/src/gpu/GrOpFlushState.cpp
index 0b0d9ba..56b090a 100644
--- a/src/gpu/GrOpFlushState.cpp
+++ b/src/gpu/GrOpFlushState.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "GrOpFlushState.h"
+#include "src/gpu/GrOpFlushState.h"
 
-#include "GrContextPriv.h"
-#include "GrDrawOpAtlas.h"
-#include "GrGpu.h"
-#include "GrResourceProvider.h"
-#include "GrTexture.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrDrawOpAtlas.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrResourceProvider.h"
 
 //////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/gpu/GrOpFlushState.h b/src/gpu/GrOpFlushState.h
index 66aa470..e87f0d2 100644
--- a/src/gpu/GrOpFlushState.h
+++ b/src/gpu/GrOpFlushState.h
@@ -9,14 +9,14 @@
 #define GrOpFlushState_DEFINED
 
 #include <utility>
-#include "GrAppliedClip.h"
-#include "GrBufferAllocPool.h"
-#include "GrDeferredUpload.h"
-#include "GrDeinstantiateProxyTracker.h"
-#include "GrRenderTargetProxy.h"
-#include "SkArenaAlloc.h"
-#include "SkArenaAllocList.h"
-#include "ops/GrMeshDrawOp.h"
+#include "include/private/GrRenderTargetProxy.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkArenaAllocList.h"
+#include "src/gpu/GrAppliedClip.h"
+#include "src/gpu/GrBufferAllocPool.h"
+#include "src/gpu/GrDeferredUpload.h"
+#include "src/gpu/GrDeinstantiateProxyTracker.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
 
 class GrGpu;
 class GrGpuCommandBuffer;
diff --git a/src/gpu/GrOpList.cpp b/src/gpu/GrOpList.cpp
index da23613..109289b 100644
--- a/src/gpu/GrOpList.cpp
+++ b/src/gpu/GrOpList.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrOpList.h"
+#include "include/private/GrOpList.h"
 
-#include "GrContext.h"
-#include "GrDeferredProxyUploader.h"
-#include "GrMemoryPool.h"
-#include "GrRenderTargetPriv.h"
-#include "GrSurfaceProxy.h"
-#include "GrTextureProxyPriv.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "src/gpu/GrDeferredProxyUploader.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/GrTextureProxyPriv.h"
 #include <atomic>
 
 uint32_t GrOpList::CreateUniqueID() {
diff --git a/src/gpu/GrPaint.cpp b/src/gpu/GrPaint.cpp
index cb1ab0c..639d436 100644
--- a/src/gpu/GrPaint.cpp
+++ b/src/gpu/GrPaint.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrPaint.h"
-#include "GrXferProcessor.h"
-#include "effects/GrCoverageSetOpXP.h"
-#include "effects/GrPorterDuffXferProcessor.h"
-#include "effects/generated/GrSimpleTextureEffect.h"
+#include "src/gpu/GrPaint.h"
+#include "src/gpu/GrXferProcessor.h"
+#include "src/gpu/effects/GrCoverageSetOpXP.h"
+#include "src/gpu/effects/GrPorterDuffXferProcessor.h"
+#include "src/gpu/effects/generated/GrSimpleTextureEffect.h"
 
 GrPaint::GrPaint(const GrPaint& that)
         : fXPFactory(that.fXPFactory)
diff --git a/src/gpu/GrPaint.h b/src/gpu/GrPaint.h
index 36f38ed..9f92dac 100644
--- a/src/gpu/GrPaint.h
+++ b/src/gpu/GrPaint.h
@@ -10,12 +10,12 @@
 #ifndef GrPaint_DEFINED
 #define GrPaint_DEFINED
 
-#include "GrColor.h"
-#include "GrFragmentProcessor.h"
-#include "SkBlendMode.h"
-#include "SkRefCnt.h"
-#include "SkRegion.h"
-#include "SkTLazy.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkRegion.h"
+#include "include/private/GrColor.h"
+#include "src/core/SkTLazy.h"
+#include "src/gpu/GrFragmentProcessor.h"
 
 class GrTextureProxy;
 class GrXPFactory;
diff --git a/src/gpu/GrPath.cpp b/src/gpu/GrPath.cpp
index c0c5643..f0f2214 100644
--- a/src/gpu/GrPath.cpp
+++ b/src/gpu/GrPath.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "GrPath.h"
-#include "GrShape.h"
+#include "src/gpu/GrPath.h"
+#include "src/gpu/GrShape.h"
 
 static inline void write_style_key(uint32_t* key, const GrStyle& style)  {
     // Pass 1 for the scale since the GPU will apply the style not GrStyle::applyToPath().
diff --git a/src/gpu/GrPath.h b/src/gpu/GrPath.h
index cf4a11d..6b43af5 100644
--- a/src/gpu/GrPath.h
+++ b/src/gpu/GrPath.h
@@ -8,11 +8,11 @@
 #ifndef GrPath_DEFINED
 #define GrPath_DEFINED
 
-#include "GrGpuResource.h"
-#include "GrPathRendering.h"
-#include "GrStyle.h"
-#include "SkPath.h"
-#include "SkRect.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRect.h"
+#include "include/gpu/GrGpuResource.h"
+#include "src/gpu/GrPathRendering.h"
+#include "src/gpu/GrStyle.h"
 
 class GrShape;
 
diff --git a/src/gpu/GrPathProcessor.cpp b/src/gpu/GrPathProcessor.cpp
index 4be92d8..7e36968 100644
--- a/src/gpu/GrPathProcessor.cpp
+++ b/src/gpu/GrPathProcessor.cpp
@@ -5,16 +5,16 @@
 * found in the LICENSE file.
 */
 
-#include "GrPathProcessor.h"
+#include "src/gpu/GrPathProcessor.h"
 
-#include "GrShaderCaps.h"
-#include "SkTo.h"
-#include "gl/GrGLGpu.h"
-#include "gl/GrGLVaryingHandler.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLPrimitiveProcessor.h"
-#include "glsl/GrGLSLUniformHandler.h"
-#include "glsl/GrGLSLVarying.h"
+#include "include/private/SkTo.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLVaryingHandler.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLPrimitiveProcessor.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
 
 class GrGLPathProcessor : public GrGLSLPrimitiveProcessor {
 public:
diff --git a/src/gpu/GrPathProcessor.h b/src/gpu/GrPathProcessor.h
index accdb7d..aee919f 100644
--- a/src/gpu/GrPathProcessor.h
+++ b/src/gpu/GrPathProcessor.h
@@ -8,7 +8,7 @@
 #ifndef GrPathProcessor_DEFINED
 #define GrPathProcessor_DEFINED
 
-#include "GrPrimitiveProcessor.h"
+#include "src/gpu/GrPrimitiveProcessor.h"
 
 /*
  * The path equivalent of the GP.  For now this just manages color. In the long term we plan on
diff --git a/src/gpu/GrPathRenderer.cpp b/src/gpu/GrPathRenderer.cpp
index 1595207..fc3716f 100644
--- a/src/gpu/GrPathRenderer.cpp
+++ b/src/gpu/GrPathRenderer.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrPathRenderer.h"
-#include "GrCaps.h"
-#include "GrPaint.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrShape.h"
-#include "GrUserStencilSettings.h"
-#include "SkDrawProcs.h"
+#include "src/core/SkDrawProcs.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrPaint.h"
+#include "src/gpu/GrPathRenderer.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/GrUserStencilSettings.h"
 
 #ifdef SK_DEBUG
 void GrPathRenderer::StencilPathArgs::validate() const {
diff --git a/src/gpu/GrPathRenderer.h b/src/gpu/GrPathRenderer.h
index aac401e..bba03d3 100644
--- a/src/gpu/GrPathRenderer.h
+++ b/src/gpu/GrPathRenderer.h
@@ -8,9 +8,9 @@
 #ifndef GrPathRenderer_DEFINED
 #define GrPathRenderer_DEFINED
 
-#include "GrTypesPriv.h"
-#include "SkTArray.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/GrTypesPriv.h"
+#include "include/private/SkTArray.h"
 
 class GrCaps;
 class GrClip;
diff --git a/src/gpu/GrPathRendererChain.cpp b/src/gpu/GrPathRendererChain.cpp
index 93f3f11..6b60eb9 100644
--- a/src/gpu/GrPathRendererChain.cpp
+++ b/src/gpu/GrPathRendererChain.cpp
@@ -6,24 +6,24 @@
  */
 
 
-#include "GrPathRendererChain.h"
+#include "src/gpu/GrPathRendererChain.h"
 
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrShaderCaps.h"
-#include "ccpr/GrCoverageCountingPathRenderer.h"
-#include "ops/GrAAConvexPathRenderer.h"
-#include "ops/GrAAHairLinePathRenderer.h"
-#include "ops/GrAALinearizingConvexPathRenderer.h"
-#include "ops/GrSmallPathRenderer.h"
-#include "ops/GrDashLinePathRenderer.h"
-#include "ops/GrDefaultPathRenderer.h"
-#include "ops/GrStencilAndCoverPathRenderer.h"
-#include "ops/GrTessellatingPathRenderer.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/ccpr/GrCoverageCountingPathRenderer.h"
+#include "src/gpu/ops/GrAAConvexPathRenderer.h"
+#include "src/gpu/ops/GrAAHairLinePathRenderer.h"
+#include "src/gpu/ops/GrAALinearizingConvexPathRenderer.h"
+#include "src/gpu/ops/GrDashLinePathRenderer.h"
+#include "src/gpu/ops/GrDefaultPathRenderer.h"
+#include "src/gpu/ops/GrSmallPathRenderer.h"
+#include "src/gpu/ops/GrStencilAndCoverPathRenderer.h"
+#include "src/gpu/ops/GrTessellatingPathRenderer.h"
 
 GrPathRendererChain::GrPathRendererChain(GrRecordingContext* context, const Options& options) {
     const GrCaps& caps = *context->priv().caps();
diff --git a/src/gpu/GrPathRendererChain.h b/src/gpu/GrPathRendererChain.h
index 3542ec4..3bd955c 100644
--- a/src/gpu/GrPathRendererChain.h
+++ b/src/gpu/GrPathRendererChain.h
@@ -8,12 +8,12 @@
 #ifndef GrPathRendererChain_DEFINED
 #define GrPathRendererChain_DEFINED
 
-#include "GrPathRenderer.h"
+#include "src/gpu/GrPathRenderer.h"
 
-#include "GrTypesPriv.h"
-#include "SkNoncopyable.h"
-#include "SkTypes.h"
-#include "SkTArray.h"
+#include "include/core/SkTypes.h"
+#include "include/private/GrTypesPriv.h"
+#include "include/private/SkNoncopyable.h"
+#include "include/private/SkTArray.h"
 
 class GrContext;
 class GrCoverageCountingPathRenderer;
diff --git a/src/gpu/GrPathRendering.cpp b/src/gpu/GrPathRendering.cpp
index 0156072..be59199 100644
--- a/src/gpu/GrPathRendering.cpp
+++ b/src/gpu/GrPathRendering.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrGpu.h"
-#include "GrPathRendering.h"
-#include "GrRenderTarget.h"
-#include "SkDescriptor.h"
-#include "SkScalerContext.h"
-#include "SkGlyph.h"
-#include "SkMatrix.h"
-#include "SkTypeface.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkTypeface.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "src/core/SkDescriptor.h"
+#include "src/core/SkGlyph.h"
+#include "src/core/SkScalerContext.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrPathRendering.h"
 
 const GrUserStencilSettings& GrPathRendering::GetStencilPassSettings(FillType fill) {
     switch (fill) {
diff --git a/src/gpu/GrPathRendering.h b/src/gpu/GrPathRendering.h
index aba4110..11f1254 100644
--- a/src/gpu/GrPathRendering.h
+++ b/src/gpu/GrPathRendering.h
@@ -8,8 +8,8 @@
 #ifndef GrPathRendering_DEFINED
 #define GrPathRendering_DEFINED
 
-#include "SkPath.h"
-#include "GrPipeline.h"
+#include "include/core/SkPath.h"
+#include "src/gpu/GrPipeline.h"
 
 class GrGpu;
 class GrPath;
diff --git a/src/gpu/GrPathRendering_none.cpp b/src/gpu/GrPathRendering_none.cpp
index 542ebdc..c526a23 100644
--- a/src/gpu/GrPathRendering_none.cpp
+++ b/src/gpu/GrPathRendering_none.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "GrCaps.h"
-#include "GrGpu.h"
-#include "GrPath.h"
-#include "GrPathRenderer.h"
-#include "GrPathRendering.h"
-#include "GrResourceProvider.h"
-#include "SkTypes.h"
-#include "gl/GrGLGpu.h"
-#include "gl/GrGLPathRendering.h"
-#include "ops/GrStencilAndCoverPathRenderer.h"
-#include "ops/GrStencilPathOp.h"
+#include "include/core/SkTypes.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrPath.h"
+#include "src/gpu/GrPathRenderer.h"
+#include "src/gpu/GrPathRendering.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLPathRendering.h"
+#include "src/gpu/ops/GrStencilAndCoverPathRenderer.h"
+#include "src/gpu/ops/GrStencilPathOp.h"
 
 class GrRecordingContext;
 
diff --git a/src/gpu/GrPathUtils.cpp b/src/gpu/GrPathUtils.cpp
index a7985ed..743752c 100644
--- a/src/gpu/GrPathUtils.cpp
+++ b/src/gpu/GrPathUtils.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrPathUtils.h"
+#include "src/gpu/GrPathUtils.h"
 
-#include "GrTypes.h"
-#include "SkMathPriv.h"
-#include "SkPointPriv.h"
+#include "include/gpu/GrTypes.h"
+#include "src/core/SkMathPriv.h"
+#include "src/core/SkPointPriv.h"
 
 static const SkScalar gMinCurveTol = 0.0001f;
 
diff --git a/src/gpu/GrPathUtils.h b/src/gpu/GrPathUtils.h
index f358dfc..f44f2c0 100644
--- a/src/gpu/GrPathUtils.h
+++ b/src/gpu/GrPathUtils.h
@@ -8,10 +8,10 @@
 #ifndef GrPathUtils_DEFINED
 #define GrPathUtils_DEFINED
 
-#include "SkGeometry.h"
-#include "SkRect.h"
-#include "SkPathPriv.h"
-#include "SkTArray.h"
+#include "include/core/SkRect.h"
+#include "include/private/SkTArray.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkPathPriv.h"
 
 class SkMatrix;
 
diff --git a/src/gpu/GrPendingIOResource.h b/src/gpu/GrPendingIOResource.h
index e80429a..716abcf 100644
--- a/src/gpu/GrPendingIOResource.h
+++ b/src/gpu/GrPendingIOResource.h
@@ -8,9 +8,9 @@
 #ifndef GrPendingIOResource_DEFINED
 #define GrPendingIOResource_DEFINED
 
-#include "GrGpuResource.h"
-#include "SkNoncopyable.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/GrGpuResource.h"
+#include "include/private/SkNoncopyable.h"
 
 /**
  * Helper for owning a pending read, write, read-write on a GrGpuResource. It never owns a regular
diff --git a/src/gpu/GrPersistentCacheUtils.h b/src/gpu/GrPersistentCacheUtils.h
index a58ed79..220d99f 100644
--- a/src/gpu/GrPersistentCacheUtils.h
+++ b/src/gpu/GrPersistentCacheUtils.h
@@ -8,12 +8,12 @@
 #ifndef GrPersistentCacheEntry_DEFINED
 #define GrPersistentCacheEntry_DEFINED
 
-#include "GrTypesPriv.h"
-#include "SkData.h"
-#include "SkReader32.h"
-#include "ir/SkSLProgram.h"
-#include "SkSLString.h"
-#include "SkWriter32.h"
+#include "include/core/SkData.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/core/SkReader32.h"
+#include "src/core/SkWriter32.h"
+#include "src/sksl/SkSLString.h"
+#include "src/sksl/ir/SkSLProgram.h"
 
 // The GrPersistentCache stores opaque blobs, as far as clients are concerned. It's helpful to
 // inspect certain kinds of cached data within our tools, so for those cases (GLSL, SPIR-V), we
diff --git a/src/gpu/GrPipeline.cpp b/src/gpu/GrPipeline.cpp
index 99ad78d..895c223 100644
--- a/src/gpu/GrPipeline.cpp
+++ b/src/gpu/GrPipeline.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "GrPipeline.h"
+#include "src/gpu/GrPipeline.h"
 
-#include "GrAppliedClip.h"
-#include "GrCaps.h"
-#include "GrGpu.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetOpList.h"
-#include "GrXferProcessor.h"
+#include "src/gpu/GrAppliedClip.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetOpList.h"
+#include "src/gpu/GrXferProcessor.h"
 
-#include "ops/GrOp.h"
+#include "src/gpu/ops/GrOp.h"
 
 GrPipeline::GrPipeline(const InitArgs& args,
                        GrProcessorSet&& processors,
diff --git a/src/gpu/GrPipeline.h b/src/gpu/GrPipeline.h
index 39dc0c3..6670e56 100644
--- a/src/gpu/GrPipeline.h
+++ b/src/gpu/GrPipeline.h
@@ -8,22 +8,22 @@
 #ifndef GrPipeline_DEFINED
 #define GrPipeline_DEFINED
 
-#include "GrColor.h"
-#include "GrFragmentProcessor.h"
-#include "GrNonAtomicRef.h"
-#include "GrPendingIOResource.h"
-#include "GrProcessorSet.h"
-#include "GrProgramDesc.h"
-#include "GrRect.h"
-#include "GrScissorState.h"
-#include "GrUserStencilSettings.h"
-#include "GrWindowRectsState.h"
-#include "SkMatrix.h"
-#include "SkRefCnt.h"
-#include "effects/GrCoverageSetOpXP.h"
-#include "effects/GrDisableColorXP.h"
-#include "effects/GrPorterDuffXferProcessor.h"
-#include "effects/generated/GrSimpleTextureEffect.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/GrColor.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/GrNonAtomicRef.h"
+#include "src/gpu/GrPendingIOResource.h"
+#include "src/gpu/GrProcessorSet.h"
+#include "src/gpu/GrProgramDesc.h"
+#include "src/gpu/GrRect.h"
+#include "src/gpu/GrScissorState.h"
+#include "src/gpu/GrUserStencilSettings.h"
+#include "src/gpu/GrWindowRectsState.h"
+#include "src/gpu/effects/GrCoverageSetOpXP.h"
+#include "src/gpu/effects/GrDisableColorXP.h"
+#include "src/gpu/effects/GrPorterDuffXferProcessor.h"
+#include "src/gpu/effects/generated/GrSimpleTextureEffect.h"
 
 class GrAppliedClip;
 class GrOp;
diff --git a/src/gpu/GrPrimitiveProcessor.cpp b/src/gpu/GrPrimitiveProcessor.cpp
index 672056c..2060f3a 100644
--- a/src/gpu/GrPrimitiveProcessor.cpp
+++ b/src/gpu/GrPrimitiveProcessor.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "GrPrimitiveProcessor.h"
+#include "src/gpu/GrPrimitiveProcessor.h"
 
-#include "GrCoordTransform.h"
+#include "src/gpu/GrCoordTransform.h"
 
 /**
  * We specialize the vertex code for each of these matrix types.
diff --git a/src/gpu/GrPrimitiveProcessor.h b/src/gpu/GrPrimitiveProcessor.h
index b9a1fe3..cf19f10 100644
--- a/src/gpu/GrPrimitiveProcessor.h
+++ b/src/gpu/GrPrimitiveProcessor.h
@@ -8,11 +8,11 @@
 #ifndef GrPrimitiveProcessor_DEFINED
 #define GrPrimitiveProcessor_DEFINED
 
-#include "GrColor.h"
-#include "GrNonAtomicRef.h"
-#include "GrProcessor.h"
-#include "GrProxyRef.h"
-#include "GrShaderVar.h"
+#include "include/private/GrColor.h"
+#include "include/private/GrProxyRef.h"
+#include "src/gpu/GrNonAtomicRef.h"
+#include "src/gpu/GrProcessor.h"
+#include "src/gpu/GrShaderVar.h"
 
 class GrCoordTransform;
 
diff --git a/src/gpu/GrProcessor.cpp b/src/gpu/GrProcessor.cpp
index 32be076..34370de 100644
--- a/src/gpu/GrProcessor.cpp
+++ b/src/gpu/GrProcessor.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "GrProcessor.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGeometryProcessor.h"
-#include "GrMemoryPool.h"
-#include "GrSamplerState.h"
-#include "GrTextureProxy.h"
-#include "GrXferProcessor.h"
-#include "SkSpinlock.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrSamplerState.h"
+#include "include/private/GrTextureProxy.h"
+#include "include/private/SkSpinlock.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrProcessor.h"
+#include "src/gpu/GrXferProcessor.h"
 
 #if GR_TEST_UTILS
 
diff --git a/src/gpu/GrProcessor.h b/src/gpu/GrProcessor.h
index 3c3a9ad..ef245f8 100644
--- a/src/gpu/GrProcessor.h
+++ b/src/gpu/GrProcessor.h
@@ -8,15 +8,15 @@
 #ifndef GrProcessor_DEFINED
 #define GrProcessor_DEFINED
 
-#include "GrColor.h"
-#include "GrGpuBuffer.h"
-#include "GrProcessorUnitTest.h"
-#include "GrSamplerState.h"
-#include "GrShaderVar.h"
-#include "GrSurfaceProxyPriv.h"
-#include "GrTextureProxy.h"
-#include "SkMath.h"
-#include "SkString.h"
+#include "include/core/SkMath.h"
+#include "include/core/SkString.h"
+#include "include/gpu/GrSamplerState.h"
+#include "include/private/GrColor.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrGpuBuffer.h"
+#include "src/gpu/GrProcessorUnitTest.h"
+#include "src/gpu/GrShaderVar.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
 
 class GrContext;
 class GrResourceProvider;
diff --git a/src/gpu/GrProcessorAnalysis.cpp b/src/gpu/GrProcessorAnalysis.cpp
index a22506f..1f98300 100644
--- a/src/gpu/GrProcessorAnalysis.cpp
+++ b/src/gpu/GrProcessorAnalysis.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "GrProcessorAnalysis.h"
-#include "GrGeometryProcessor.h"
-#include "ops/GrDrawOp.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrProcessorAnalysis.h"
+#include "src/gpu/ops/GrDrawOp.h"
 
 GrColorFragmentProcessorAnalysis::GrColorFragmentProcessorAnalysis(
         const GrProcessorAnalysisColor& input,
diff --git a/src/gpu/GrProcessorAnalysis.h b/src/gpu/GrProcessorAnalysis.h
index 633c258..5f0f22e 100644
--- a/src/gpu/GrProcessorAnalysis.h
+++ b/src/gpu/GrProcessorAnalysis.h
@@ -8,7 +8,7 @@
 #ifndef GrProcessorAnalysis_DEFINED
 #define GrProcessorAnalysis_DEFINED
 
-#include "SkColorData.h"
+#include "include/private/SkColorData.h"
 
 class GrDrawOp;
 class GrFragmentProcessor;
diff --git a/src/gpu/GrProcessorSet.cpp b/src/gpu/GrProcessorSet.cpp
index 3a1458f..4720f75 100644
--- a/src/gpu/GrProcessorSet.cpp
+++ b/src/gpu/GrProcessorSet.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "GrProcessorSet.h"
-#include "GrAppliedClip.h"
-#include "GrCaps.h"
-#include "GrUserStencilSettings.h"
-#include "GrXferProcessor.h"
-#include "SkBlendModePriv.h"
-#include "effects/GrPorterDuffXferProcessor.h"
+#include "src/core/SkBlendModePriv.h"
+#include "src/gpu/GrAppliedClip.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrProcessorSet.h"
+#include "src/gpu/GrUserStencilSettings.h"
+#include "src/gpu/GrXferProcessor.h"
+#include "src/gpu/effects/GrPorterDuffXferProcessor.h"
 
 const GrProcessorSet& GrProcessorSet::EmptySet() {
     static GrProcessorSet gEmpty(GrProcessorSet::Empty::kEmpty);
diff --git a/src/gpu/GrProcessorSet.h b/src/gpu/GrProcessorSet.h
index ec550ee..6ac464e 100644
--- a/src/gpu/GrProcessorSet.h
+++ b/src/gpu/GrProcessorSet.h
@@ -8,11 +8,11 @@
 #ifndef GrProcessorSet_DEFINED
 #define GrProcessorSet_DEFINED
 
-#include "GrFragmentProcessor.h"
-#include "GrPaint.h"
-#include "GrProcessorAnalysis.h"
-#include "SkTemplates.h"
-#include "GrXferProcessor.h"
+#include "include/private/SkTemplates.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/GrPaint.h"
+#include "src/gpu/GrProcessorAnalysis.h"
+#include "src/gpu/GrXferProcessor.h"
 
 struct GrUserStencilSettings;
 class GrAppliedClip;
diff --git a/src/gpu/GrProcessorUnitTest.cpp b/src/gpu/GrProcessorUnitTest.cpp
index 7e8d713..117c549 100644
--- a/src/gpu/GrProcessorUnitTest.cpp
+++ b/src/gpu/GrProcessorUnitTest.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "GrProcessorUnitTest.h"
-#include "GrFragmentProcessor.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/GrProcessorUnitTest.h"
 
 #if GR_TEST_UTILS
 
diff --git a/src/gpu/GrProcessorUnitTest.h b/src/gpu/GrProcessorUnitTest.h
index 731080e..2a763b7 100644
--- a/src/gpu/GrProcessorUnitTest.h
+++ b/src/gpu/GrProcessorUnitTest.h
@@ -8,13 +8,13 @@
 #ifndef GrProcessorUnitTest_DEFINED
 #define GrProcessorUnitTest_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if GR_TEST_UTILS
 
-#include "../private/GrTextureProxy.h"
-#include "../private/SkTArray.h"
-#include "GrTestUtils.h"
+#include "include/private/GrTextureProxy.h"
+#include "include/private/SkTArray.h"
+#include "src/gpu/GrTestUtils.h"
 
 class SkMatrix;
 class GrCaps;
diff --git a/src/gpu/GrProgramDesc.cpp b/src/gpu/GrProgramDesc.cpp
index 6709dc4..344a2a5 100644
--- a/src/gpu/GrProgramDesc.cpp
+++ b/src/gpu/GrProgramDesc.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "GrProgramDesc.h"
+#include "src/gpu/GrProgramDesc.h"
 
-#include "GrPipeline.h"
-#include "GrPrimitiveProcessor.h"
-#include "GrProcessor.h"
-#include "GrRenderTargetPriv.h"
-#include "GrShaderCaps.h"
-#include "GrTexturePriv.h"
-#include "SkChecksum.h"
-#include "SkTo.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
+#include "include/private/SkChecksum.h"
+#include "include/private/SkTo.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/GrPrimitiveProcessor.h"
+#include "src/gpu/GrProcessor.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
 
 enum {
     kSamplerOrImageTypeKeyBits = 4
diff --git a/src/gpu/GrProgramDesc.h b/src/gpu/GrProgramDesc.h
index af5ce80..b320ebb 100644
--- a/src/gpu/GrProgramDesc.h
+++ b/src/gpu/GrProgramDesc.h
@@ -8,12 +8,12 @@
 #ifndef GrProgramDesc_DEFINED
 #define GrProgramDesc_DEFINED
 
-#include "GrColor.h"
-#include "GrTypesPriv.h"
-#include "SkOpts.h"
-#include "SkTArray.h"
-#include "SkTo.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
+#include "include/private/GrColor.h"
+#include "include/private/GrTypesPriv.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkOpts.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
 
 class GrShaderCaps;
 class GrPipeline;
diff --git a/src/gpu/GrProxyProvider.cpp b/src/gpu/GrProxyProvider.cpp
index ee8d0a1..7d641be 100644
--- a/src/gpu/GrProxyProvider.cpp
+++ b/src/gpu/GrProxyProvider.cpp
@@ -5,31 +5,31 @@
  * found in the LICENSE file.
  */
 
-#include "GrProxyProvider.h"
+#include "src/gpu/GrProxyProvider.h"
 
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrImageContext.h"
-#include "GrImageContextPriv.h"
-#include "GrRenderTarget.h"
-#include "GrResourceKey.h"
-#include "GrResourceProvider.h"
-#include "GrSurfaceProxy.h"
-#include "GrSurfaceProxyPriv.h"
-#include "GrTexture.h"
-#include "GrTextureProxyCacheAccess.h"
-#include "GrTextureRenderTargetProxy.h"
-#include "../private/GrSingleOwner.h"
-#include "SkAutoPixmapStorage.h"
-#include "SkBitmap.h"
-#include "SkGr.h"
-#include "SkImage.h"
-#include "SkImage_Base.h"
-#include "SkImageInfoPriv.h"
-#include "SkImagePriv.h"
-#include "SkMipMap.h"
-#include "SkTraceEvent.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkImage.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrImageContext.h"
+#include "include/private/GrResourceKey.h"
+#include "include/private/GrSingleOwner.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "src/core/SkAutoPixmapStorage.h"
+#include "src/core/SkImagePriv.h"
+#include "src/core/SkMipMap.h"
+#include "src/core/SkTraceEvent.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrImageContextPriv.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
+#include "src/gpu/GrTextureProxyCacheAccess.h"
+#include "src/gpu/GrTextureRenderTargetProxy.h"
+#include "src/gpu/SkGr.h"
+#include "src/image/SkImage_Base.h"
 
 #define ASSERT_SINGLE_OWNER \
     SkDEBUGCODE(GrSingleOwner::AutoEnforce debug_SingleOwner(fImageContext->priv().singleOwner());)
diff --git a/src/gpu/GrProxyProvider.h b/src/gpu/GrProxyProvider.h
index 969b674..bb0f229 100644
--- a/src/gpu/GrProxyProvider.h
+++ b/src/gpu/GrProxyProvider.h
@@ -8,10 +8,10 @@
 #ifndef GrProxyProvider_DEFINED
 #define GrProxyProvider_DEFINED
 
-#include "GrResourceKey.h"
-#include "GrTextureProxy.h"
-#include "GrTypes.h"
-#include "SkTDynamicHash.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/GrResourceKey.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/core/SkTDynamicHash.h"
 
 class GrImageContext;
 class GrBackendRenderTarget;
diff --git a/src/gpu/GrQuad.cpp b/src/gpu/GrQuad.cpp
index b42e36f..ba1d600 100644
--- a/src/gpu/GrQuad.cpp
+++ b/src/gpu/GrQuad.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "GrQuad.h"
+#include "src/gpu/GrQuad.h"
 
-#include "GrTypesPriv.h"
+#include "include/private/GrTypesPriv.h"
 
 static bool aa_affects_rect(float ql, float qt, float qr, float qb) {
     return !SkScalarIsInt(ql) || !SkScalarIsInt(qr) || !SkScalarIsInt(qt) || !SkScalarIsInt(qb);
diff --git a/src/gpu/GrQuad.h b/src/gpu/GrQuad.h
index f0fc1fd..4771b7a 100644
--- a/src/gpu/GrQuad.h
+++ b/src/gpu/GrQuad.h
@@ -8,11 +8,11 @@
 #ifndef GrQuad_DEFINED
 #define GrQuad_DEFINED
 
-#include "SkMatrix.h"
-#include "SkNx.h"
-#include "SkPoint.h"
-#include "SkPoint3.h"
-#include "SkTArray.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkPoint3.h"
+#include "include/private/SkNx.h"
+#include "include/private/SkTArray.h"
 
 enum class GrAAType : unsigned;
 enum class GrQuadAAFlags;
diff --git a/src/gpu/GrRecordingContext.cpp b/src/gpu/GrRecordingContext.cpp
index 7b1a1c0..04b863e 100644
--- a/src/gpu/GrRecordingContext.cpp
+++ b/src/gpu/GrRecordingContext.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "GrRecordingContext.h"
+#include "include/private/GrRecordingContext.h"
 
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrDrawingManager.h"
-#include "GrMemoryPool.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrSkSLFPFactoryCache.h"
-#include "GrTextureContext.h"
-#include "SkGr.h"
-#include "text/GrTextBlobCache.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrSkSLFPFactoryCache.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrDrawingManager.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrTextureContext.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/text/GrTextBlobCache.h"
 
 #define ASSERT_SINGLE_OWNER_PRIV \
     SkDEBUGCODE(GrSingleOwner::AutoEnforce debug_SingleOwner(this->singleOwner());)
diff --git a/src/gpu/GrRecordingContextPriv.h b/src/gpu/GrRecordingContextPriv.h
index a7977ce..0b9a3f9 100644
--- a/src/gpu/GrRecordingContextPriv.h
+++ b/src/gpu/GrRecordingContextPriv.h
@@ -8,7 +8,7 @@
 #ifndef GrRecordingContextPriv_DEFINED
 #define GrRecordingContextPriv_DEFINED
 
-#include "GrRecordingContext.h"
+#include "include/private/GrRecordingContext.h"
 
 /** Class that exposes methods to GrRecordingContext that are only intended for use internal to
     Skia. This class is purely a privileged window into GrRecordingContext. It should never have
diff --git a/src/gpu/GrRect.h b/src/gpu/GrRect.h
index aa00534..064d539 100644
--- a/src/gpu/GrRect.h
+++ b/src/gpu/GrRect.h
@@ -8,9 +8,9 @@
 #ifndef GrRect_DEFINED
 #define GrRect_DEFINED
 
-#include "SkTo.h"
-#include "SkTypes.h"
-#include "SkRect.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTo.h"
 
 struct GrIRect16 {
     int16_t fLeft, fTop, fRight, fBottom;
diff --git a/src/gpu/GrRectanizer.h b/src/gpu/GrRectanizer.h
index dc697c4..2e55896 100644
--- a/src/gpu/GrRectanizer.h
+++ b/src/gpu/GrRectanizer.h
@@ -8,7 +8,7 @@
 #ifndef GrRectanizer_DEFINED
 #define GrRectanizer_DEFINED
 
-#include "GrTypes.h"
+#include "include/gpu/GrTypes.h"
 
 struct SkIPoint16;
 
diff --git a/src/gpu/GrRectanizer_pow2.cpp b/src/gpu/GrRectanizer_pow2.cpp
index bb41d71..1d0328a 100644
--- a/src/gpu/GrRectanizer_pow2.cpp
+++ b/src/gpu/GrRectanizer_pow2.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "GrRectanizer_pow2.h"
+#include "src/gpu/GrRectanizer_pow2.h"
 
 bool GrRectanizerPow2::addRect(int width, int height, SkIPoint16* loc) {
     if ((unsigned)width > (unsigned)this->width() ||
diff --git a/src/gpu/GrRectanizer_pow2.h b/src/gpu/GrRectanizer_pow2.h
index 3c3928e..70e8399 100644
--- a/src/gpu/GrRectanizer_pow2.h
+++ b/src/gpu/GrRectanizer_pow2.h
@@ -8,10 +8,10 @@
 #ifndef GrRectanizer_pow2_DEFINED
 #define GrRectanizer_pow2_DEFINED
 
-#include "GrRectanizer.h"
-#include "SkMathPriv.h"
-#include "SkMalloc.h"
-#include "SkIPoint16.h"
+#include "include/private/SkMalloc.h"
+#include "src/core/SkIPoint16.h"
+#include "src/core/SkMathPriv.h"
+#include "src/gpu/GrRectanizer.h"
 
 // This Rectanizer quantizes the incoming rects to powers of 2. Each power
 // of two can have, at most, one active row/shelf. Once a row/shelf for
diff --git a/src/gpu/GrRectanizer_skyline.cpp b/src/gpu/GrRectanizer_skyline.cpp
index 44ef813..250cfc5 100644
--- a/src/gpu/GrRectanizer_skyline.cpp
+++ b/src/gpu/GrRectanizer_skyline.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "GrRectanizer_skyline.h"
-#include "SkIPoint16.h"
+#include "src/core/SkIPoint16.h"
+#include "src/gpu/GrRectanizer_skyline.h"
 
 bool GrRectanizerSkyline::addRect(int width, int height, SkIPoint16* loc) {
     if ((unsigned)width > (unsigned)this->width() ||
diff --git a/src/gpu/GrRectanizer_skyline.h b/src/gpu/GrRectanizer_skyline.h
index a1c571e..60663fd 100644
--- a/src/gpu/GrRectanizer_skyline.h
+++ b/src/gpu/GrRectanizer_skyline.h
@@ -8,8 +8,8 @@
 #ifndef GrRectanizer_skyline_DEFINED
 #define GrRectanizer_skyline_DEFINED
 
-#include "GrRectanizer.h"
-#include "SkTDArray.h"
+#include "include/private/SkTDArray.h"
+#include "src/gpu/GrRectanizer.h"
 
 // Pack rectangles and track the current silhouette
 // Based, in part, on Jukka Jylanki's work at http://clb.demon.fi
diff --git a/src/gpu/GrReducedClip.cpp b/src/gpu/GrReducedClip.cpp
index 1123876..1b46553 100644
--- a/src/gpu/GrReducedClip.cpp
+++ b/src/gpu/GrReducedClip.cpp
@@ -5,26 +5,26 @@
  * found in the LICENSE file.
  */
 
-#include "GrReducedClip.h"
-#include "GrAppliedClip.h"
-#include "GrClip.h"
-#include "GrColor.h"
-#include "GrDrawingManager.h"
-#include "GrFixedClip.h"
-#include "GrPathRenderer.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "GrShape.h"
-#include "GrStencilClip.h"
-#include "GrStencilSettings.h"
-#include "GrStyle.h"
-#include "GrUserStencilSettings.h"
-#include "SkClipOpPriv.h"
-#include "ccpr/GrCoverageCountingPathRenderer.h"
-#include "effects/generated/GrAARectEffect.h"
-#include "effects/GrConvexPolyEffect.h"
-#include "effects/GrRRectEffect.h"
+#include "include/private/GrColor.h"
+#include "src/core/SkClipOpPriv.h"
+#include "src/gpu/GrAppliedClip.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrDrawingManager.h"
+#include "src/gpu/GrFixedClip.h"
+#include "src/gpu/GrPathRenderer.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrReducedClip.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/GrStencilClip.h"
+#include "src/gpu/GrStencilSettings.h"
+#include "src/gpu/GrStyle.h"
+#include "src/gpu/GrUserStencilSettings.h"
+#include "src/gpu/ccpr/GrCoverageCountingPathRenderer.h"
+#include "src/gpu/effects/GrConvexPolyEffect.h"
+#include "src/gpu/effects/GrRRectEffect.h"
+#include "src/gpu/effects/generated/GrAARectEffect.h"
 
 /**
  * There are plenty of optimizations that could be added here. Maybe flips could be folded into
diff --git a/src/gpu/GrReducedClip.h b/src/gpu/GrReducedClip.h
index bac08a3..c3c628a 100644
--- a/src/gpu/GrReducedClip.h
+++ b/src/gpu/GrReducedClip.h
@@ -8,10 +8,10 @@
 #ifndef GrReducedClip_DEFINED
 #define GrReducedClip_DEFINED
 
-#include "GrFragmentProcessor.h"
-#include "GrWindowRectangles.h"
-#include "SkClipStack.h"
-#include "SkTLList.h"
+#include "src/core/SkClipStack.h"
+#include "src/core/SkTLList.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/GrWindowRectangles.h"
 
 class GrCoverageCountingPathRenderer;
 class GrRecordingContext;
diff --git a/src/gpu/GrRenderTarget.cpp b/src/gpu/GrRenderTarget.cpp
index 4897349..4d4cff4 100644
--- a/src/gpu/GrRenderTarget.cpp
+++ b/src/gpu/GrRenderTarget.cpp
@@ -6,18 +6,18 @@
  */
 
 
-#include "GrRenderTarget.h"
+#include "include/gpu/GrRenderTarget.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrGpu.h"
-#include "GrRenderTargetOpList.h"
-#include "GrRenderTargetPriv.h"
-#include "GrSamplePatternDictionary.h"
-#include "GrStencilAttachment.h"
-#include "GrStencilSettings.h"
-#include "SkRectPriv.h"
+#include "include/gpu/GrContext.h"
+#include "src/core/SkRectPriv.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetOpList.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/GrSamplePatternDictionary.h"
+#include "src/gpu/GrStencilAttachment.h"
+#include "src/gpu/GrStencilSettings.h"
 
 GrRenderTarget::GrRenderTarget(GrGpu* gpu, const GrSurfaceDesc& desc,
                                GrStencilAttachment* stencil)
diff --git a/src/gpu/GrRenderTargetContext.cpp b/src/gpu/GrRenderTargetContext.cpp
index dbf4e28..3391177 100644
--- a/src/gpu/GrRenderTargetContext.cpp
+++ b/src/gpu/GrRenderTargetContext.cpp
@@ -5,63 +5,63 @@
  * found in the LICENSE file.
  */
 
-#include "GrRenderTargetContext.h"
-#include "../private/GrAuditTrail.h"
-#include "../private/SkShadowFlags.h"
-#include "GrAppliedClip.h"
-#include "GrBackendSemaphore.h"
-#include "GrBlurUtils.h"
-#include "GrCaps.h"
-#include "GrColor.h"
-#include "GrContextPriv.h"
-#include "GrDrawingManager.h"
-#include "GrFixedClip.h"
-#include "GrGpuResourcePriv.h"
-#include "GrMemoryPool.h"
-#include "GrOpList.h"
-#include "GrPathRenderer.h"
-#include "GrQuad.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTarget.h"
-#include "GrRenderTargetContextPriv.h"
-#include "GrResourceProvider.h"
-#include "GrShape.h"
-#include "GrStencilAttachment.h"
-#include "GrStyle.h"
-#include "GrTracing.h"
-#include "SkDrawable.h"
-#include "SkDrawShadowInfo.h"
-#include "SkGlyphRunPainter.h"
-#include "SkGr.h"
-#include "SkLatticeIter.h"
-#include "SkMatrixPriv.h"
-#include "SkRRectPriv.h"
-#include "SkShadowUtils.h"
-#include "SkSurfacePriv.h"
-#include "effects/GrRRectEffect.h"
-#include "effects/GrTextureDomain.h"
-#include "ops/GrAtlasTextOp.h"
-#include "ops/GrClearOp.h"
-#include "ops/GrClearStencilClipOp.h"
-#include "ops/GrDebugMarkerOp.h"
-#include "ops/GrDrawableOp.h"
-#include "ops/GrDrawAtlasOp.h"
-#include "ops/GrDrawOp.h"
-#include "ops/GrDrawVerticesOp.h"
-#include "ops/GrFillRectOp.h"
-#include "ops/GrFillRRectOp.h"
-#include "ops/GrLatticeOp.h"
-#include "ops/GrOp.h"
-#include "ops/GrOvalOpFactory.h"
-#include "ops/GrRegionOp.h"
-#include "ops/GrSemaphoreOp.h"
-#include "ops/GrShadowRRectOp.h"
-#include "ops/GrStencilPathOp.h"
-#include "ops/GrStrokeRectOp.h"
-#include "ops/GrTextureOp.h"
-#include "text/GrTextContext.h"
-#include "text/GrTextTarget.h"
+#include "include/core/SkDrawable.h"
+#include "include/gpu/GrBackendSemaphore.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "include/private/GrAuditTrail.h"
+#include "include/private/GrColor.h"
+#include "include/private/GrOpList.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/SkShadowFlags.h"
+#include "include/utils/SkShadowUtils.h"
+#include "src/core/SkDrawShadowInfo.h"
+#include "src/core/SkGlyphRunPainter.h"
+#include "src/core/SkLatticeIter.h"
+#include "src/core/SkMatrixPriv.h"
+#include "src/core/SkRRectPriv.h"
+#include "src/core/SkSurfacePriv.h"
+#include "src/gpu/GrAppliedClip.h"
+#include "src/gpu/GrBlurUtils.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrDrawingManager.h"
+#include "src/gpu/GrFixedClip.h"
+#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrPathRenderer.h"
+#include "src/gpu/GrQuad.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/GrStencilAttachment.h"
+#include "src/gpu/GrStyle.h"
+#include "src/gpu/GrTracing.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/effects/GrRRectEffect.h"
+#include "src/gpu/effects/GrTextureDomain.h"
+#include "src/gpu/ops/GrAtlasTextOp.h"
+#include "src/gpu/ops/GrClearOp.h"
+#include "src/gpu/ops/GrClearStencilClipOp.h"
+#include "src/gpu/ops/GrDebugMarkerOp.h"
+#include "src/gpu/ops/GrDrawAtlasOp.h"
+#include "src/gpu/ops/GrDrawOp.h"
+#include "src/gpu/ops/GrDrawVerticesOp.h"
+#include "src/gpu/ops/GrDrawableOp.h"
+#include "src/gpu/ops/GrFillRRectOp.h"
+#include "src/gpu/ops/GrFillRectOp.h"
+#include "src/gpu/ops/GrLatticeOp.h"
+#include "src/gpu/ops/GrOp.h"
+#include "src/gpu/ops/GrOvalOpFactory.h"
+#include "src/gpu/ops/GrRegionOp.h"
+#include "src/gpu/ops/GrSemaphoreOp.h"
+#include "src/gpu/ops/GrShadowRRectOp.h"
+#include "src/gpu/ops/GrStencilPathOp.h"
+#include "src/gpu/ops/GrStrokeRectOp.h"
+#include "src/gpu/ops/GrTextureOp.h"
+#include "src/gpu/text/GrTextContext.h"
+#include "src/gpu/text/GrTextTarget.h"
 
 class GrRenderTargetContext::TextTarget : public GrTextTarget {
 public:
diff --git a/src/gpu/GrRenderTargetContext.h b/src/gpu/GrRenderTargetContext.h
index f8e113e..8b467db 100644
--- a/src/gpu/GrRenderTargetContext.h
+++ b/src/gpu/GrRenderTargetContext.h
@@ -8,17 +8,17 @@
 #ifndef GrRenderTargetContext_DEFINED
 #define GrRenderTargetContext_DEFINED
 
-#include "../private/GrRenderTargetProxy.h"
-#include "GrPaint.h"
-#include "GrSurfaceContext.h"
-#include "GrTypesPriv.h"
-#include "GrXferProcessor.h"
-#include "SkCanvas.h"
-#include "SkDrawable.h"
-#include "SkRefCnt.h"
-#include "SkSurface.h"
-#include "SkSurfaceProps.h"
-#include "text/GrTextTarget.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkDrawable.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkSurfaceProps.h"
+#include "include/private/GrRenderTargetProxy.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/GrPaint.h"
+#include "src/gpu/GrSurfaceContext.h"
+#include "src/gpu/GrXferProcessor.h"
+#include "src/gpu/text/GrTextTarget.h"
 
 class GrBackendSemaphore;
 class GrClip;
diff --git a/src/gpu/GrRenderTargetContextPriv.h b/src/gpu/GrRenderTargetContextPriv.h
index 0858749..95da3de 100644
--- a/src/gpu/GrRenderTargetContextPriv.h
+++ b/src/gpu/GrRenderTargetContextPriv.h
@@ -8,9 +8,9 @@
 #ifndef GrRenderTargetContextPriv_DEFINED
 #define GrRenderTargetContextPriv_DEFINED
 
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetOpList.h"
-#include "GrPathRendering.h"
+#include "src/gpu/GrPathRendering.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetOpList.h"
 
 class GrFixedClip;
 class GrHardClip;
diff --git a/src/gpu/GrRenderTargetOpList.cpp b/src/gpu/GrRenderTargetOpList.cpp
index f586293..84fc9cb 100644
--- a/src/gpu/GrRenderTargetOpList.cpp
+++ b/src/gpu/GrRenderTargetOpList.cpp
@@ -5,22 +5,22 @@
  * found in the LICENSE file.
  */
 
-#include "GrRenderTargetOpList.h"
-#include "GrAuditTrail.h"
-#include "GrCaps.h"
-#include "GrGpu.h"
-#include "GrGpuCommandBuffer.h"
-#include "GrMemoryPool.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRect.h"
-#include "GrRenderTargetContext.h"
-#include "GrResourceAllocator.h"
-#include "SkExchange.h"
-#include "SkRectPriv.h"
-#include "SkTraceEvent.h"
-#include "ops/GrClearOp.h"
-#include "ops/GrCopySurfaceOp.h"
+#include "include/private/GrAuditTrail.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/core/SkExchange.h"
+#include "src/core/SkRectPriv.h"
+#include "src/core/SkTraceEvent.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRect.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetOpList.h"
+#include "src/gpu/GrResourceAllocator.h"
+#include "src/gpu/ops/GrClearOp.h"
+#include "src/gpu/ops/GrCopySurfaceOp.h"
 
 ////////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/gpu/GrRenderTargetOpList.h b/src/gpu/GrRenderTargetOpList.h
index 692dee7..e27f694 100644
--- a/src/gpu/GrRenderTargetOpList.h
+++ b/src/gpu/GrRenderTargetOpList.h
@@ -8,20 +8,20 @@
 #ifndef GrRenderTargetOpList_DEFINED
 #define GrRenderTargetOpList_DEFINED
 
-#include "GrAppliedClip.h"
-#include "GrOpList.h"
-#include "GrPathRendering.h"
-#include "GrPrimitiveProcessor.h"
-#include "ops/GrOp.h"
-#include "ops/GrDrawOp.h"
-#include "SkArenaAlloc.h"
-#include "SkClipStack.h"
-#include "SkMatrix.h"
-#include "SkStringUtils.h"
-#include "SkStrokeRec.h"
-#include "SkTArray.h"
-#include "SkTLazy.h"
-#include "SkTypes.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/core/SkTypes.h"
+#include "include/private/GrOpList.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkTArray.h"
+#include "src/core/SkClipStack.h"
+#include "src/core/SkStringUtils.h"
+#include "src/core/SkTLazy.h"
+#include "src/gpu/GrAppliedClip.h"
+#include "src/gpu/GrPathRendering.h"
+#include "src/gpu/GrPrimitiveProcessor.h"
+#include "src/gpu/ops/GrDrawOp.h"
+#include "src/gpu/ops/GrOp.h"
 
 class GrAuditTrail;
 class GrClearOp;
diff --git a/src/gpu/GrRenderTargetPriv.h b/src/gpu/GrRenderTargetPriv.h
index 1820415..df74f1a 100644
--- a/src/gpu/GrRenderTargetPriv.h
+++ b/src/gpu/GrRenderTargetPriv.h
@@ -8,8 +8,8 @@
 #ifndef GrRenderTargetPriv_DEFINED
 #define GrRenderTargetPriv_DEFINED
 
-#include "GrRenderTarget.h"
-#include "GrGpu.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "src/gpu/GrGpu.h"
 
 class GrStencilSettings;
 
diff --git a/src/gpu/GrRenderTargetProxy.cpp b/src/gpu/GrRenderTargetProxy.cpp
index 8f0d88c..195ac52 100644
--- a/src/gpu/GrRenderTargetProxy.cpp
+++ b/src/gpu/GrRenderTargetProxy.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "GrRenderTargetProxy.h"
+#include "include/private/GrRenderTargetProxy.h"
 
-#include "GrCaps.h"
-#include "GrGpuResourcePriv.h"
-#include "GrRenderTargetOpList.h"
-#include "GrRenderTargetPriv.h"
-#include "GrResourceProvider.h"
-#include "GrSurfacePriv.h"
-#include "GrTextureRenderTargetProxy.h"
-#include "SkMathPriv.h"
+#include "src/core/SkMathPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/GrRenderTargetOpList.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSurfacePriv.h"
+#include "src/gpu/GrTextureRenderTargetProxy.h"
 
 // Deferred version
 // TODO: we can probably munge the 'desc' in both the wrapped and deferred
diff --git a/src/gpu/GrRenderTargetProxyPriv.h b/src/gpu/GrRenderTargetProxyPriv.h
index 7c80099..9bbef3d 100644
--- a/src/gpu/GrRenderTargetProxyPriv.h
+++ b/src/gpu/GrRenderTargetProxyPriv.h
@@ -8,7 +8,7 @@
 #ifndef GrRenderTargetProxyPriv_DEFINED
 #define GrRenderTargetProxyPriv_DEFINED
 
-#include "GrRenderTargetProxy.h"
+#include "include/private/GrRenderTargetProxy.h"
 
 /**
  * This class hides the more specialized capabilities of GrRenderTargetProxy.
diff --git a/src/gpu/GrResourceAllocator.cpp b/src/gpu/GrResourceAllocator.cpp
index f8706eb..dd18426 100644
--- a/src/gpu/GrResourceAllocator.cpp
+++ b/src/gpu/GrResourceAllocator.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "GrResourceAllocator.h"
+#include "src/gpu/GrResourceAllocator.h"
 
-#include "GrDeinstantiateProxyTracker.h"
-#include "GrGpuResourcePriv.h"
-#include "GrOpList.h"
-#include "GrRenderTargetProxy.h"
-#include "GrResourceCache.h"
-#include "GrResourceProvider.h"
-#include "GrSurfacePriv.h"
-#include "GrSurfaceProxy.h"
-#include "GrSurfaceProxyPriv.h"
-#include "GrTextureProxy.h"
+#include "include/private/GrOpList.h"
+#include "include/private/GrRenderTargetProxy.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrDeinstantiateProxyTracker.h"
+#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/GrResourceCache.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSurfacePriv.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
 
 #if GR_TRACK_INTERVAL_CREATION
     #include <atomic>
diff --git a/src/gpu/GrResourceAllocator.h b/src/gpu/GrResourceAllocator.h
index eded88a..2bb201f 100644
--- a/src/gpu/GrResourceAllocator.h
+++ b/src/gpu/GrResourceAllocator.h
@@ -8,13 +8,13 @@
 #ifndef GrResourceAllocator_DEFINED
 #define GrResourceAllocator_DEFINED
 
-#include "GrGpuResourcePriv.h"
-#include "GrSurface.h"
-#include "GrSurfaceProxy.h"
+#include "include/gpu/GrSurface.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "src/gpu/GrGpuResourcePriv.h"
 
-#include "SkArenaAlloc.h"
-#include "SkTDynamicHash.h"
-#include "SkTMultiMap.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkTDynamicHash.h"
+#include "src/core/SkTMultiMap.h"
 
 class GrDeinstantiateProxyTracker;
 class GrResourceProvider;
diff --git a/src/gpu/GrResourceCache.cpp b/src/gpu/GrResourceCache.cpp
index 4374cd8..bbd7f70 100644
--- a/src/gpu/GrResourceCache.cpp
+++ b/src/gpu/GrResourceCache.cpp
@@ -5,25 +5,25 @@
  * found in the LICENSE file.
  */
 
-#include "GrResourceCache.h"
+#include "src/gpu/GrResourceCache.h"
 #include <atomic>
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpuResourceCacheAccess.h"
-#include "GrProxyProvider.h"
-#include "GrSingleOwner.h"
-#include "GrTexture.h"
-#include "GrTextureProxyCacheAccess.h"
-#include "GrTracing.h"
-#include "SkExchange.h"
-#include "SkGr.h"
-#include "SkMessageBus.h"
-#include "SkOpts.h"
-#include "SkRandom.h"
-#include "SkScopeExit.h"
-#include "SkTSort.h"
-#include "SkTo.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrSingleOwner.h"
+#include "include/private/SkMessageBus.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkExchange.h"
+#include "src/core/SkOpts.h"
+#include "src/core/SkScopeExit.h"
+#include "src/core/SkTSort.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpuResourceCacheAccess.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrTextureProxyCacheAccess.h"
+#include "src/gpu/GrTracing.h"
+#include "src/gpu/SkGr.h"
 
 DECLARE_SKMESSAGEBUS_MESSAGE(GrUniqueKeyInvalidatedMessage);
 
diff --git a/src/gpu/GrResourceCache.h b/src/gpu/GrResourceCache.h
index a582648..99b8e52 100644
--- a/src/gpu/GrResourceCache.h
+++ b/src/gpu/GrResourceCache.h
@@ -8,17 +8,17 @@
 #ifndef GrResourceCache_DEFINED
 #define GrResourceCache_DEFINED
 
-#include "GrGpuResource.h"
-#include "GrGpuResourceCacheAccess.h"
-#include "GrGpuResourcePriv.h"
-#include "GrResourceKey.h"
-#include "SkMessageBus.h"
-#include "SkRefCnt.h"
-#include "SkTArray.h"
-#include "SkTDPQueue.h"
-#include "SkTHash.h"
-#include "SkTInternalLList.h"
-#include "SkTMultiMap.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/GrGpuResource.h"
+#include "include/private/GrResourceKey.h"
+#include "include/private/SkMessageBus.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTHash.h"
+#include "include/private/SkTInternalLList.h"
+#include "src/core/SkTDPQueue.h"
+#include "src/core/SkTMultiMap.h"
+#include "src/gpu/GrGpuResourceCacheAccess.h"
+#include "src/gpu/GrGpuResourcePriv.h"
 
 class GrCaps;
 class GrProxyProvider;
diff --git a/src/gpu/GrResourceHandle.h b/src/gpu/GrResourceHandle.h
index 383bbea..30440a7 100644
--- a/src/gpu/GrResourceHandle.h
+++ b/src/gpu/GrResourceHandle.h
@@ -8,7 +8,7 @@
 #ifndef GrResourceHandle_DEFINED
 #define GrResourceHandle_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 // Opaque handle to a resource. Users should always use the macro below to create a specific
 // template instantiation of GrResourceHandle.
diff --git a/src/gpu/GrResourceProvider.cpp b/src/gpu/GrResourceProvider.cpp
index d4346cd..77f5759 100644
--- a/src/gpu/GrResourceProvider.cpp
+++ b/src/gpu/GrResourceProvider.cpp
@@ -5,25 +5,25 @@
  * found in the LICENSE file.
  */
 
-#include "GrResourceProvider.h"
-#include "../private/GrSingleOwner.h"
-#include "GrBackendSemaphore.h"
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrGpuBuffer.h"
-#include "GrPath.h"
-#include "GrPathRendering.h"
-#include "GrProxyProvider.h"
-#include "GrRenderTargetPriv.h"
-#include "GrResourceCache.h"
-#include "GrResourceKey.h"
-#include "GrSemaphore.h"
-#include "GrStencilAttachment.h"
-#include "GrTexturePriv.h"
-#include "SkGr.h"
-#include "SkMathPriv.h"
+#include "include/gpu/GrBackendSemaphore.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrResourceKey.h"
+#include "include/private/GrSingleOwner.h"
+#include "src/core/SkMathPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrGpuBuffer.h"
+#include "src/gpu/GrPath.h"
+#include "src/gpu/GrPathRendering.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/GrResourceCache.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSemaphore.h"
+#include "src/gpu/GrStencilAttachment.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/SkGr.h"
 
 const uint32_t GrResourceProvider::kMinScratchTextureSize = 16;
 
diff --git a/src/gpu/GrResourceProvider.h b/src/gpu/GrResourceProvider.h
index 2d4ef92..f382be8 100644
--- a/src/gpu/GrResourceProvider.h
+++ b/src/gpu/GrResourceProvider.h
@@ -8,11 +8,11 @@
 #ifndef GrResourceProvider_DEFINED
 #define GrResourceProvider_DEFINED
 
-#include "GrContextOptions.h"
-#include "GrGpuBuffer.h"
-#include "GrResourceCache.h"
-#include "SkImageInfoPriv.h"
-#include "SkScalerContext.h"
+#include "include/gpu/GrContextOptions.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "src/core/SkScalerContext.h"
+#include "src/gpu/GrGpuBuffer.h"
+#include "src/gpu/GrResourceCache.h"
 
 class GrBackendRenderTarget;
 class GrBackendSemaphore;
diff --git a/src/gpu/GrResourceProviderPriv.h b/src/gpu/GrResourceProviderPriv.h
index d7d73d8..a440f95 100644
--- a/src/gpu/GrResourceProviderPriv.h
+++ b/src/gpu/GrResourceProviderPriv.h
@@ -8,7 +8,7 @@
 #ifndef GrResourceProviderPriv_DEFINED
 #define GrResourceProviderPriv_DEFINED
 
-#include "GrResourceProvider.h"
+#include "src/gpu/GrResourceProvider.h"
 
 /** Class that adds methods to GrResourceProvider that are only intended for use internal to Skia.
     This class is purely a privileged window into GrResourceProvider. It should never have
diff --git a/src/gpu/GrSKSLPrettyPrint.cpp b/src/gpu/GrSKSLPrettyPrint.cpp
index f00682f..0b4bd21 100644
--- a/src/gpu/GrSKSLPrettyPrint.cpp
+++ b/src/gpu/GrSKSLPrettyPrint.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "GrSKSLPrettyPrint.h"
-#include "SkSLString.h"
+#include "src/gpu/GrSKSLPrettyPrint.h"
+#include "src/sksl/SkSLString.h"
 
 namespace GrSKSLPrettyPrint {
 
diff --git a/src/gpu/GrSKSLPrettyPrint.h b/src/gpu/GrSKSLPrettyPrint.h
index 2871e95..9ca1de2 100644
--- a/src/gpu/GrSKSLPrettyPrint.h
+++ b/src/gpu/GrSKSLPrettyPrint.h
@@ -7,7 +7,7 @@
 #ifndef GrSKSLPrettyPrint_DEFINED
 #define GrSKSLPrettyPrint_DEFINED
 
-#include "SkSLString.h"
+#include "src/sksl/SkSLString.h"
 
 namespace GrSKSLPrettyPrint {
 SkSL::String PrettyPrint(const SkSL::String& string);
diff --git a/src/gpu/GrSWMaskHelper.cpp b/src/gpu/GrSWMaskHelper.cpp
index c02818a..a6efaab 100644
--- a/src/gpu/GrSWMaskHelper.cpp
+++ b/src/gpu/GrSWMaskHelper.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "GrSWMaskHelper.h"
+#include "src/gpu/GrSWMaskHelper.h"
 
-#include "GrCaps.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrShape.h"
-#include "GrSurfaceContext.h"
-#include "GrTextureProxy.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/GrSurfaceContext.h"
 
 /*
  * Convert a boolean operation into a transfer mode code
diff --git a/src/gpu/GrSWMaskHelper.h b/src/gpu/GrSWMaskHelper.h
index c2df5db..0a042e1 100644
--- a/src/gpu/GrSWMaskHelper.h
+++ b/src/gpu/GrSWMaskHelper.h
@@ -8,13 +8,13 @@
 #ifndef GrSWMaskHelper_DEFINED
 #define GrSWMaskHelper_DEFINED
 
-#include "GrTypesPriv.h"
-#include "SkAutoPixmapStorage.h"
-#include "SkDraw.h"
-#include "SkMatrix.h"
-#include "SkRasterClip.h"
-#include "SkRegion.h"
-#include "SkTypes.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkTypes.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/core/SkAutoPixmapStorage.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkRasterClip.h"
 
 class GrShape;
 class GrRecordingContext;
diff --git a/src/gpu/GrSamplePatternDictionary.cpp b/src/gpu/GrSamplePatternDictionary.cpp
index 453ed45..6114289 100644
--- a/src/gpu/GrSamplePatternDictionary.cpp
+++ b/src/gpu/GrSamplePatternDictionary.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "GrSamplePatternDictionary.h"
+#include "src/gpu/GrSamplePatternDictionary.h"
 
 bool GrSamplePatternDictionary::LessThan::operator()(
         const SkTArray<SkPoint>& a, const SkTArray<SkPoint>& b) const {
diff --git a/src/gpu/GrSamplePatternDictionary.h b/src/gpu/GrSamplePatternDictionary.h
index 5d6fb28..b004478 100644
--- a/src/gpu/GrSamplePatternDictionary.h
+++ b/src/gpu/GrSamplePatternDictionary.h
@@ -8,8 +8,8 @@
 #ifndef GrSamplePatternDictionary_DEFINED
 #define GrSamplePatternDictionary_DEFINED
 
-#include "SkPoint.h"
-#include "SkTArray.h"
+#include "include/core/SkPoint.h"
+#include "include/private/SkTArray.h"
 #include <map>
 
 /**
diff --git a/src/gpu/GrScissorState.h b/src/gpu/GrScissorState.h
index 59ea088..79ba47f 100644
--- a/src/gpu/GrScissorState.h
+++ b/src/gpu/GrScissorState.h
@@ -8,7 +8,7 @@
 #ifndef GrScissorState_DEFINED
 #define GrScissorState_DEFINED
 
-#include "SkRect.h"
+#include "include/core/SkRect.h"
 
 class GrScissorState {
 public:
diff --git a/src/gpu/GrSemaphore.h b/src/gpu/GrSemaphore.h
index 6023104..858cf63 100644
--- a/src/gpu/GrSemaphore.h
+++ b/src/gpu/GrSemaphore.h
@@ -8,8 +8,8 @@
 #ifndef GrSemaphore_DEFINED
 #define GrSemaphore_DEFINED
 
-#include "GrBackendSemaphore.h"
-#include "GrGpuResource.h"
+#include "include/gpu/GrBackendSemaphore.h"
+#include "include/gpu/GrGpuResource.h"
 
 /**
  * Represents a semaphore-like GPU synchronization object. This is a slightly odd fit for
diff --git a/src/gpu/GrShaderCaps.cpp b/src/gpu/GrShaderCaps.cpp
index 56dbc23..4cadd44 100644
--- a/src/gpu/GrShaderCaps.cpp
+++ b/src/gpu/GrShaderCaps.cpp
@@ -6,10 +6,10 @@
  */
 
 
-#include "GrShaderCaps.h"
+#include "src/gpu/GrShaderCaps.h"
 
-#include "GrContextOptions.h"
-#include "SkJSONWriter.h"
+#include "include/gpu/GrContextOptions.h"
+#include "src/utils/SkJSONWriter.h"
 
 ////////////////////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/gpu/GrShaderCaps.h b/src/gpu/GrShaderCaps.h
index bbac42d..74cdf13 100644
--- a/src/gpu/GrShaderCaps.h
+++ b/src/gpu/GrShaderCaps.h
@@ -8,10 +8,10 @@
 #ifndef GrShaderCaps_DEFINED
 #define GrShaderCaps_DEFINED
 
-#include "GrSwizzle.h"
-#include "GrTypesPriv.h"
-#include "SkRefCnt.h"
-#include "glsl/GrGLSL.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/GrSwizzle.h"
+#include "src/gpu/glsl/GrGLSL.h"
 
 namespace SkSL {
 class ShaderCapsFactory;
diff --git a/src/gpu/GrShaderVar.cpp b/src/gpu/GrShaderVar.cpp
index 269ba83..6a374d8 100644
--- a/src/gpu/GrShaderVar.cpp
+++ b/src/gpu/GrShaderVar.cpp
@@ -6,8 +6,8 @@
  */
 
 
-#include "GrShaderVar.h"
-#include "GrShaderCaps.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrShaderVar.h"
 
 static const char* type_modifier_string(GrShaderVar::TypeModifier t) {
     switch (t) {
diff --git a/src/gpu/GrShaderVar.h b/src/gpu/GrShaderVar.h
index ef0d830..791d359 100644
--- a/src/gpu/GrShaderVar.h
+++ b/src/gpu/GrShaderVar.h
@@ -8,8 +8,8 @@
 #ifndef GrShaderVar_DEFINED
 #define GrShaderVar_DEFINED
 
-#include "SkString.h"
-#include "GrTypesPriv.h"
+#include "include/core/SkString.h"
+#include "include/private/GrTypesPriv.h"
 
 class GrShaderCaps;
 
diff --git a/src/gpu/GrShape.cpp b/src/gpu/GrShape.cpp
index a0a395b..f7943a1 100644
--- a/src/gpu/GrShape.cpp
+++ b/src/gpu/GrShape.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "GrShape.h"
+#include "src/gpu/GrShape.h"
 
 #include <utility>
 
diff --git a/src/gpu/GrShape.h b/src/gpu/GrShape.h
index a1828c5..f7627e6 100644
--- a/src/gpu/GrShape.h
+++ b/src/gpu/GrShape.h
@@ -8,12 +8,12 @@
 #ifndef GrShape_DEFINED
 #define GrShape_DEFINED
 
-#include "GrStyle.h"
-#include "SkPath.h"
-#include "SkPathPriv.h"
-#include "SkRRect.h"
-#include "SkTemplates.h"
-#include "SkTLazy.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkPathPriv.h"
+#include "src/core/SkTLazy.h"
+#include "src/gpu/GrStyle.h"
 #include <new>
 
 /**
diff --git a/src/gpu/GrSoftwarePathRenderer.cpp b/src/gpu/GrSoftwarePathRenderer.cpp
index 2fee0fb..f0f33ad 100644
--- a/src/gpu/GrSoftwarePathRenderer.cpp
+++ b/src/gpu/GrSoftwarePathRenderer.cpp
@@ -5,26 +5,26 @@
  * found in the LICENSE file.
  */
 
-#include "GrSoftwarePathRenderer.h"
-#include "GrAuditTrail.h"
-#include "GrCaps.h"
-#include "GrClip.h"
-#include "GrContextPriv.h"
-#include "GrDeferredProxyUploader.h"
-#include "GrGpuResourcePriv.h"
-#include "GrOpFlushState.h"
-#include "GrOpList.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContextPriv.h"
-#include "GrSWMaskHelper.h"
-#include "GrShape.h"
-#include "GrSurfaceContextPriv.h"
-#include "SkMakeUnique.h"
-#include "SkSemaphore.h"
-#include "SkTaskGroup.h"
-#include "SkTraceEvent.h"
-#include "ops/GrDrawOp.h"
-#include "ops/GrFillRectOp.h"
+#include "include/private/GrAuditTrail.h"
+#include "include/private/GrOpList.h"
+#include "include/private/SkSemaphore.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkTaskGroup.h"
+#include "src/core/SkTraceEvent.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrDeferredProxyUploader.h"
+#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrSWMaskHelper.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/GrSoftwarePathRenderer.h"
+#include "src/gpu/GrSurfaceContextPriv.h"
+#include "src/gpu/ops/GrDrawOp.h"
+#include "src/gpu/ops/GrFillRectOp.h"
 
 ////////////////////////////////////////////////////////////////////////////////
 GrPathRenderer::CanDrawPath
diff --git a/src/gpu/GrSoftwarePathRenderer.h b/src/gpu/GrSoftwarePathRenderer.h
index 5d08202..a510c7b 100644
--- a/src/gpu/GrSoftwarePathRenderer.h
+++ b/src/gpu/GrSoftwarePathRenderer.h
@@ -8,7 +8,7 @@
 #ifndef GrSoftwarePathRenderer_DEFINED
 #define GrSoftwarePathRenderer_DEFINED
 
-#include "GrPathRenderer.h"
+#include "src/gpu/GrPathRenderer.h"
 
 class GrProxyProvider;
 class GrTextureProxy;
diff --git a/src/gpu/GrStencilAttachment.cpp b/src/gpu/GrStencilAttachment.cpp
index bcdeec5..ac1c88d 100644
--- a/src/gpu/GrStencilAttachment.cpp
+++ b/src/gpu/GrStencilAttachment.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "GrStencilAttachment.h"
-#include "GrResourceKey.h"
+#include "include/private/GrResourceKey.h"
+#include "src/gpu/GrStencilAttachment.h"
 
 void GrStencilAttachment::ComputeSharedStencilAttachmentKey(int width, int height, int sampleCnt,
                                                             GrUniqueKey* key) {
diff --git a/src/gpu/GrStencilAttachment.h b/src/gpu/GrStencilAttachment.h
index e8c56cc..22595f5 100644
--- a/src/gpu/GrStencilAttachment.h
+++ b/src/gpu/GrStencilAttachment.h
@@ -9,8 +9,8 @@
 #ifndef GrStencilAttachment_DEFINED
 #define GrStencilAttachment_DEFINED
 
-#include "GrGpuResource.h"
-#include "SkClipStack.h"
+#include "include/gpu/GrGpuResource.h"
+#include "src/core/SkClipStack.h"
 
 class GrRenderTarget;
 class GrResourceKey;
diff --git a/src/gpu/GrStencilClip.h b/src/gpu/GrStencilClip.h
index 2bbf3b4..d45d392 100644
--- a/src/gpu/GrStencilClip.h
+++ b/src/gpu/GrStencilClip.h
@@ -8,8 +8,8 @@
 #ifndef GrStencilClip_DEFINED
 #define GrStencilClip_DEFINED
 
-#include "GrAppliedClip.h"
-#include "GrFixedClip.h"
+#include "src/gpu/GrAppliedClip.h"
+#include "src/gpu/GrFixedClip.h"
 
 /**
  * Implements GrHardClip with the currently-existing stencil buffer contents and GrFixedClip.
diff --git a/src/gpu/GrStencilSettings.cpp b/src/gpu/GrStencilSettings.cpp
index 689557e..d03165c 100644
--- a/src/gpu/GrStencilSettings.cpp
+++ b/src/gpu/GrStencilSettings.cpp
@@ -6,9 +6,9 @@
  */
 
 
-#include "GrStencilSettings.h"
+#include "src/gpu/GrStencilSettings.h"
 
-#include "GrProcessor.h"
+#include "src/gpu/GrProcessor.h"
 
 constexpr const GrUserStencilSettings gUnused(
     GrUserStencilSettings::StaticInit<
diff --git a/src/gpu/GrStencilSettings.h b/src/gpu/GrStencilSettings.h
index a730b32..e694236 100644
--- a/src/gpu/GrStencilSettings.h
+++ b/src/gpu/GrStencilSettings.h
@@ -9,8 +9,8 @@
 #ifndef GrStencilSettings_DEFINED
 #define GrStencilSettings_DEFINED
 
-#include "GrUserStencilSettings.h"
-#include "SkRegion.h"
+#include "include/core/SkRegion.h"
+#include "src/gpu/GrUserStencilSettings.h"
 
 class GrProcessorKeyBuilder;
 
diff --git a/src/gpu/GrStyle.cpp b/src/gpu/GrStyle.cpp
index 6995355..305b5b3 100644
--- a/src/gpu/GrStyle.cpp
+++ b/src/gpu/GrStyle.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "GrStyle.h"
-#include "SkDashPathPriv.h"
+#include "src/gpu/GrStyle.h"
+#include "src/utils/SkDashPathPriv.h"
 
 int GrStyle::KeySize(const GrStyle &style, Apply apply, uint32_t flags) {
     GR_STATIC_ASSERT(sizeof(uint32_t) == sizeof(SkScalar));
diff --git a/src/gpu/GrStyle.h b/src/gpu/GrStyle.h
index 9f7f630..c02939f 100644
--- a/src/gpu/GrStyle.h
+++ b/src/gpu/GrStyle.h
@@ -8,10 +8,10 @@
 #ifndef GrStyle_DEFINED
 #define GrStyle_DEFINED
 
-#include "GrTypes.h"
-#include "SkPathEffect.h"
-#include "SkStrokeRec.h"
-#include "SkTemplates.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/SkTemplates.h"
 
 /**
  * Represents the various ways that a GrShape can be styled. It has fill/stroking information
diff --git a/src/gpu/GrSurface.cpp b/src/gpu/GrSurface.cpp
index c5cd4b1..2a20456 100644
--- a/src/gpu/GrSurface.cpp
+++ b/src/gpu/GrSurface.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "GrSurface.h"
-#include "GrContext.h"
-#include "GrOpList.h"
-#include "GrRenderTarget.h"
-#include "GrResourceProvider.h"
-#include "GrSurfacePriv.h"
-#include "GrTexture.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "include/gpu/GrSurface.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrOpList.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSurfacePriv.h"
 
-#include "SkGr.h"
-#include "SkMathPriv.h"
+#include "src/core/SkMathPriv.h"
+#include "src/gpu/SkGr.h"
 
 size_t GrSurface::WorstCaseSize(const GrSurfaceDesc& desc, bool useNextPow2) {
     size_t size;
diff --git a/src/gpu/GrSurfaceContext.cpp b/src/gpu/GrSurfaceContext.cpp
index ae44eb9..1cae6f4 100644
--- a/src/gpu/GrSurfaceContext.cpp
+++ b/src/gpu/GrSurfaceContext.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrSurfaceContext.h"
-#include "GrContextPriv.h"
-#include "GrDrawingManager.h"
-#include "GrOpList.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "SkGr.h"
-#include "../private/GrAuditTrail.h"
+#include "include/private/GrAuditTrail.h"
+#include "include/private/GrOpList.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrDrawingManager.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrSurfaceContext.h"
+#include "src/gpu/SkGr.h"
 
 #define ASSERT_SINGLE_OWNER \
     SkDEBUGCODE(GrSingleOwner::AutoEnforce debug_SingleOwner(this->singleOwner());)
diff --git a/src/gpu/GrSurfaceContext.h b/src/gpu/GrSurfaceContext.h
index 368fbfb..29b1573 100644
--- a/src/gpu/GrSurfaceContext.h
+++ b/src/gpu/GrSurfaceContext.h
@@ -8,9 +8,9 @@
 #ifndef GrSurfaceContext_DEFINED
 #define GrSurfaceContext_DEFINED
 
-#include "../private/GrSurfaceProxy.h"
-#include "GrColorSpaceInfo.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "src/gpu/GrColorSpaceInfo.h"
 
 class GrAuditTrail;
 class GrDrawingManager;
diff --git a/src/gpu/GrSurfaceContextPriv.h b/src/gpu/GrSurfaceContextPriv.h
index 0749d3d..33d2aa7 100644
--- a/src/gpu/GrSurfaceContextPriv.h
+++ b/src/gpu/GrSurfaceContextPriv.h
@@ -8,7 +8,7 @@
 #ifndef GrSurfaceContextPriv_DEFINED
 #define GrSurfaceContextPriv_DEFINED
 
-#include "GrSurfaceContext.h"
+#include "src/gpu/GrSurfaceContext.h"
 
 /** Class that adds methods to GrSurfaceContext that are only intended for use internal to
     Skia. This class is purely a privileged window into GrSurfaceContext. It should never have
diff --git a/src/gpu/GrSurfacePriv.h b/src/gpu/GrSurfacePriv.h
index 4d61dca..1cb3b06 100644
--- a/src/gpu/GrSurfacePriv.h
+++ b/src/gpu/GrSurfacePriv.h
@@ -8,7 +8,7 @@
 #ifndef GrSurfacePriv_DEFINED
 #define GrSurfacePriv_DEFINED
 
-#include "GrSurface.h"
+#include "include/gpu/GrSurface.h"
 
 /** Class that adds methods to GrSurface that are only intended for use internal to Skia.
     This class is purely a privileged window into GrSurface. It should never have additional data
diff --git a/src/gpu/GrSurfaceProxy.cpp b/src/gpu/GrSurfaceProxy.cpp
index 7a59b0e..a3a0cd1 100644
--- a/src/gpu/GrSurfaceProxy.cpp
+++ b/src/gpu/GrSurfaceProxy.cpp
@@ -5,28 +5,28 @@
  * found in the LICENSE file.
  */
 
-#include "GrSurfaceProxy.h"
-#include "GrSurfaceProxyPriv.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
 
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpuResourcePriv.h"
-#include "GrOpList.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrSurfaceContext.h"
-#include "GrSurfacePriv.h"
-#include "GrTexturePriv.h"
-#include "GrTextureRenderTargetProxy.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrOpList.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrSurfaceContext.h"
+#include "src/gpu/GrSurfacePriv.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/GrTextureRenderTargetProxy.h"
 
-#include "SkMathPriv.h"
-#include "SkMipMap.h"
+#include "src/core/SkMathPriv.h"
+#include "src/core/SkMipMap.h"
 
 #ifdef SK_DEBUG
-#include "GrRenderTarget.h"
-#include "GrRenderTargetPriv.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "src/gpu/GrRenderTargetPriv.h"
 
 static bool is_valid_fully_lazy(const GrSurfaceDesc& desc, SkBackingFit fit) {
     return desc.fWidth <= 0 &&
diff --git a/src/gpu/GrSurfaceProxyPriv.h b/src/gpu/GrSurfaceProxyPriv.h
index 34ca7a1..462e9e2 100644
--- a/src/gpu/GrSurfaceProxyPriv.h
+++ b/src/gpu/GrSurfaceProxyPriv.h
@@ -8,9 +8,9 @@
 #ifndef GrSurfaceProxyPriv_DEFINED
 #define GrSurfaceProxyPriv_DEFINED
 
-#include "GrSurfaceProxy.h"
+#include "include/private/GrSurfaceProxy.h"
 
-#include "GrResourceProvider.h"
+#include "src/gpu/GrResourceProvider.h"
 
 /** Class that adds methods to GrSurfaceProxy that are only intended for use internal to Skia.
     This class is purely a privileged window into GrSurfaceProxy. It should never have additional
diff --git a/src/gpu/GrSwizzle.h b/src/gpu/GrSwizzle.h
index 469740b..3a3053a 100644
--- a/src/gpu/GrSwizzle.h
+++ b/src/gpu/GrSwizzle.h
@@ -8,8 +8,8 @@
 #ifndef GrSwizzle_DEFINED
 #define GrSwizzle_DEFINED
 
-#include "GrColor.h"
-#include "SkColorData.h"
+#include "include/private/GrColor.h"
+#include "include/private/SkColorData.h"
 
 /** Represents a rgba swizzle. It can be converted either into a string or a eight bit int.
     Currently there is no way to specify an arbitrary swizzle, just some static swizzles and an
diff --git a/src/gpu/GrTRecorder.h b/src/gpu/GrTRecorder.h
index 5ec47aa..bf630fe 100644
--- a/src/gpu/GrTRecorder.h
+++ b/src/gpu/GrTRecorder.h
@@ -8,9 +8,9 @@
 #ifndef GrTRecorder_DEFINED
 #define GrTRecorder_DEFINED
 
-#include "GrTypes.h"
-#include "SkArenaAlloc.h"
-#include "SkTLogic.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkTLogic.h"
 
 /**
  * Records a list of items with a common base type, optional associated data, and
diff --git a/src/gpu/GrTessellator.cpp b/src/gpu/GrTessellator.cpp
index 0138dbf..1d8c5d2 100644
--- a/src/gpu/GrTessellator.cpp
+++ b/src/gpu/GrTessellator.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "GrTessellator.h"
+#include "src/gpu/GrTessellator.h"
 
-#include "GrDefaultGeoProcFactory.h"
-#include "GrPathUtils.h"
-#include "GrVertexWriter.h"
+#include "src/gpu/GrDefaultGeoProcFactory.h"
+#include "src/gpu/GrPathUtils.h"
+#include "src/gpu/GrVertexWriter.h"
 
-#include "SkArenaAlloc.h"
-#include "SkGeometry.h"
-#include "SkPath.h"
-#include "SkPointPriv.h"
-#include "SkTDPQueue.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkPointPriv.h"
+#include "src/core/SkTDPQueue.h"
 
 #include <algorithm>
 #include <cstdio>
diff --git a/src/gpu/GrTessellator.h b/src/gpu/GrTessellator.h
index ae5376e..1793e12 100644
--- a/src/gpu/GrTessellator.h
+++ b/src/gpu/GrTessellator.h
@@ -8,9 +8,9 @@
 #ifndef GrTessellator_DEFINED
 #define GrTessellator_DEFINED
 
-#include "GrColor.h"
-#include "SkColorData.h"
-#include "SkPoint.h"
+#include "include/core/SkPoint.h"
+#include "include/private/GrColor.h"
+#include "include/private/SkColorData.h"
 
 class SkPath;
 struct SkRect;
diff --git a/src/gpu/GrTestUtils.cpp b/src/gpu/GrTestUtils.cpp
index 845ee77..778c7b8 100644
--- a/src/gpu/GrTestUtils.cpp
+++ b/src/gpu/GrTestUtils.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "GrTestUtils.h"
+#include "src/gpu/GrTestUtils.h"
 
-#include "GrColorSpaceInfo.h"
-#include "GrContext.h"
-#include "GrProcessorUnitTest.h"
-#include "GrStyle.h"
-#include "SkDashPathPriv.h"
-#include "SkMakeUnique.h"
-#include "SkMatrix.h"
-#include "SkPath.h"
-#include "SkRectPriv.h"
-#include "SkRRect.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "include/gpu/GrContext.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkRectPriv.h"
+#include "src/gpu/GrColorSpaceInfo.h"
+#include "src/gpu/GrProcessorUnitTest.h"
+#include "src/gpu/GrStyle.h"
+#include "src/utils/SkDashPathPriv.h"
 
 #if GR_TEST_UTILS
 
diff --git a/src/gpu/GrTestUtils.h b/src/gpu/GrTestUtils.h
index 79c8540..daf6ebe 100644
--- a/src/gpu/GrTestUtils.h
+++ b/src/gpu/GrTestUtils.h
@@ -8,19 +8,19 @@
 #ifndef GrTestUtils_DEFINED
 #define GrTestUtils_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if GR_TEST_UTILS
 
-#include "../private/SkTemplates.h"
-#include "GrColor.h"
-#include "GrFPArgs.h"
-#include "GrSamplerState.h"
-#include "SkMacros.h"
-#include "SkPathEffect.h"
-#include "SkRandom.h"
-#include "SkShaderBase.h"
-#include "SkStrokeRec.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/gpu/GrSamplerState.h"
+#include "include/private/GrColor.h"
+#include "include/private/SkMacros.h"
+#include "include/private/SkTemplates.h"
+#include "include/utils/SkRandom.h"
+#include "src/gpu/GrFPArgs.h"
+#include "src/shaders/SkShaderBase.h"
 
 class GrColorSpaceInfo;
 class GrColorSpaceXform;
diff --git a/src/gpu/GrTexture.cpp b/src/gpu/GrTexture.cpp
index 74f295b..ec3b08c 100644
--- a/src/gpu/GrTexture.cpp
+++ b/src/gpu/GrTexture.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "GrTexture.h"
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrRenderTarget.h"
-#include "GrResourceKey.h"
-#include "GrSurfacePriv.h"
-#include "GrTexturePriv.h"
-#include "GrTypes.h"
-#include "SkMath.h"
-#include "SkMipMap.h"
-#include "SkTypes.h"
+#include "include/core/SkMath.h"
+#include "include/core/SkTypes.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "include/gpu/GrTexture.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/GrResourceKey.h"
+#include "src/core/SkMipMap.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrSurfacePriv.h"
+#include "src/gpu/GrTexturePriv.h"
 
 void GrTexture::markMipMapsDirty() {
     if (GrMipMapsStatus::kValid == fMipMapsStatus) {
diff --git a/src/gpu/GrTextureAdjuster.cpp b/src/gpu/GrTextureAdjuster.cpp
index a840c52..a543b52 100644
--- a/src/gpu/GrTextureAdjuster.cpp
+++ b/src/gpu/GrTextureAdjuster.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "GrTextureAdjuster.h"
-#include "GrColorSpaceXform.h"
-#include "GrGpu.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "SkGr.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrColorSpaceXform.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrTextureAdjuster.h"
+#include "src/gpu/SkGr.h"
 
 GrTextureAdjuster::GrTextureAdjuster(GrRecordingContext* context, sk_sp<GrTextureProxy> original,
                                      SkAlphaType alphaType,
diff --git a/src/gpu/GrTextureAdjuster.h b/src/gpu/GrTextureAdjuster.h
index 58195e9..825e211 100644
--- a/src/gpu/GrTextureAdjuster.h
+++ b/src/gpu/GrTextureAdjuster.h
@@ -8,9 +8,9 @@
 #ifndef GrTextureAdjuster_DEFINED
 #define GrTextureAdjuster_DEFINED
 
-#include "GrTextureProducer.h"
-#include "GrTextureProxy.h"
-#include "SkTLazy.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/core/SkTLazy.h"
+#include "src/gpu/GrTextureProducer.h"
 
 class GrRecordingContext;
 
diff --git a/src/gpu/GrTextureContext.cpp b/src/gpu/GrTextureContext.cpp
index fb0e124..d0bdaa1 100644
--- a/src/gpu/GrTextureContext.cpp
+++ b/src/gpu/GrTextureContext.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "GrTextureContext.h"
+#include "src/gpu/GrTextureContext.h"
 
-#include "GrContextPriv.h"
-#include "GrDrawingManager.h"
-#include "GrTextureOpList.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrDrawingManager.h"
+#include "src/gpu/GrTextureOpList.h"
 
-#include "../private/GrAuditTrail.h"
+#include "include/private/GrAuditTrail.h"
 
 #define ASSERT_SINGLE_OWNER \
     SkDEBUGCODE(GrSingleOwner::AutoEnforce debug_SingleOwner(this->singleOwner());)
diff --git a/src/gpu/GrTextureContext.h b/src/gpu/GrTextureContext.h
index 9544f4d..f4bac34 100644
--- a/src/gpu/GrTextureContext.h
+++ b/src/gpu/GrTextureContext.h
@@ -8,8 +8,8 @@
 #ifndef GrTextureContext_DEFINED
 #define GrTextureContext_DEFINED
 
-#include "GrSurfaceContext.h"
-#include "../private/GrTextureProxy.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrSurfaceContext.h"
 
 class GrContext;
 class GrDrawingManager;
diff --git a/src/gpu/GrTextureMaker.cpp b/src/gpu/GrTextureMaker.cpp
index fbaa300..9908f37 100644
--- a/src/gpu/GrTextureMaker.cpp
+++ b/src/gpu/GrTextureMaker.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "GrTextureMaker.h"
+#include "src/gpu/GrTextureMaker.h"
 
-#include "GrColorSpaceXform.h"
-#include "GrGpu.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrColorSpaceXform.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
 
 sk_sp<GrTextureProxy> GrTextureMaker::onRefTextureProxyForParams(const GrSamplerState& params,
                                                                  bool willBeMipped,
diff --git a/src/gpu/GrTextureMaker.h b/src/gpu/GrTextureMaker.h
index 543bbda..61804ba 100644
--- a/src/gpu/GrTextureMaker.h
+++ b/src/gpu/GrTextureMaker.h
@@ -8,7 +8,7 @@
 #ifndef GrTextureMaker_DEFINED
 #define GrTextureMaker_DEFINED
 
-#include "GrTextureProducer.h"
+#include "src/gpu/GrTextureProducer.h"
 
 /**
  * Base class for sources that start out as something other than a texture (encoded image,
diff --git a/src/gpu/GrTextureOpList.cpp b/src/gpu/GrTextureOpList.cpp
index fcd9196..f50f046 100644
--- a/src/gpu/GrTextureOpList.cpp
+++ b/src/gpu/GrTextureOpList.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "GrTextureOpList.h"
+#include "src/gpu/GrTextureOpList.h"
 
-#include "GrAuditTrail.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrMemoryPool.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrResourceAllocator.h"
-#include "GrTextureProxy.h"
-#include "SkStringUtils.h"
-#include "ops/GrCopySurfaceOp.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrAuditTrail.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/core/SkStringUtils.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrResourceAllocator.h"
+#include "src/gpu/ops/GrCopySurfaceOp.h"
 
 ////////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/gpu/GrTextureOpList.h b/src/gpu/GrTextureOpList.h
index a16dd43..987dd2a 100644
--- a/src/gpu/GrTextureOpList.h
+++ b/src/gpu/GrTextureOpList.h
@@ -8,11 +8,11 @@
 #ifndef GrTexureOpList_DEFINED
 #define GrTexureOpList_DEFINED
 
-#include "GrGpuResource.h"
-#include "GrOpList.h"
-#include "GrSurfaceProxy.h"
+#include "include/gpu/GrGpuResource.h"
+#include "include/private/GrOpList.h"
+#include "include/private/GrSurfaceProxy.h"
 
-#include "SkTArray.h"
+#include "include/private/SkTArray.h"
 
 class GrAuditTrail;
 class GrGpu;
diff --git a/src/gpu/GrTexturePriv.h b/src/gpu/GrTexturePriv.h
index ee767bf..fdc848c 100644
--- a/src/gpu/GrTexturePriv.h
+++ b/src/gpu/GrTexturePriv.h
@@ -8,7 +8,7 @@
 #ifndef GrTexturePriv_DEFINED
 #define GrTexturePriv_DEFINED
 
-#include "GrTexture.h"
+#include "include/gpu/GrTexture.h"
 
 /** Class that adds methods to GrTexture that are only intended for use internal to Skia.
     This class is purely a privileged window into GrTexture. It should never have additional data
diff --git a/src/gpu/GrTextureProducer.cpp b/src/gpu/GrTextureProducer.cpp
index b9a952f..c97b110 100644
--- a/src/gpu/GrTextureProducer.cpp
+++ b/src/gpu/GrTextureProducer.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "GrTextureProducer.h"
-#include "GrClip.h"
-#include "GrContextPriv.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrTextureProxy.h"
-#include "SkGr.h"
-#include "SkMipMap.h"
-#include "SkRectPriv.h"
-#include "effects/GrBicubicEffect.h"
-#include "effects/generated/GrSimpleTextureEffect.h"
-#include "effects/GrTextureDomain.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/core/SkMipMap.h"
+#include "src/core/SkRectPriv.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrTextureProducer.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/effects/GrBicubicEffect.h"
+#include "src/gpu/effects/GrTextureDomain.h"
+#include "src/gpu/effects/generated/GrSimpleTextureEffect.h"
 
 sk_sp<GrTextureProxy> GrTextureProducer::CopyOnGpu(GrRecordingContext* context,
                                                    sk_sp<GrTextureProxy> inputProxy,
diff --git a/src/gpu/GrTextureProducer.h b/src/gpu/GrTextureProducer.h
index bdb5859..1cc1c1e 100644
--- a/src/gpu/GrTextureProducer.h
+++ b/src/gpu/GrTextureProducer.h
@@ -8,10 +8,10 @@
 #ifndef GrTextureProducer_DEFINED
 #define GrTextureProducer_DEFINED
 
-#include "GrResourceKey.h"
-#include "GrSamplerState.h"
-#include "SkImageInfo.h"
-#include "SkNoncopyable.h"
+#include "include/core/SkImageInfo.h"
+#include "include/gpu/GrSamplerState.h"
+#include "include/private/GrResourceKey.h"
+#include "include/private/SkNoncopyable.h"
 
 class GrFragmentProcessor;
 class GrRecordingContext;
diff --git a/src/gpu/GrTextureProxy.cpp b/src/gpu/GrTextureProxy.cpp
index 136315e..dea0ac9 100644
--- a/src/gpu/GrTextureProxy.cpp
+++ b/src/gpu/GrTextureProxy.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "GrTextureProxy.h"
-#include "GrTextureProxyPriv.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrTextureProxyPriv.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrDeferredProxyUploader.h"
-#include "GrProxyProvider.h"
-#include "GrSurfacePriv.h"
-#include "GrTexturePriv.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrDeferredProxyUploader.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrSurfacePriv.h"
+#include "src/gpu/GrTexturePriv.h"
 
 // Deferred version - with data
 GrTextureProxy::GrTextureProxy(const GrBackendFormat& format, const GrSurfaceDesc& srcDesc,
diff --git a/src/gpu/GrTextureProxyCacheAccess.h b/src/gpu/GrTextureProxyCacheAccess.h
index 7db7150..0ea372d 100644
--- a/src/gpu/GrTextureProxyCacheAccess.h
+++ b/src/gpu/GrTextureProxyCacheAccess.h
@@ -8,7 +8,7 @@
 #ifndef GrTextureProxyCacheAccess_DEFINED
 #define GrTextureProxyCacheAccess_DEFINED
 
-#include "GrTextureProxy.h"
+#include "include/private/GrTextureProxy.h"
 
 /**
  * This class allows GrResourceCache increased privileged access to GrTextureProxy objects.
diff --git a/src/gpu/GrTextureProxyPriv.h b/src/gpu/GrTextureProxyPriv.h
index e961493..4b8a880 100644
--- a/src/gpu/GrTextureProxyPriv.h
+++ b/src/gpu/GrTextureProxyPriv.h
@@ -8,7 +8,7 @@
 #ifndef GrTextureProxyPriv_DEFINED
 #define GrTextureProxyPriv_DEFINED
 
-#include "GrTextureProxy.h"
+#include "include/private/GrTextureProxy.h"
 
 class GrDeferredProxyUploader;
 class GrOpFlushState;
diff --git a/src/gpu/GrTextureRenderTargetProxy.cpp b/src/gpu/GrTextureRenderTargetProxy.cpp
index 3c2b2c4..b717cce 100644
--- a/src/gpu/GrTextureRenderTargetProxy.cpp
+++ b/src/gpu/GrTextureRenderTargetProxy.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "GrTextureRenderTargetProxy.h"
+#include "src/gpu/GrTextureRenderTargetProxy.h"
 
-#include "GrCaps.h"
-#include "GrTexture.h"
-#include "GrTexturePriv.h"
-#include "GrTextureProxyPriv.h"
-#include "GrRenderTarget.h"
-#include "GrSurfacePriv.h"
-#include "GrSurfaceProxyPriv.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrSurfacePriv.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/GrTextureProxyPriv.h"
 
 // Deferred version
 // This class is virtually derived from GrSurfaceProxy (via both GrTextureProxy and
diff --git a/src/gpu/GrTextureRenderTargetProxy.h b/src/gpu/GrTextureRenderTargetProxy.h
index fc69e2d..87b9c91 100644
--- a/src/gpu/GrTextureRenderTargetProxy.h
+++ b/src/gpu/GrTextureRenderTargetProxy.h
@@ -8,8 +8,8 @@
 #ifndef GrTextureRenderTargetProxy_DEFINED
 #define GrTextureRenderTargetProxy_DEFINED
 
-#include "GrRenderTargetProxy.h"
-#include "GrTextureProxy.h"
+#include "include/private/GrRenderTargetProxy.h"
+#include "include/private/GrTextureProxy.h"
 
 #ifdef SK_BUILD_FOR_WIN
 // Windows gives warnings about inheriting asTextureProxy/asRenderTargetProxy via dominance.
diff --git a/src/gpu/GrTracing.h b/src/gpu/GrTracing.h
index 64adf1d..3ed59ae 100644
--- a/src/gpu/GrTracing.h
+++ b/src/gpu/GrTracing.h
@@ -8,7 +8,7 @@
 #ifndef GrTracing_DEFINED
 #define GrTracing_DEFINED
 
-#include "SkTraceEvent.h"
+#include "src/core/SkTraceEvent.h"
 
 class GrContext;
 
diff --git a/src/gpu/GrUserStencilSettings.h b/src/gpu/GrUserStencilSettings.h
index add8d16..b89a9ec 100644
--- a/src/gpu/GrUserStencilSettings.h
+++ b/src/gpu/GrUserStencilSettings.h
@@ -9,7 +9,7 @@
 #ifndef GrUserStencilSettings_DEFINED
 #define GrUserStencilSettings_DEFINED
 
-#include "GrTypes.h"
+#include "include/gpu/GrTypes.h"
 
 /**
  * Gr uses the stencil buffer to implement complex clipping inside the
diff --git a/src/gpu/GrVertexWriter.h b/src/gpu/GrVertexWriter.h
index de4c78f..10ed9f4 100644
--- a/src/gpu/GrVertexWriter.h
+++ b/src/gpu/GrVertexWriter.h
@@ -8,8 +8,9 @@
 #ifndef GrVertexWriter_DEFINED
 #define GrVertexWriter_DEFINED
 
-#include "GrQuad.h"
-#include "SkTemplates.h"
+#include "include/private/GrColor.h"
+#include "include/private/SkTemplates.h"
+#include "src/gpu/GrQuad.h"
 #include <type_traits>
 
 /**
diff --git a/src/gpu/GrWindowRectangles.h b/src/gpu/GrWindowRectangles.h
index 4a37586..1b6bc4d 100644
--- a/src/gpu/GrWindowRectangles.h
+++ b/src/gpu/GrWindowRectangles.h
@@ -8,8 +8,8 @@
 #ifndef GrWindowRectangles_DEFINED
 #define GrWindowRectangles_DEFINED
 
-#include "GrNonAtomicRef.h"
-#include "SkRect.h"
+#include "include/core/SkRect.h"
+#include "src/gpu/GrNonAtomicRef.h"
 
 class GrWindowRectangles {
 public:
diff --git a/src/gpu/GrWindowRectsState.h b/src/gpu/GrWindowRectsState.h
index bb9c608..59ff938 100644
--- a/src/gpu/GrWindowRectsState.h
+++ b/src/gpu/GrWindowRectsState.h
@@ -8,7 +8,7 @@
 #ifndef GrWindowRectsState_DEFINED
 #define GrWindowRectsState_DEFINED
 
-#include "GrWindowRectangles.h"
+#include "src/gpu/GrWindowRectangles.h"
 
 class GrWindowRectsState {
 public:
diff --git a/src/gpu/GrXferProcessor.cpp b/src/gpu/GrXferProcessor.cpp
index 608bb82..c378e1b 100644
--- a/src/gpu/GrXferProcessor.cpp
+++ b/src/gpu/GrXferProcessor.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrXferProcessor.h"
+#include "src/gpu/GrXferProcessor.h"
 
-#include "GrCaps.h"
-#include "GrPipeline.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrPipeline.h"
 
 GrXferProcessor::GrXferProcessor(ClassID classID)
         : INHERITED(classID)
diff --git a/src/gpu/GrXferProcessor.h b/src/gpu/GrXferProcessor.h
index 008394b..b0fb1e7 100644
--- a/src/gpu/GrXferProcessor.h
+++ b/src/gpu/GrXferProcessor.h
@@ -8,11 +8,11 @@
 #ifndef GrXferProcessor_DEFINED
 #define GrXferProcessor_DEFINED
 
-#include "GrBlend.h"
-#include "GrNonAtomicRef.h"
-#include "GrProcessor.h"
-#include "GrProcessorAnalysis.h"
-#include "GrTypes.h"
+#include "include/gpu/GrBlend.h"
+#include "include/gpu/GrTypes.h"
+#include "src/gpu/GrNonAtomicRef.h"
+#include "src/gpu/GrProcessor.h"
+#include "src/gpu/GrProcessorAnalysis.h"
 
 class GrGLSLXferProcessor;
 class GrProcessorSet;
diff --git a/src/gpu/GrYUVProvider.cpp b/src/gpu/GrYUVProvider.cpp
index 1153742..22cd6fb 100644
--- a/src/gpu/GrYUVProvider.cpp
+++ b/src/gpu/GrYUVProvider.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "GrYUVProvider.h"
+#include "src/gpu/GrYUVProvider.h"
 
-#include "GrCaps.h"
-#include "GrClip.h"
-#include "GrColorSpaceXform.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrTextureProxy.h"
-#include "SkAutoMalloc.h"
-#include "SkCachedData.h"
-#include "SkRefCnt.h"
-#include "SkResourceCache.h"
-#include "SkYUVAIndex.h"
-#include "SkYUVPlanesCache.h"
-#include "effects/GrYUVtoRGBEffect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkYUVAIndex.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkCachedData.h"
+#include "src/core/SkResourceCache.h"
+#include "src/core/SkYUVPlanesCache.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrColorSpaceXform.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/effects/GrYUVtoRGBEffect.h"
 
 sk_sp<SkCachedData> GrYUVProvider::getPlanes(SkYUVASizeInfo* size,
                                              SkYUVAIndex yuvaIndices[SkYUVAIndex::kIndexCount],
diff --git a/src/gpu/GrYUVProvider.h b/src/gpu/GrYUVProvider.h
index e09c37a..adf4ff3 100644
--- a/src/gpu/GrYUVProvider.h
+++ b/src/gpu/GrYUVProvider.h
@@ -8,10 +8,10 @@
 #ifndef GrYUVProvider_DEFINED
 #define GrYUVProvider_DEFINED
 
-#include "GrTypes.h"
-#include "SkImageInfo.h"
-#include "SkYUVAIndex.h"
-#include "SkYUVASizeInfo.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkYUVAIndex.h"
+#include "include/core/SkYUVASizeInfo.h"
+#include "include/gpu/GrTypes.h"
 
 class GrBackendFormat;
 class GrRecordingContext;
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
index c9d70cc..aaa306f 100644
--- a/src/gpu/SkGpuDevice.cpp
+++ b/src/gpu/SkGpuDevice.cpp
@@ -5,51 +5,51 @@
  * found in the LICENSE file.
  */
 
-#include "SkGpuDevice.h"
+#include "src/gpu/SkGpuDevice.h"
 
-#include "../private/SkShadowFlags.h"
-#include "GrBitmapTextureMaker.h"
-#include "GrBlurUtils.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrImageTextureMaker.h"
-#include "GrRenderTargetContextPriv.h"
-#include "GrShape.h"
-#include "GrStyle.h"
-#include "GrSurfaceProxyPriv.h"
-#include "GrTextureAdjuster.h"
-#include "GrTracing.h"
-#include "SkCanvasPriv.h"
-#include "SkClipStack.h"
-#include "SkDraw.h"
-#include "SkGr.h"
-#include "SkImageFilter.h"
-#include "SkImageFilterCache.h"
-#include "SkImageInfoPriv.h"
-#include "SkImage_Base.h"
-#include "SkLatticeIter.h"
-#include "SkMakeUnique.h"
-#include "SkPathEffect.h"
-#include "SkPicture.h"
-#include "SkPictureData.h"
-#include "SkRRectPriv.h"
-#include "SkRasterClip.h"
-#include "SkReadPixelsRec.h"
-#include "SkRecord.h"
-#include "SkSpecialImage.h"
-#include "SkStroke.h"
-#include "SkSurface.h"
-#include "SkSurface_Gpu.h"
-#include "SkTLazy.h"
-#include "SkTo.h"
-#include "SkUTF.h"
-#include "SkVertState.h"
-#include "SkVertices.h"
-#include "SkWritePixelsRec.h"
-#include "effects/GrBicubicEffect.h"
-#include "effects/GrTextureDomain.h"
-#include "text/GrTextTarget.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkVertices.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "include/private/SkShadowFlags.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkCanvasPriv.h"
+#include "src/core/SkClipStack.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkImageFilterCache.h"
+#include "src/core/SkLatticeIter.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkPictureData.h"
+#include "src/core/SkRRectPriv.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkRecord.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkStroke.h"
+#include "src/core/SkTLazy.h"
+#include "src/core/SkVertState.h"
+#include "src/core/SkWritePixelsRec.h"
+#include "src/gpu/GrBitmapTextureMaker.h"
+#include "src/gpu/GrBlurUtils.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrImageTextureMaker.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/GrStyle.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
+#include "src/gpu/GrTextureAdjuster.h"
+#include "src/gpu/GrTracing.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/effects/GrBicubicEffect.h"
+#include "src/gpu/effects/GrTextureDomain.h"
+#include "src/gpu/text/GrTextTarget.h"
+#include "src/image/SkImage_Base.h"
+#include "src/image/SkReadPixelsRec.h"
+#include "src/image/SkSurface_Gpu.h"
+#include "src/utils/SkUTF.h"
 
 #define ASSERT_SINGLE_OWNER \
 SkDEBUGCODE(GrSingleOwner::AutoEnforce debug_SingleOwner(fContext->priv().singleOwner());)
@@ -562,7 +562,7 @@
                                   GrStyle(paint));
 }
 
-#include "SkMaskFilter.h"
+#include "include/core/SkMaskFilter.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 void SkGpuDevice::drawStrokedLine(const SkPoint points[2],
diff --git a/src/gpu/SkGpuDevice.h b/src/gpu/SkGpuDevice.h
index ad0f097..116cf5b 100644
--- a/src/gpu/SkGpuDevice.h
+++ b/src/gpu/SkGpuDevice.h
@@ -8,17 +8,17 @@
 #ifndef SkGpuDevice_DEFINED
 #define SkGpuDevice_DEFINED
 
-#include "GrClipStackClip.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrTypes.h"
-#include "SkBitmap.h"
-#include "SkClipStackDevice.h"
-#include "SkGr.h"
-#include "SkPicture.h"
-#include "SkRegion.h"
-#include "SkSurface.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTypes.h"
+#include "src/core/SkClipStackDevice.h"
+#include "src/gpu/GrClipStackClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/SkGr.h"
 
 class GrAccelData;
 class GrTextureMaker;
diff --git a/src/gpu/SkGpuDevice_drawTexture.cpp b/src/gpu/SkGpuDevice_drawTexture.cpp
index 57de71c..55794be 100644
--- a/src/gpu/SkGpuDevice_drawTexture.cpp
+++ b/src/gpu/SkGpuDevice_drawTexture.cpp
@@ -5,26 +5,26 @@
  * found in the LICENSE file.
  */
 
-#include "SkGpuDevice.h"
+#include "src/gpu/SkGpuDevice.h"
 
-#include "GrBitmapTextureMaker.h"
-#include "GrBlurUtils.h"
-#include "GrCaps.h"
-#include "GrColorSpaceXform.h"
-#include "GrImageTextureMaker.h"
-#include "GrRenderTargetContext.h"
-#include "GrShape.h"
-#include "GrStyle.h"
-#include "GrTextureAdjuster.h"
-#include "GrTextureMaker.h"
-#include "SkDraw.h"
-#include "SkGr.h"
-#include "SkImage_Base.h"
-#include "SkMaskFilterBase.h"
-#include "SkYUVAIndex.h"
-#include "effects/GrBicubicEffect.h"
-#include "effects/generated/GrSimpleTextureEffect.h"
-#include "effects/GrTextureDomain.h"
+#include "include/core/SkYUVAIndex.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkMaskFilterBase.h"
+#include "src/gpu/GrBitmapTextureMaker.h"
+#include "src/gpu/GrBlurUtils.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrColorSpaceXform.h"
+#include "src/gpu/GrImageTextureMaker.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/GrStyle.h"
+#include "src/gpu/GrTextureAdjuster.h"
+#include "src/gpu/GrTextureMaker.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/effects/GrBicubicEffect.h"
+#include "src/gpu/effects/GrTextureDomain.h"
+#include "src/gpu/effects/generated/GrSimpleTextureEffect.h"
+#include "src/image/SkImage_Base.h"
 
 namespace {
 
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp
index ac195bb..40c9196 100644
--- a/src/gpu/SkGr.cpp
+++ b/src/gpu/SkGr.cpp
@@ -5,42 +5,42 @@
  * found in the LICENSE file.
  */
 
-#include "SkGr.h"
-#include "GrBitmapTextureMaker.h"
-#include "GrCaps.h"
-#include "GrColorSpaceXform.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpuResourcePriv.h"
-#include "GrPaint.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrTextureProxy.h"
-#include "GrTypes.h"
-#include "GrXferProcessor.h"
-#include "SkAutoMalloc.h"
-#include "SkBlendModePriv.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkData.h"
-#include "SkImage_Base.h"
-#include "SkImageInfoPriv.h"
-#include "SkImagePriv.h"
-#include "SkMaskFilterBase.h"
-#include "SkMessageBus.h"
-#include "SkMipMap.h"
-#include "SkPaintPriv.h"
-#include "SkPixelRef.h"
-#include "SkResourceCache.h"
-#include "SkShaderBase.h"
-#include "SkTemplates.h"
-#include "SkTraceEvent.h"
-#include "effects/GrBicubicEffect.h"
-#include "effects/generated/GrConstColorProcessor.h"
-#include "effects/GrPorterDuffXferProcessor.h"
-#include "effects/GrXfermodeFragmentProcessor.h"
-#include "effects/GrSkSLFP.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkData.h"
+#include "include/core/SkPixelRef.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "include/private/SkMessageBus.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkBlendModePriv.h"
+#include "src/core/SkImagePriv.h"
+#include "src/core/SkMaskFilterBase.h"
+#include "src/core/SkMipMap.h"
+#include "src/core/SkPaintPriv.h"
+#include "src/core/SkResourceCache.h"
+#include "src/core/SkTraceEvent.h"
+#include "src/gpu/GrBitmapTextureMaker.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrColorSpaceXform.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/GrPaint.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrXferProcessor.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/effects/GrBicubicEffect.h"
+#include "src/gpu/effects/GrPorterDuffXferProcessor.h"
+#include "src/gpu/effects/GrSkSLFP.h"
+#include "src/gpu/effects/GrXfermodeFragmentProcessor.h"
+#include "src/gpu/effects/generated/GrConstColorProcessor.h"
+#include "src/image/SkImage_Base.h"
+#include "src/shaders/SkShaderBase.h"
 
 #if SK_SUPPORT_GPU
 GR_FP_SRC_STRING SKSL_DITHER_SRC = R"(
diff --git a/src/gpu/SkGr.h b/src/gpu/SkGr.h
index 824c06b..f9e32c6 100644
--- a/src/gpu/SkGr.h
+++ b/src/gpu/SkGr.h
@@ -8,19 +8,19 @@
 #ifndef SkGr_DEFINED
 #define SkGr_DEFINED
 
-#include "GrBlend.h"
-#include "GrCaps.h"
-#include "GrColor.h"
-#include "GrSamplerState.h"
-#include "GrTypes.h"
-#include "SkBlendModePriv.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkColorData.h"
-#include "SkFilterQuality.h"
-#include "SkImageInfo.h"
-#include "SkMatrix.h"
-#include "SkVertices.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkFilterQuality.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkVertices.h"
+#include "include/gpu/GrBlend.h"
+#include "include/gpu/GrSamplerState.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/GrColor.h"
+#include "include/private/SkColorData.h"
+#include "src/core/SkBlendModePriv.h"
+#include "src/gpu/GrCaps.h"
 
 class GrCaps;
 class GrColorSpaceInfo;
diff --git a/src/gpu/ccpr/GrCCAtlas.cpp b/src/gpu/ccpr/GrCCAtlas.cpp
index 4e9e4e3..c3c8ed6 100644
--- a/src/gpu/ccpr/GrCCAtlas.cpp
+++ b/src/gpu/ccpr/GrCCAtlas.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "GrCCAtlas.h"
+#include "src/gpu/ccpr/GrCCAtlas.h"
 
-#include "GrCaps.h"
-#include "GrOnFlushResourceProvider.h"
-#include "GrProxyProvider.h"
-#include "GrRectanizer_skyline.h"
-#include "GrRenderTargetContext.h"
-#include "GrTexture.h"
-#include "GrTextureProxy.h"
-#include "SkIPoint16.h"
-#include "SkMakeUnique.h"
-#include "SkMathPriv.h"
-#include "ccpr/GrCCPathCache.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/core/SkIPoint16.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkMathPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrOnFlushResourceProvider.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRectanizer_skyline.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/ccpr/GrCCPathCache.h"
 #include <atomic>
 
 class GrCCAtlas::Node {
diff --git a/src/gpu/ccpr/GrCCAtlas.h b/src/gpu/ccpr/GrCCAtlas.h
index 03eed8c..f004cbf 100644
--- a/src/gpu/ccpr/GrCCAtlas.h
+++ b/src/gpu/ccpr/GrCCAtlas.h
@@ -8,12 +8,12 @@
 #ifndef GrCCAtlas_DEFINED
 #define GrCCAtlas_DEFINED
 
-#include "GrAllocator.h"
-#include "GrNonAtomicRef.h"
-#include "GrResourceKey.h"
-#include "GrTexture.h"
-#include "SkRefCnt.h"
-#include "SkSize.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSize.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrResourceKey.h"
+#include "src/gpu/GrAllocator.h"
+#include "src/gpu/GrNonAtomicRef.h"
 
 class GrCCCachedAtlas;
 class GrOnFlushResourceProvider;
diff --git a/src/gpu/ccpr/GrCCClipPath.cpp b/src/gpu/ccpr/GrCCClipPath.cpp
index 4c82fb1..ca45ade 100644
--- a/src/gpu/ccpr/GrCCClipPath.cpp
+++ b/src/gpu/ccpr/GrCCClipPath.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "GrCCClipPath.h"
+#include "include/private/GrCCClipPath.h"
 
-#include "GrOnFlushResourceProvider.h"
-#include "GrProxyProvider.h"
-#include "GrTexture.h"
-#include "ccpr/GrCCPerFlushResources.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrOnFlushResourceProvider.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/ccpr/GrCCPerFlushResources.h"
 
 void GrCCClipPath::init(const SkPath& deviceSpacePath, const SkIRect& accessRect, int rtWidth,
                         int rtHeight, const GrCaps& caps) {
diff --git a/src/gpu/ccpr/GrCCClipProcessor.cpp b/src/gpu/ccpr/GrCCClipProcessor.cpp
index c43814b..dbfcc04 100644
--- a/src/gpu/ccpr/GrCCClipProcessor.cpp
+++ b/src/gpu/ccpr/GrCCClipProcessor.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrCCClipProcessor.h"
+#include "src/gpu/ccpr/GrCCClipProcessor.h"
 
-#include "GrCCClipPath.h"
-#include "GrTexture.h"
-#include "GrTextureProxy.h"
-#include "SkMakeUnique.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrCCClipPath.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
 
 GrCCClipProcessor::GrCCClipProcessor(const GrCCClipPath* clipPath, MustCheckBounds mustCheckBounds,
                                      SkPath::FillType overrideFillType)
diff --git a/src/gpu/ccpr/GrCCClipProcessor.h b/src/gpu/ccpr/GrCCClipProcessor.h
index 802f337..da4472e 100644
--- a/src/gpu/ccpr/GrCCClipProcessor.h
+++ b/src/gpu/ccpr/GrCCClipProcessor.h
@@ -8,7 +8,7 @@
 #ifndef GrCCClipProcessor_DEFINED
 #define GrCCClipProcessor_DEFINED
 
-#include "GrFragmentProcessor.h"
+#include "src/gpu/GrFragmentProcessor.h"
 
 class GrCCClipPath;
 
diff --git a/src/gpu/ccpr/GrCCConicShader.cpp b/src/gpu/ccpr/GrCCConicShader.cpp
index 3d5a6c0..cfd4eec 100644
--- a/src/gpu/ccpr/GrCCConicShader.cpp
+++ b/src/gpu/ccpr/GrCCConicShader.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrCCConicShader.h"
+#include "src/gpu/ccpr/GrCCConicShader.h"
 
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 void GrCCConicShader::emitSetupCode(
         GrGLSLVertexGeoBuilder* s, const char* pts, const char** outHull4) const {
diff --git a/src/gpu/ccpr/GrCCConicShader.h b/src/gpu/ccpr/GrCCConicShader.h
index 2ae3ac5..508b0ad 100644
--- a/src/gpu/ccpr/GrCCConicShader.h
+++ b/src/gpu/ccpr/GrCCConicShader.h
@@ -8,7 +8,7 @@
 #ifndef GrCCConicShader_DEFINED
 #define GrCCConicShader_DEFINED
 
-#include "ccpr/GrCCCoverageProcessor.h"
+#include "src/gpu/ccpr/GrCCCoverageProcessor.h"
 
 /**
  * This class renders the coverage of closed conic curves using the techniques outlined in
diff --git a/src/gpu/ccpr/GrCCCoverageProcessor.cpp b/src/gpu/ccpr/GrCCCoverageProcessor.cpp
index 06d2003..9075e52 100644
--- a/src/gpu/ccpr/GrCCCoverageProcessor.cpp
+++ b/src/gpu/ccpr/GrCCCoverageProcessor.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "GrCCCoverageProcessor.h"
+#include "src/gpu/ccpr/GrCCCoverageProcessor.h"
 
-#include "GrGpuCommandBuffer.h"
-#include "GrOpFlushState.h"
-#include "SkMakeUnique.h"
-#include "ccpr/GrCCConicShader.h"
-#include "ccpr/GrCCCubicShader.h"
-#include "ccpr/GrCCQuadraticShader.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/ccpr/GrCCConicShader.h"
+#include "src/gpu/ccpr/GrCCCubicShader.h"
+#include "src/gpu/ccpr/GrCCQuadraticShader.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 class GrCCCoverageProcessor::TriangleShader : public GrCCCoverageProcessor::Shader {
     void onEmitVaryings(
diff --git a/src/gpu/ccpr/GrCCCoverageProcessor.h b/src/gpu/ccpr/GrCCCoverageProcessor.h
index a7068a4..e652a7c 100644
--- a/src/gpu/ccpr/GrCCCoverageProcessor.h
+++ b/src/gpu/ccpr/GrCCCoverageProcessor.h
@@ -8,13 +8,13 @@
 #ifndef GrCCCoverageProcessor_DEFINED
 #define GrCCCoverageProcessor_DEFINED
 
-#include "GrCaps.h"
-#include "GrGeometryProcessor.h"
-#include "GrPipeline.h"
-#include "GrShaderCaps.h"
-#include "SkNx.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLVarying.h"
+#include "include/private/SkNx.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
 
 class GrGLSLFPFragmentBuilder;
 class GrGLSLVertexGeoBuilder;
diff --git a/src/gpu/ccpr/GrCCCubicShader.cpp b/src/gpu/ccpr/GrCCCubicShader.cpp
index 7480b3e..2a2d5ef 100644
--- a/src/gpu/ccpr/GrCCCubicShader.cpp
+++ b/src/gpu/ccpr/GrCCCubicShader.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrCCCubicShader.h"
+#include "src/gpu/ccpr/GrCCCubicShader.h"
 
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 using Shader = GrCCCoverageProcessor::Shader;
 
diff --git a/src/gpu/ccpr/GrCCCubicShader.h b/src/gpu/ccpr/GrCCCubicShader.h
index 01c60cb..220aca1 100644
--- a/src/gpu/ccpr/GrCCCubicShader.h
+++ b/src/gpu/ccpr/GrCCCubicShader.h
@@ -8,7 +8,7 @@
 #ifndef GrCCCubicShader_DEFINED
 #define GrCCCubicShader_DEFINED
 
-#include "ccpr/GrCCCoverageProcessor.h"
+#include "src/gpu/ccpr/GrCCCoverageProcessor.h"
 
 /**
  * This class renders the coverage of convex closed cubic segments using the techniques outlined in
diff --git a/src/gpu/ccpr/GrCCDrawPathsOp.cpp b/src/gpu/ccpr/GrCCDrawPathsOp.cpp
index d16bff5..0c5002e 100644
--- a/src/gpu/ccpr/GrCCDrawPathsOp.cpp
+++ b/src/gpu/ccpr/GrCCDrawPathsOp.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "GrCCDrawPathsOp.h"
+#include "src/gpu/ccpr/GrCCDrawPathsOp.h"
 
-#include "GrMemoryPool.h"
-#include "GrOpFlushState.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "ccpr/GrCCPathCache.h"
-#include "ccpr/GrCCPerFlushResources.h"
-#include "ccpr/GrCoverageCountingPathRenderer.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/ccpr/GrCCPathCache.h"
+#include "src/gpu/ccpr/GrCCPerFlushResources.h"
+#include "src/gpu/ccpr/GrCoverageCountingPathRenderer.h"
 
 static bool has_coord_transforms(const GrPaint& paint) {
     GrFragmentProcessor::Iter iter(paint);
diff --git a/src/gpu/ccpr/GrCCDrawPathsOp.h b/src/gpu/ccpr/GrCCDrawPathsOp.h
index 6984a5d..46d03c9 100644
--- a/src/gpu/ccpr/GrCCDrawPathsOp.h
+++ b/src/gpu/ccpr/GrCCDrawPathsOp.h
@@ -8,11 +8,11 @@
 #ifndef GrCCDrawPathsOp_DEFINED
 #define GrCCDrawPathsOp_DEFINED
 
-#include "GrShape.h"
-#include "SkTInternalLList.h"
-#include "ccpr/GrCCSTLList.h"
-#include "ccpr/GrCCPathCache.h"
-#include "ops/GrDrawOp.h"
+#include "include/private/SkTInternalLList.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/ccpr/GrCCPathCache.h"
+#include "src/gpu/ccpr/GrCCSTLList.h"
+#include "src/gpu/ops/GrDrawOp.h"
 
 class GrCCAtlas;
 class GrCCPerFlushResources;
diff --git a/src/gpu/ccpr/GrCCFillGeometry.cpp b/src/gpu/ccpr/GrCCFillGeometry.cpp
index 81692cf..75b7fd0 100644
--- a/src/gpu/ccpr/GrCCFillGeometry.cpp
+++ b/src/gpu/ccpr/GrCCFillGeometry.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrCCFillGeometry.h"
+#include "src/gpu/ccpr/GrCCFillGeometry.h"
 
-#include "GrTypes.h"
-#include "SkGeometry.h"
+#include "include/gpu/GrTypes.h"
+#include "src/core/SkGeometry.h"
 #include <algorithm>
 #include <cmath>
 #include <cstdlib>
diff --git a/src/gpu/ccpr/GrCCFillGeometry.h b/src/gpu/ccpr/GrCCFillGeometry.h
index df817db..d0a3c1e 100644
--- a/src/gpu/ccpr/GrCCFillGeometry.h
+++ b/src/gpu/ccpr/GrCCFillGeometry.h
@@ -8,10 +8,10 @@
 #ifndef GrGrCCFillGeometry_DEFINED
 #define GrGrCCFillGeometry_DEFINED
 
-#include "SkGeometry.h"
-#include "SkNx.h"
-#include "SkPoint.h"
-#include "SkTArray.h"
+#include "include/core/SkPoint.h"
+#include "include/private/SkNx.h"
+#include "include/private/SkTArray.h"
+#include "src/core/SkGeometry.h"
 
 /**
  * This class chops device-space contours up into a series of segments that CCPR knows how to
diff --git a/src/gpu/ccpr/GrCCFiller.cpp b/src/gpu/ccpr/GrCCFiller.cpp
index 7facd59..a73dfa7 100644
--- a/src/gpu/ccpr/GrCCFiller.cpp
+++ b/src/gpu/ccpr/GrCCFiller.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "GrCCFiller.h"
+#include "src/gpu/ccpr/GrCCFiller.h"
 
-#include "GrCaps.h"
-#include "GrGpuCommandBuffer.h"
-#include "GrOnFlushResourceProvider.h"
-#include "GrOpFlushState.h"
-#include "SkMathPriv.h"
-#include "SkPath.h"
-#include "SkPathPriv.h"
-#include "SkPoint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint.h"
+#include "src/core/SkMathPriv.h"
+#include "src/core/SkPathPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
+#include "src/gpu/GrOnFlushResourceProvider.h"
+#include "src/gpu/GrOpFlushState.h"
 #include <stdlib.h>
 
 using TriPointInstance = GrCCCoverageProcessor::TriPointInstance;
diff --git a/src/gpu/ccpr/GrCCFiller.h b/src/gpu/ccpr/GrCCFiller.h
index 4d61a2e..1c1fe2b 100644
--- a/src/gpu/ccpr/GrCCFiller.h
+++ b/src/gpu/ccpr/GrCCFiller.h
@@ -8,14 +8,14 @@
 #ifndef GrCCPathParser_DEFINED
 #define GrCCPathParser_DEFINED
 
-#include "GrMesh.h"
-#include "SkPathPriv.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "GrTessellator.h"
-#include "ccpr/GrCCCoverageProcessor.h"
-#include "ccpr/GrCCFillGeometry.h"
-#include "ops/GrDrawOp.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "src/core/SkPathPriv.h"
+#include "src/gpu/GrMesh.h"
+#include "src/gpu/GrTessellator.h"
+#include "src/gpu/ccpr/GrCCCoverageProcessor.h"
+#include "src/gpu/ccpr/GrCCFillGeometry.h"
+#include "src/gpu/ops/GrDrawOp.h"
 
 class GrOnFlushResourceProvider;
 class SkMatrix;
diff --git a/src/gpu/ccpr/GrCCPathCache.cpp b/src/gpu/ccpr/GrCCPathCache.cpp
index 1342431..4ca0845 100644
--- a/src/gpu/ccpr/GrCCPathCache.cpp
+++ b/src/gpu/ccpr/GrCCPathCache.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrCCPathCache.h"
+#include "src/gpu/ccpr/GrCCPathCache.h"
 
-#include "GrOnFlushResourceProvider.h"
-#include "GrProxyProvider.h"
-#include "SkNx.h"
+#include "include/private/SkNx.h"
+#include "src/gpu/GrOnFlushResourceProvider.h"
+#include "src/gpu/GrProxyProvider.h"
 
 static constexpr int kMaxKeyDataCountU32 = 256;  // 1kB of uint32_t's.
 
diff --git a/src/gpu/ccpr/GrCCPathCache.h b/src/gpu/ccpr/GrCCPathCache.h
index 688521b..c674d62 100644
--- a/src/gpu/ccpr/GrCCPathCache.h
+++ b/src/gpu/ccpr/GrCCPathCache.h
@@ -8,12 +8,12 @@
 #ifndef GrCCPathCache_DEFINED
 #define GrCCPathCache_DEFINED
 
-#include "GrShape.h"
-#include "SkExchange.h"
-#include "SkTHash.h"
-#include "SkTInternalLList.h"
-#include "ccpr/GrCCAtlas.h"
-#include "ccpr/GrCCPathProcessor.h"
+#include "include/private/SkTHash.h"
+#include "include/private/SkTInternalLList.h"
+#include "src/core/SkExchange.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/ccpr/GrCCAtlas.h"
+#include "src/gpu/ccpr/GrCCPathProcessor.h"
 
 class GrCCPathCacheEntry;
 class GrShape;
diff --git a/src/gpu/ccpr/GrCCPathProcessor.cpp b/src/gpu/ccpr/GrCCPathProcessor.cpp
index 852875e..5ea9755 100644
--- a/src/gpu/ccpr/GrCCPathProcessor.cpp
+++ b/src/gpu/ccpr/GrCCPathProcessor.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "GrCCPathProcessor.h"
+#include "src/gpu/ccpr/GrCCPathProcessor.h"
 
-#include "GrGpuCommandBuffer.h"
-#include "GrOnFlushResourceProvider.h"
-#include "GrTexture.h"
-#include "ccpr/GrCCPerFlushResources.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "glsl/GrGLSLVarying.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
+#include "src/gpu/GrOnFlushResourceProvider.h"
+#include "src/gpu/ccpr/GrCCPerFlushResources.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
 
 // Paths are drawn as octagons. Each point on the octagon is the intersection of two lines: one edge
 // from the path's bounding box and one edge from its 45-degree bounding box. The selectors
diff --git a/src/gpu/ccpr/GrCCPathProcessor.h b/src/gpu/ccpr/GrCCPathProcessor.h
index 3143819..0e2a22d 100644
--- a/src/gpu/ccpr/GrCCPathProcessor.h
+++ b/src/gpu/ccpr/GrCCPathProcessor.h
@@ -9,10 +9,10 @@
 #define GrCCPathProcessor_DEFINED
 
 #include <array>
-#include "GrCaps.h"
-#include "GrGeometryProcessor.h"
-#include "GrPipeline.h"
-#include "SkPath.h"
+#include "include/core/SkPath.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrPipeline.h"
 
 class GrCCPathCacheEntry;
 class GrCCPerFlushResources;
diff --git a/src/gpu/ccpr/GrCCPerFlushResources.cpp b/src/gpu/ccpr/GrCCPerFlushResources.cpp
index 5b612be..ffec7fb 100644
--- a/src/gpu/ccpr/GrCCPerFlushResources.cpp
+++ b/src/gpu/ccpr/GrCCPerFlushResources.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "GrCCPerFlushResources.h"
+#include "src/gpu/ccpr/GrCCPerFlushResources.h"
 
-#include "GrClip.h"
-#include "GrMemoryPool.h"
-#include "GrOnFlushResourceProvider.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrShape.h"
-#include "GrSurfaceContextPriv.h"
-#include "SkMakeUnique.h"
-#include "ccpr/GrCCPathCache.h"
-#include "ccpr/GrGSCoverageProcessor.h"
-#include "ccpr/GrVSCoverageProcessor.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOnFlushResourceProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/GrSurfaceContextPriv.h"
+#include "src/gpu/ccpr/GrCCPathCache.h"
+#include "src/gpu/ccpr/GrGSCoverageProcessor.h"
+#include "src/gpu/ccpr/GrVSCoverageProcessor.h"
 
 using FillBatchID = GrCCFiller::BatchID;
 using StrokeBatchID = GrCCStroker::BatchID;
diff --git a/src/gpu/ccpr/GrCCPerFlushResources.h b/src/gpu/ccpr/GrCCPerFlushResources.h
index d507787..b005a3b 100644
--- a/src/gpu/ccpr/GrCCPerFlushResources.h
+++ b/src/gpu/ccpr/GrCCPerFlushResources.h
@@ -8,11 +8,11 @@
 #ifndef GrCCPerFlushResources_DEFINED
 #define GrCCPerFlushResources_DEFINED
 
-#include "GrNonAtomicRef.h"
-#include "ccpr/GrCCAtlas.h"
-#include "ccpr/GrCCFiller.h"
-#include "ccpr/GrCCStroker.h"
-#include "ccpr/GrCCPathProcessor.h"
+#include "src/gpu/GrNonAtomicRef.h"
+#include "src/gpu/ccpr/GrCCAtlas.h"
+#include "src/gpu/ccpr/GrCCFiller.h"
+#include "src/gpu/ccpr/GrCCPathProcessor.h"
+#include "src/gpu/ccpr/GrCCStroker.h"
 
 class GrCCPathCache;
 class GrCCPathCacheEntry;
diff --git a/src/gpu/ccpr/GrCCQuadraticShader.cpp b/src/gpu/ccpr/GrCCQuadraticShader.cpp
index cf9f9ec..5ad7d55 100644
--- a/src/gpu/ccpr/GrCCQuadraticShader.cpp
+++ b/src/gpu/ccpr/GrCCQuadraticShader.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrCCQuadraticShader.h"
+#include "src/gpu/ccpr/GrCCQuadraticShader.h"
 
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 void GrCCQuadraticShader::emitSetupCode(
         GrGLSLVertexGeoBuilder* s, const char* pts, const char** outHull4) const {
diff --git a/src/gpu/ccpr/GrCCQuadraticShader.h b/src/gpu/ccpr/GrCCQuadraticShader.h
index bfe2cb0..3c0a0ff 100644
--- a/src/gpu/ccpr/GrCCQuadraticShader.h
+++ b/src/gpu/ccpr/GrCCQuadraticShader.h
@@ -8,7 +8,7 @@
 #ifndef GrCCQuadraticShader_DEFINED
 #define GrCCQuadraticShader_DEFINED
 
-#include "ccpr/GrCCCoverageProcessor.h"
+#include "src/gpu/ccpr/GrCCCoverageProcessor.h"
 
 /**
  * This class renders the coverage of closed quadratic curves using the techniques outlined in
diff --git a/src/gpu/ccpr/GrCCSTLList.h b/src/gpu/ccpr/GrCCSTLList.h
index 470e07e..ef81104 100644
--- a/src/gpu/ccpr/GrCCSTLList.h
+++ b/src/gpu/ccpr/GrCCSTLList.h
@@ -8,8 +8,8 @@
 #ifndef GrCCSTLList_DEFINED
 #define GrCCSTLList_DEFINED
 
-#include "SkArenaAlloc.h"
-#include "SkNoncopyable.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkNoncopyable.h"
 #include <new>
 
 /**
diff --git a/src/gpu/ccpr/GrCCStrokeGeometry.cpp b/src/gpu/ccpr/GrCCStrokeGeometry.cpp
index ec626b0..dd6fdf0 100644
--- a/src/gpu/ccpr/GrCCStrokeGeometry.cpp
+++ b/src/gpu/ccpr/GrCCStrokeGeometry.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "GrCCStrokeGeometry.h"
+#include "src/gpu/ccpr/GrCCStrokeGeometry.h"
 
-#include "SkGeometry.h"
-#include "SkMathPriv.h"
-#include "SkNx.h"
-#include "SkStrokeRec.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/private/SkNx.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkMathPriv.h"
 
 // This is the maximum distance in pixels that we can stray from the edge of a stroke when
 // converting it to flat line segments.
diff --git a/src/gpu/ccpr/GrCCStrokeGeometry.h b/src/gpu/ccpr/GrCCStrokeGeometry.h
index 56871f2..137fe68 100644
--- a/src/gpu/ccpr/GrCCStrokeGeometry.h
+++ b/src/gpu/ccpr/GrCCStrokeGeometry.h
@@ -8,9 +8,9 @@
 #ifndef GrGrCCStrokeGeometry_DEFINED
 #define GrGrCCStrokeGeometry_DEFINED
 
-#include "SkPaint.h"
-#include "SkPoint.h"
-#include "SkTArray.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPoint.h"
+#include "include/private/SkTArray.h"
 
 class SkStrokeRec;
 
diff --git a/src/gpu/ccpr/GrCCStroker.cpp b/src/gpu/ccpr/GrCCStroker.cpp
index 97ef8d2..1f21719 100644
--- a/src/gpu/ccpr/GrCCStroker.cpp
+++ b/src/gpu/ccpr/GrCCStroker.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "GrCCStroker.h"
+#include "src/gpu/ccpr/GrCCStroker.h"
 
-#include "GrGpuCommandBuffer.h"
-#include "GrOnFlushResourceProvider.h"
-#include "SkPathPriv.h"
-#include "SkStrokeRec.h"
-#include "ccpr/GrCCCoverageProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
+#include "include/core/SkStrokeRec.h"
+#include "src/core/SkPathPriv.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
+#include "src/gpu/GrOnFlushResourceProvider.h"
+#include "src/gpu/ccpr/GrCCCoverageProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 static constexpr int kMaxNumLinearSegmentsLog2 = GrCCStrokeGeometry::kMaxNumLinearSegmentsLog2;
 using TriangleInstance = GrCCCoverageProcessor::TriPointInstance;
diff --git a/src/gpu/ccpr/GrCCStroker.h b/src/gpu/ccpr/GrCCStroker.h
index 741f265..985ac38 100644
--- a/src/gpu/ccpr/GrCCStroker.h
+++ b/src/gpu/ccpr/GrCCStroker.h
@@ -8,10 +8,10 @@
 #ifndef GrCCStroker_DEFINED
 #define GrCCStroker_DEFINED
 
-#include "GrAllocator.h"
-#include "GrMesh.h"
-#include "SkNx.h"
-#include "ccpr/GrCCStrokeGeometry.h"
+#include "include/private/SkNx.h"
+#include "src/gpu/GrAllocator.h"
+#include "src/gpu/GrMesh.h"
+#include "src/gpu/ccpr/GrCCStrokeGeometry.h"
 
 class GrGpuBuffer;
 class GrCCCoverageProcessor;
diff --git a/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp b/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp
index c31af4f..95d27c6 100644
--- a/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp
+++ b/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "GrCoverageCountingPathRenderer.h"
+#include "src/gpu/ccpr/GrCoverageCountingPathRenderer.h"
 
-#include "GrCaps.h"
-#include "GrClip.h"
-#include "GrProxyProvider.h"
-#include "SkMakeUnique.h"
-#include "SkPathOps.h"
-#include "ccpr/GrCCClipProcessor.h"
-#include "ccpr/GrCCDrawPathsOp.h"
-#include "ccpr/GrCCPathCache.h"
+#include "include/pathops/SkPathOps.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/ccpr/GrCCClipProcessor.h"
+#include "src/gpu/ccpr/GrCCDrawPathsOp.h"
+#include "src/gpu/ccpr/GrCCPathCache.h"
 
 using PathInstance = GrCCPathProcessor::Instance;
 
diff --git a/src/gpu/ccpr/GrCoverageCountingPathRenderer.h b/src/gpu/ccpr/GrCoverageCountingPathRenderer.h
index b5fb321..83ecc8d 100644
--- a/src/gpu/ccpr/GrCoverageCountingPathRenderer.h
+++ b/src/gpu/ccpr/GrCoverageCountingPathRenderer.h
@@ -9,11 +9,11 @@
 #define GrCoverageCountingPathRenderer_DEFINED
 
 #include <map>
-#include "GrCCPerOpListPaths.h"
-#include "GrOnFlushResourceProvider.h"
-#include "GrPathRenderer.h"
-#include "GrRenderTargetOpList.h"
-#include "ccpr/GrCCPerFlushResources.h"
+#include "include/private/GrCCPerOpListPaths.h"
+#include "src/gpu/GrOnFlushResourceProvider.h"
+#include "src/gpu/GrPathRenderer.h"
+#include "src/gpu/GrRenderTargetOpList.h"
+#include "src/gpu/ccpr/GrCCPerFlushResources.h"
 
 class GrCCDrawPathsOp;
 class GrCCPathCache;
diff --git a/src/gpu/ccpr/GrCoverageCountingPathRenderer_none.cpp b/src/gpu/ccpr/GrCoverageCountingPathRenderer_none.cpp
index 5de32aa..1db2f1a 100644
--- a/src/gpu/ccpr/GrCoverageCountingPathRenderer_none.cpp
+++ b/src/gpu/ccpr/GrCoverageCountingPathRenderer_none.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "GrCoverageCountingPathRenderer.h"
+#include "src/gpu/ccpr/GrCoverageCountingPathRenderer.h"
 
 bool GrCoverageCountingPathRenderer::IsSupported(const GrCaps& caps) {
     return false;
diff --git a/src/gpu/ccpr/GrGSCoverageProcessor.cpp b/src/gpu/ccpr/GrGSCoverageProcessor.cpp
index 6f9b7dd..9ae1856 100644
--- a/src/gpu/ccpr/GrGSCoverageProcessor.cpp
+++ b/src/gpu/ccpr/GrGSCoverageProcessor.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrGSCoverageProcessor.h"
+#include "src/gpu/ccpr/GrGSCoverageProcessor.h"
 
-#include "GrMesh.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
+#include "src/gpu/GrMesh.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 using InputType = GrGLSLGeometryBuilder::InputType;
 using OutputType = GrGLSLGeometryBuilder::OutputType;
diff --git a/src/gpu/ccpr/GrGSCoverageProcessor.h b/src/gpu/ccpr/GrGSCoverageProcessor.h
index f517765..2e3f7dc 100644
--- a/src/gpu/ccpr/GrGSCoverageProcessor.h
+++ b/src/gpu/ccpr/GrGSCoverageProcessor.h
@@ -8,7 +8,7 @@
 #ifndef GrGSCoverageProcessor_DEFINED
 #define GrGSCoverageProcessor_DEFINED
 
-#include "ccpr/GrCCCoverageProcessor.h"
+#include "src/gpu/ccpr/GrCCCoverageProcessor.h"
 
 /**
  * This class implements GrCCCoverageProcessor with analytic coverage using geometry shaders.
diff --git a/src/gpu/ccpr/GrVSCoverageProcessor.cpp b/src/gpu/ccpr/GrVSCoverageProcessor.cpp
index aa87dd7..1773bec 100644
--- a/src/gpu/ccpr/GrVSCoverageProcessor.cpp
+++ b/src/gpu/ccpr/GrVSCoverageProcessor.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrVSCoverageProcessor.h"
+#include "src/gpu/ccpr/GrVSCoverageProcessor.h"
 
-#include "GrMesh.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
+#include "src/gpu/GrMesh.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 // This class implements the coverage processor with vertex shaders.
 class GrVSCoverageProcessor::Impl : public GrGLSLGeometryProcessor {
diff --git a/src/gpu/ccpr/GrVSCoverageProcessor.h b/src/gpu/ccpr/GrVSCoverageProcessor.h
index e278548..6f4ce45 100644
--- a/src/gpu/ccpr/GrVSCoverageProcessor.h
+++ b/src/gpu/ccpr/GrVSCoverageProcessor.h
@@ -8,7 +8,7 @@
 #ifndef GrVSCoverageProcessor_DEFINED
 #define GrVSCoverageProcessor_DEFINED
 
-#include "ccpr/GrCCCoverageProcessor.h"
+#include "src/gpu/ccpr/GrCCCoverageProcessor.h"
 
 /**
  * This class implements GrCCCoverageProcessor with analytic coverage using vertex shaders.
diff --git a/src/gpu/effects/GrAtlasedShaderHelpers.h b/src/gpu/effects/GrAtlasedShaderHelpers.h
index a7d445a..94b6f98 100644
--- a/src/gpu/effects/GrAtlasedShaderHelpers.h
+++ b/src/gpu/effects/GrAtlasedShaderHelpers.h
@@ -8,11 +8,11 @@
 #ifndef GrAtlasedShaderHelpers_DEFINED
 #define GrAtlasedShaderHelpers_DEFINED
 
-#include "GrShaderCaps.h"
-#include "glsl/GrGLSLPrimitiveProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLVarying.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLPrimitiveProcessor.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 static void append_index_uv_varyings(GrGLSLPrimitiveProcessor::EmitArgs& args,
                                      const char* inTexCoordsName,
diff --git a/src/gpu/effects/GrBezierEffect.cpp b/src/gpu/effects/GrBezierEffect.cpp
index 64ffbd2..7c9e5f0 100644
--- a/src/gpu/effects/GrBezierEffect.cpp
+++ b/src/gpu/effects/GrBezierEffect.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "GrBezierEffect.h"
-#include "GrShaderCaps.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
-#include "glsl/GrGLSLUtil.h"
-#include "glsl/GrGLSLVarying.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/effects/GrBezierEffect.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/glsl/GrGLSLUtil.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 class GrGLConicEffect : public GrGLSLGeometryProcessor {
 public:
diff --git a/src/gpu/effects/GrBezierEffect.h b/src/gpu/effects/GrBezierEffect.h
index e0620ec..c63002b 100644
--- a/src/gpu/effects/GrBezierEffect.h
+++ b/src/gpu/effects/GrBezierEffect.h
@@ -8,10 +8,10 @@
 #ifndef GrBezierEffect_DEFINED
 #define GrBezierEffect_DEFINED
 
-#include "GrCaps.h"
-#include "GrProcessor.h"
-#include "GrGeometryProcessor.h"
-#include "GrTypesPriv.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrProcessor.h"
 
 /**
  * Shader is based off of Loop-Blinn Quadratic GPU Rendering
diff --git a/src/gpu/effects/GrBicubicEffect.cpp b/src/gpu/effects/GrBicubicEffect.cpp
index d804021..4a6ba18 100644
--- a/src/gpu/effects/GrBicubicEffect.cpp
+++ b/src/gpu/effects/GrBicubicEffect.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "GrBicubicEffect.h"
+#include "src/gpu/effects/GrBicubicEffect.h"
 
-#include "GrTexture.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 class GrGLBicubicEffect : public GrGLSLFragmentProcessor {
 public:
diff --git a/src/gpu/effects/GrBicubicEffect.h b/src/gpu/effects/GrBicubicEffect.h
index 9086b5a..f8fae4b 100644
--- a/src/gpu/effects/GrBicubicEffect.h
+++ b/src/gpu/effects/GrBicubicEffect.h
@@ -8,8 +8,8 @@
 #ifndef GrBicubicTextureEffect_DEFINED
 #define GrBicubicTextureEffect_DEFINED
 
-#include "GrTextureDomain.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/effects/GrTextureDomain.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
 
 class GrInvariantOutput;
 
diff --git a/src/gpu/effects/GrBitmapTextGeoProc.cpp b/src/gpu/effects/GrBitmapTextGeoProc.cpp
index 1828eca..edd5809 100644
--- a/src/gpu/effects/GrBitmapTextGeoProc.cpp
+++ b/src/gpu/effects/GrBitmapTextGeoProc.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "GrBitmapTextGeoProc.h"
+#include "src/gpu/effects/GrBitmapTextGeoProc.h"
 
-#include "GrAtlasedShaderHelpers.h"
-#include "GrCaps.h"
-#include "GrShaderCaps.h"
-#include "GrTexture.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
-#include "glsl/GrGLSLVarying.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/effects/GrAtlasedShaderHelpers.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 class GrGLBitmapTextGeoProc : public GrGLSLGeometryProcessor {
 public:
diff --git a/src/gpu/effects/GrBitmapTextGeoProc.h b/src/gpu/effects/GrBitmapTextGeoProc.h
index 30cd38e..3c29c4a 100644
--- a/src/gpu/effects/GrBitmapTextGeoProc.h
+++ b/src/gpu/effects/GrBitmapTextGeoProc.h
@@ -8,8 +8,8 @@
 #ifndef GrBitmapTextGeoProc_DEFINED
 #define GrBitmapTextGeoProc_DEFINED
 
-#include "GrProcessor.h"
-#include "GrGeometryProcessor.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrProcessor.h"
 
 class GrGLBitmapTextGeoProc;
 class GrInvariantOutput;
diff --git a/src/gpu/effects/GrCircleBlurFragmentProcessor.fp b/src/gpu/effects/GrCircleBlurFragmentProcessor.fp
index 6e3d0b3..69026bf 100644
--- a/src/gpu/effects/GrCircleBlurFragmentProcessor.fp
+++ b/src/gpu/effects/GrCircleBlurFragmentProcessor.fp
@@ -31,7 +31,7 @@
 }
 
 @cpp {
-    #include "GrProxyProvider.h"
+    #include "src/gpu/GrProxyProvider.h"
 
     // Computes an unnormalized half kernel (right side). Returns the summation of all the half
     // kernel values.
diff --git a/src/gpu/effects/GrCircleEffect.fp b/src/gpu/effects/GrCircleEffect.fp
index 1053d4d..de4888f 100644
--- a/src/gpu/effects/GrCircleEffect.fp
+++ b/src/gpu/effects/GrCircleEffect.fp
@@ -78,4 +78,4 @@
         et = (GrClipEdgeType) testData->fRandom->nextULessThan(kGrClipEdgeTypeCnt);
     } while (GrClipEdgeType::kHairlineAA == et);
     return GrCircleEffect::Make(et, center, radius);
-}
\ No newline at end of file
+}
diff --git a/src/gpu/effects/GrConfigConversionEffect.fp b/src/gpu/effects/GrConfigConversionEffect.fp
index 071da19..28f64f3 100644
--- a/src/gpu/effects/GrConfigConversionEffect.fp
+++ b/src/gpu/effects/GrConfigConversionEffect.fp
@@ -6,11 +6,11 @@
  */
 
 @header {
-    #include "GrClip.h"
-    #include "GrContext.h"
-    #include "GrContextPriv.h"
-    #include "GrProxyProvider.h"
-    #include "GrRenderTargetContext.h"
+    #include "include/gpu/GrContext.h"
+    #include "src/gpu/GrClip.h"
+    #include "src/gpu/GrContextPriv.h"
+    #include "src/gpu/GrProxyProvider.h"
+    #include "src/gpu/GrRenderTargetContext.h"
 }
 
 @class {
diff --git a/src/gpu/effects/GrConvexPolyEffect.cpp b/src/gpu/effects/GrConvexPolyEffect.cpp
index 32c03af..c3bfd8f 100644
--- a/src/gpu/effects/GrConvexPolyEffect.cpp
+++ b/src/gpu/effects/GrConvexPolyEffect.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrConvexPolyEffect.h"
-#include "SkPathPriv.h"
-#include "effects/generated/GrAARectEffect.h"
-#include "effects/generated/GrConstColorProcessor.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "src/core/SkPathPriv.h"
+#include "src/gpu/effects/GrConvexPolyEffect.h"
+#include "src/gpu/effects/generated/GrAARectEffect.h"
+#include "src/gpu/effects/generated/GrConstColorProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 //////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/gpu/effects/GrConvexPolyEffect.h b/src/gpu/effects/GrConvexPolyEffect.h
index d2ab4c9..2bb3373 100644
--- a/src/gpu/effects/GrConvexPolyEffect.h
+++ b/src/gpu/effects/GrConvexPolyEffect.h
@@ -8,10 +8,10 @@
 #ifndef GrConvexPolyEffect_DEFINED
 #define GrConvexPolyEffect_DEFINED
 
-#include "GrCaps.h"
-#include "GrFragmentProcessor.h"
-#include "GrProcessor.h"
-#include "GrTypesPriv.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/GrProcessor.h"
 
 class GrInvariantOutput;
 class SkPath;
diff --git a/src/gpu/effects/GrCoverageSetOpXP.cpp b/src/gpu/effects/GrCoverageSetOpXP.cpp
index f3f9133..c121201 100644
--- a/src/gpu/effects/GrCoverageSetOpXP.cpp
+++ b/src/gpu/effects/GrCoverageSetOpXP.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "effects/GrCoverageSetOpXP.h"
-#include "GrCaps.h"
-#include "GrColor.h"
-#include "GrPipeline.h"
-#include "GrProcessor.h"
-#include "GrRenderTargetContext.h"
-#include "glsl/GrGLSLBlend.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLUniformHandler.h"
-#include "glsl/GrGLSLXferProcessor.h"
+#include "include/private/GrColor.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/GrProcessor.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/effects/GrCoverageSetOpXP.h"
+#include "src/gpu/glsl/GrGLSLBlend.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/glsl/GrGLSLXferProcessor.h"
 
 class CoverageSetOpXP : public GrXferProcessor {
 public:
diff --git a/src/gpu/effects/GrCoverageSetOpXP.h b/src/gpu/effects/GrCoverageSetOpXP.h
index 6c761d4..3510505 100644
--- a/src/gpu/effects/GrCoverageSetOpXP.h
+++ b/src/gpu/effects/GrCoverageSetOpXP.h
@@ -8,9 +8,9 @@
 #ifndef GrCoverageSetOpXP_DEFINED
 #define GrCoverageSetOpXP_DEFINED
 
-#include "GrTypes.h"
-#include "GrXferProcessor.h"
-#include "SkRegion.h"
+#include "include/core/SkRegion.h"
+#include "include/gpu/GrTypes.h"
+#include "src/gpu/GrXferProcessor.h"
 
 // See the comment above GrXPFactory's definition about this warning suppression.
 #if defined(__GNUC__)
diff --git a/src/gpu/effects/GrCustomXfermode.cpp b/src/gpu/effects/GrCustomXfermode.cpp
index ce0d355..4af5345 100644
--- a/src/gpu/effects/GrCustomXfermode.cpp
+++ b/src/gpu/effects/GrCustomXfermode.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "effects/GrCustomXfermode.h"
+#include "src/gpu/effects/GrCustomXfermode.h"
 
-#include "GrCaps.h"
-#include "GrCoordTransform.h"
-#include "GrFragmentProcessor.h"
-#include "GrPipeline.h"
-#include "GrProcessor.h"
-#include "GrShaderCaps.h"
-#include "glsl/GrGLSLBlend.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
-#include "glsl/GrGLSLXferProcessor.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/GrProcessor.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/glsl/GrGLSLBlend.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/glsl/GrGLSLXferProcessor.h"
 
 bool GrCustomXfermode::IsSupportedMode(SkBlendMode mode) {
     return (int)mode  > (int)SkBlendMode::kLastCoeffMode &&
diff --git a/src/gpu/effects/GrCustomXfermode.h b/src/gpu/effects/GrCustomXfermode.h
index 54309dd..672a512 100644
--- a/src/gpu/effects/GrCustomXfermode.h
+++ b/src/gpu/effects/GrCustomXfermode.h
@@ -8,8 +8,8 @@
 #ifndef GrCustomXfermode_DEFINED
 #define GrCustomXfermode_DEFINED
 
-#include "SkBlendMode.h"
-#include "SkRefCnt.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkRefCnt.h"
 
 class GrTexture;
 class GrXPFactory;
diff --git a/src/gpu/effects/GrDisableColorXP.cpp b/src/gpu/effects/GrDisableColorXP.cpp
index 3ed4ba6..81ccb5f 100644
--- a/src/gpu/effects/GrDisableColorXP.cpp
+++ b/src/gpu/effects/GrDisableColorXP.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "effects/GrDisableColorXP.h"
-#include "GrShaderCaps.h"
-#include "GrPipeline.h"
-#include "GrProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLXferProcessor.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/GrProcessor.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/effects/GrDisableColorXP.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLXferProcessor.h"
 
 /**
  * This xfer processor disables color writing. Thus color and coverage and ignored and no blending
diff --git a/src/gpu/effects/GrDisableColorXP.h b/src/gpu/effects/GrDisableColorXP.h
index 622e9fc..a78adef 100644
--- a/src/gpu/effects/GrDisableColorXP.h
+++ b/src/gpu/effects/GrDisableColorXP.h
@@ -8,9 +8,9 @@
 #ifndef GrDisableColorXP_DEFINED
 #define GrDisableColorXP_DEFINED
 
-#include "GrTypes.h"
-#include "GrXferProcessor.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/GrTypes.h"
+#include "src/gpu/GrXferProcessor.h"
 
 // See the comment above GrXPFactory's definition about this warning suppression.
 #if defined(__GNUC__)
diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.cpp b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
index bb4179a..209de7a 100644
--- a/src/gpu/effects/GrDistanceFieldGeoProc.cpp
+++ b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "GrDistanceFieldGeoProc.h"
-#include "GrAtlasedShaderHelpers.h"
-#include "GrCaps.h"
-#include "GrShaderCaps.h"
-#include "GrTexture.h"
-#include "SkDistanceFieldGen.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
-#include "glsl/GrGLSLUtil.h"
-#include "glsl/GrGLSLVarying.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
+#include "include/gpu/GrTexture.h"
+#include "src/core/SkDistanceFieldGen.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/effects/GrAtlasedShaderHelpers.h"
+#include "src/gpu/effects/GrDistanceFieldGeoProc.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/glsl/GrGLSLUtil.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 // Assuming a radius of a little less than the diagonal of the fragment
 #define SK_DistanceFieldAAFactor     "0.65"
diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.h b/src/gpu/effects/GrDistanceFieldGeoProc.h
index 386b38a..20bb626 100644
--- a/src/gpu/effects/GrDistanceFieldGeoProc.h
+++ b/src/gpu/effects/GrDistanceFieldGeoProc.h
@@ -8,8 +8,8 @@
 #ifndef GrDistanceFieldGeoProc_DEFINED
 #define GrDistanceFieldGeoProc_DEFINED
 
-#include "GrProcessor.h"
-#include "GrGeometryProcessor.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrProcessor.h"
 
 class GrGLDistanceFieldA8TextGeoProc;
 class GrGLDistanceFieldPathGeoProc;
diff --git a/src/gpu/effects/GrEllipseEffect.fp b/src/gpu/effects/GrEllipseEffect.fp
index 256d0f4..8e8c766 100644
--- a/src/gpu/effects/GrEllipseEffect.fp
+++ b/src/gpu/effects/GrEllipseEffect.fp
@@ -6,7 +6,7 @@
  */
 
 @header {
-    #include "GrShaderCaps.h"
+    #include "src/gpu/GrShaderCaps.h"
 }
 
 layout(key) in GrClipEdgeType edgeType;
diff --git a/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.cpp b/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.cpp
index 9a4c69b..471c122 100644
--- a/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.cpp
+++ b/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrGaussianConvolutionFragmentProcessor.h"
+#include "src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h"
 
-#include "GrTexture.h"
-#include "GrTextureProxy.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 // For brevity
 using UniformHandle = GrGLSLProgramDataManager::UniformHandle;
diff --git a/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h b/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h
index 469e287..47a0ae2 100644
--- a/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h
+++ b/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h
@@ -8,9 +8,9 @@
 #ifndef GrGaussianConvolutionFragmentProcessor_DEFINED
 #define GrGaussianConvolutionFragmentProcessor_DEFINED
 
-#include "GrCoordTransform.h"
-#include "GrFragmentProcessor.h"
-#include "GrTextureDomain.h"
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/effects/GrTextureDomain.h"
 
 /**
  * A 1D Gaussian convolution effect. The kernel is computed as an array of 2 * half-width weights.
diff --git a/src/gpu/effects/GrLumaColorFilterEffect.fp b/src/gpu/effects/GrLumaColorFilterEffect.fp
index 4082d21..3e8fb8e 100644
--- a/src/gpu/effects/GrLumaColorFilterEffect.fp
+++ b/src/gpu/effects/GrLumaColorFilterEffect.fp
@@ -6,7 +6,7 @@
  */
 
 @class {
-    #include "SkColorData.h"
+    #include "include/private/SkColorData.h"
 
     SkPMColor4f constantOutputForConstantInput(const SkPMColor4f& input) const override {
         float luma = SK_ITU_BT709_LUM_COEFF_R * input.fR +
@@ -20,4 +20,4 @@
     const half3 SK_ITU_BT709_LUM_COEFF = half3(0.2126, 0.7152, 0.0722);
     half luma = saturate(dot(SK_ITU_BT709_LUM_COEFF, sk_InColor.rgb));
     sk_OutColor = half4(0, 0, 0, luma);
-}
\ No newline at end of file
+}
diff --git a/src/gpu/effects/GrMatrixConvolutionEffect.cpp b/src/gpu/effects/GrMatrixConvolutionEffect.cpp
index bd48c4b..57e4a8c 100644
--- a/src/gpu/effects/GrMatrixConvolutionEffect.cpp
+++ b/src/gpu/effects/GrMatrixConvolutionEffect.cpp
@@ -4,14 +4,14 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "GrMatrixConvolutionEffect.h"
+#include "src/gpu/effects/GrMatrixConvolutionEffect.h"
 
-#include "GrTexture.h"
-#include "GrTextureProxy.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 class GrGLMatrixConvolutionEffect : public GrGLSLFragmentProcessor {
 public:
diff --git a/src/gpu/effects/GrMatrixConvolutionEffect.h b/src/gpu/effects/GrMatrixConvolutionEffect.h
index f20c805..212d5c0 100644
--- a/src/gpu/effects/GrMatrixConvolutionEffect.h
+++ b/src/gpu/effects/GrMatrixConvolutionEffect.h
@@ -8,7 +8,7 @@
 #ifndef GrMatrixConvolutionEffect_DEFINED
 #define GrMatrixConvolutionEffect_DEFINED
 
-#include "GrTextureDomain.h"
+#include "src/gpu/effects/GrTextureDomain.h"
 
 // A little bit less than the minimum # uniforms required by DX9SM2 (32).
 // Allows for a 5x5 kernel (or 25x1, for that matter).
diff --git a/src/gpu/effects/GrOvalEffect.cpp b/src/gpu/effects/GrOvalEffect.cpp
index cb8e689..b7c001c 100644
--- a/src/gpu/effects/GrOvalEffect.cpp
+++ b/src/gpu/effects/GrOvalEffect.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrOvalEffect.h"
+#include "src/gpu/effects/GrOvalEffect.h"
 
-#include "generated/GrCircleEffect.h"
-#include "generated/GrEllipseEffect.h"
-#include "SkRect.h"
+#include "include/core/SkRect.h"
+#include "src/gpu/effects/generated/GrCircleEffect.h"
+#include "src/gpu/effects/generated/GrEllipseEffect.h"
 
 std::unique_ptr<GrFragmentProcessor> GrOvalEffect::Make(GrClipEdgeType edgeType, const SkRect& oval,
                                                         const GrShaderCaps& caps) {
diff --git a/src/gpu/effects/GrOvalEffect.h b/src/gpu/effects/GrOvalEffect.h
index c102a0b..8b4c95d 100644
--- a/src/gpu/effects/GrOvalEffect.h
+++ b/src/gpu/effects/GrOvalEffect.h
@@ -8,9 +8,9 @@
 #ifndef GrOvalEffect_DEFINED
 #define GrOvalEffect_DEFINED
 
-#include "GrTypes.h"
-#include "GrTypesPriv.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/GrTypesPriv.h"
 
 class GrFragmentProcessor;
 class GrShaderCaps;
diff --git a/src/gpu/effects/GrPorterDuffXferProcessor.cpp b/src/gpu/effects/GrPorterDuffXferProcessor.cpp
index 5b72269..71c0689 100644
--- a/src/gpu/effects/GrPorterDuffXferProcessor.cpp
+++ b/src/gpu/effects/GrPorterDuffXferProcessor.cpp
@@ -5,21 +5,21 @@
  * found in the LICENSE file.
  */
 
-#include "effects/GrPorterDuffXferProcessor.h"
+#include "src/gpu/effects/GrPorterDuffXferProcessor.h"
 
-#include "GrBlend.h"
-#include "GrCaps.h"
-#include "GrPipeline.h"
-#include "GrProcessor.h"
-#include "GrProcessorAnalysis.h"
-#include "GrTypes.h"
-#include "GrXferProcessor.h"
-#include "SkTo.h"
-#include "glsl/GrGLSLBlend.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
-#include "glsl/GrGLSLXferProcessor.h"
+#include "include/gpu/GrBlend.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/SkTo.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/GrProcessor.h"
+#include "src/gpu/GrProcessorAnalysis.h"
+#include "src/gpu/GrXferProcessor.h"
+#include "src/gpu/glsl/GrGLSLBlend.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/glsl/GrGLSLXferProcessor.h"
 
 /**
  * Wraps the shader outputs and HW blend state that comprise a Porter Duff blend mode with coverage.
diff --git a/src/gpu/effects/GrPorterDuffXferProcessor.h b/src/gpu/effects/GrPorterDuffXferProcessor.h
index 1c39c3a..2245313 100644
--- a/src/gpu/effects/GrPorterDuffXferProcessor.h
+++ b/src/gpu/effects/GrPorterDuffXferProcessor.h
@@ -8,9 +8,9 @@
 #ifndef GrPorterDuffXferProcessor_DEFINED
 #define GrPorterDuffXferProcessor_DEFINED
 
-#include "GrTypes.h"
-#include "GrXferProcessor.h"
-#include "SkBlendMode.h"
+#include "include/core/SkBlendMode.h"
+#include "include/gpu/GrTypes.h"
+#include "src/gpu/GrXferProcessor.h"
 
 // See the comment above GrXPFactory's definition about this warning suppression.
 #if defined(__GNUC__)
diff --git a/src/gpu/effects/GrPremulInputFragmentProcessor.fp b/src/gpu/effects/GrPremulInputFragmentProcessor.fp
index 5184749..cbba607 100644
--- a/src/gpu/effects/GrPremulInputFragmentProcessor.fp
+++ b/src/gpu/effects/GrPremulInputFragmentProcessor.fp
@@ -18,4 +18,4 @@
     SkPMColor4f constantOutputForConstantInput(const SkPMColor4f& input) const override {
         return SkColor4f { input.fR, input.fG, input.fB, input.fA }.premul();
     }
-}
\ No newline at end of file
+}
diff --git a/src/gpu/effects/GrRRectBlurEffect.fp b/src/gpu/effects/GrRRectBlurEffect.fp
index c5e1b8a..921c3f6 100644
--- a/src/gpu/effects/GrRRectBlurEffect.fp
+++ b/src/gpu/effects/GrRRectBlurEffect.fp
@@ -13,19 +13,19 @@
 uniform half blurRadius;
 
 @header {
-    #include "GrCaps.h"
-    #include "GrClip.h"
-    #include "GrContext.h"
-    #include "GrPaint.h"
-    #include "GrProxyProvider.h"
-    #include "GrRecordingContext.h"
-    #include "GrRecordingContextPriv.h"
-    #include "GrRenderTargetContext.h"
-    #include "GrStyle.h"
-    #include "SkBlurMaskFilter.h"
-    #include "SkBlurPriv.h"
-    #include "SkGpuBlurUtils.h"
-    #include "SkRRectPriv.h"
+    #include "include/effects/SkBlurMaskFilter.h"
+    #include "include/gpu/GrContext.h"
+    #include "include/private/GrRecordingContext.h"
+    #include "src/core/SkBlurPriv.h"
+    #include "src/core/SkGpuBlurUtils.h"
+    #include "src/core/SkRRectPriv.h"
+    #include "src/gpu/GrCaps.h"
+    #include "src/gpu/GrClip.h"
+    #include "src/gpu/GrPaint.h"
+    #include "src/gpu/GrProxyProvider.h"
+    #include "src/gpu/GrRecordingContextPriv.h"
+    #include "src/gpu/GrRenderTargetContext.h"
+    #include "src/gpu/GrStyle.h"
 }
 
 @class {
diff --git a/src/gpu/effects/GrRRectEffect.cpp b/src/gpu/effects/GrRRectEffect.cpp
index db39c4f..9c9dc31 100644
--- a/src/gpu/effects/GrRRectEffect.cpp
+++ b/src/gpu/effects/GrRRectEffect.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "GrRRectEffect.h"
+#include "src/gpu/effects/GrRRectEffect.h"
 
-#include "GrConvexPolyEffect.h"
-#include "GrFragmentProcessor.h"
-#include "GrOvalEffect.h"
-#include "GrShaderCaps.h"
-#include "SkRRectPriv.h"
-#include "SkTLazy.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "src/core/SkRRectPriv.h"
+#include "src/core/SkTLazy.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/effects/GrConvexPolyEffect.h"
+#include "src/gpu/effects/GrOvalEffect.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 // The effects defined here only handle rrect radii >= kRadiusMin.
 static const SkScalar kRadiusMin = SK_ScalarHalf;
diff --git a/src/gpu/effects/GrRRectEffect.h b/src/gpu/effects/GrRRectEffect.h
index 55ef535..426cb8f 100644
--- a/src/gpu/effects/GrRRectEffect.h
+++ b/src/gpu/effects/GrRRectEffect.h
@@ -8,9 +8,9 @@
 #ifndef GrRRectEffect_DEFINED
 #define GrRRectEffect_DEFINED
 
-#include "GrTypes.h"
-#include "GrTypesPriv.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/GrTypesPriv.h"
 
 class GrFragmentProcessor;
 class GrShaderCaps;
diff --git a/src/gpu/effects/GrRectBlurEffect.fp b/src/gpu/effects/GrRectBlurEffect.fp
index 50f833c..4a4bf6f 100644
--- a/src/gpu/effects/GrRectBlurEffect.fp
+++ b/src/gpu/effects/GrRectBlurEffect.fp
@@ -6,10 +6,10 @@
  */
 
 @header {
-    #include "GrProxyProvider.h"
-    #include "GrShaderCaps.h"
-    #include "SkBlurMask.h"
-    #include "SkScalar.h"
+    #include "include/core/SkScalar.h"
+    #include "src/core/SkBlurMask.h"
+    #include "src/gpu/GrProxyProvider.h"
+    #include "src/gpu/GrShaderCaps.h"
 }
 
 in uniform float4 rect;
diff --git a/src/gpu/effects/GrSRGBEffect.cpp b/src/gpu/effects/GrSRGBEffect.cpp
index 8fbe1dd..9443a05 100644
--- a/src/gpu/effects/GrSRGBEffect.cpp
+++ b/src/gpu/effects/GrSRGBEffect.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "GrSRGBEffect.h"
+#include "src/gpu/effects/GrSRGBEffect.h"
 
-#include "GrFragmentProcessor.h"
-#include "GrProcessor.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/GrProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
 
 class GrGLSRGBEffect : public GrGLSLFragmentProcessor {
 public:
diff --git a/src/gpu/effects/GrSRGBEffect.h b/src/gpu/effects/GrSRGBEffect.h
index 3493a4c..2135a50 100644
--- a/src/gpu/effects/GrSRGBEffect.h
+++ b/src/gpu/effects/GrSRGBEffect.h
@@ -8,7 +8,7 @@
 #ifndef GrSRGBEffect_DEFINED
 #define GrSRGBEffect_DEFINED
 
-#include "GrFragmentProcessor.h"
+#include "src/gpu/GrFragmentProcessor.h"
 
 class GrSRGBEffect : public GrFragmentProcessor {
 public:
diff --git a/src/gpu/effects/GrShadowGeoProc.cpp b/src/gpu/effects/GrShadowGeoProc.cpp
index ae14fa3..5af096c 100644
--- a/src/gpu/effects/GrShadowGeoProc.cpp
+++ b/src/gpu/effects/GrShadowGeoProc.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "GrShadowGeoProc.h"
+#include "src/gpu/effects/GrShadowGeoProc.h"
 
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLUniformHandler.h"
-#include "glsl/GrGLSLVarying.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 class GrGLSLRRectShadowGeoProc : public GrGLSLGeometryProcessor {
 public:
diff --git a/src/gpu/effects/GrShadowGeoProc.h b/src/gpu/effects/GrShadowGeoProc.h
index 8b0727f..b821a6a 100644
--- a/src/gpu/effects/GrShadowGeoProc.h
+++ b/src/gpu/effects/GrShadowGeoProc.h
@@ -8,8 +8,8 @@
 #ifndef GrShadowGeoProc_DEFINED
 #define GrShadowGeoProc_DEFINED
 
-#include "GrProcessor.h"
-#include "GrGeometryProcessor.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrProcessor.h"
 
 class GrGLRRectShadowGeoProc;
 
diff --git a/src/gpu/effects/GrSkSLFP.cpp b/src/gpu/effects/GrSkSLFP.cpp
index 2e628ea..f8fe85d 100644
--- a/src/gpu/effects/GrSkSLFP.cpp
+++ b/src/gpu/effects/GrSkSLFP.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "GrSkSLFP.h"
+#include "src/gpu/effects/GrSkSLFP.h"
 
-#include "GrBaseContextPriv.h"
-#include "GrContext_Base.h"
-#include "GrTexture.h"
-#include "SkSLUtil.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrContext_Base.h"
+#include "src/gpu/GrBaseContextPriv.h"
+#include "src/sksl/SkSLUtil.h"
 
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
 
 GrSkSLFPFactory::GrSkSLFPFactory(const char* name, const GrShaderCaps* shaderCaps, const char* sksl,
                                  SkSL::Program::Kind kind)
@@ -474,9 +474,9 @@
 
 #if GR_TEST_UTILS
 
-#include "generated/GrConstColorProcessor.h"
-#include "GrContext.h"
-#include "SkArithmeticImageFilter.h"
+#include "include/effects/SkArithmeticImageFilter.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/effects/generated/GrConstColorProcessor.h"
 
 extern const char* SKSL_ARITHMETIC_SRC;
 extern const char* SKSL_DITHER_SRC;
diff --git a/src/gpu/effects/GrSkSLFP.h b/src/gpu/effects/GrSkSLFP.h
index fb7369f..5e0bd84 100644
--- a/src/gpu/effects/GrSkSLFP.h
+++ b/src/gpu/effects/GrSkSLFP.h
@@ -8,14 +8,14 @@
 #ifndef GrSkSLFP_DEFINED
 #define GrSkSLFP_DEFINED
 
-#include "GrCaps.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
-#include "GrShaderCaps.h"
-#include "SkSLCompiler.h"
-#include "SkSLPipelineStageCodeGenerator.h"
-#include "SkRefCnt.h"
-#include "../private/GrSkSLFPFactoryCache.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/GrSkSLFPFactoryCache.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/sksl/SkSLCompiler.h"
+#include "src/sksl/SkSLPipelineStageCodeGenerator.h"
 #include <atomic>
 
 #if GR_TEST_UTILS
diff --git a/src/gpu/effects/GrTextureDomain.cpp b/src/gpu/effects/GrTextureDomain.cpp
index 7121bac..65411f1 100644
--- a/src/gpu/effects/GrTextureDomain.cpp
+++ b/src/gpu/effects/GrTextureDomain.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "GrTextureDomain.h"
+#include "src/gpu/effects/GrTextureDomain.h"
 
-#include "GrProxyProvider.h"
-#include "GrShaderCaps.h"
-#include "GrSurfaceProxyPriv.h"
-#include "GrTexture.h"
-#include "SkFloatingPoint.h"
-#include "generated/GrSimpleTextureEffect.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLShaderBuilder.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/SkFloatingPoint.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
+#include "src/gpu/effects/generated/GrSimpleTextureEffect.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 #include <utility>
 
diff --git a/src/gpu/effects/GrTextureDomain.h b/src/gpu/effects/GrTextureDomain.h
index 7ff2721..4b21b97 100644
--- a/src/gpu/effects/GrTextureDomain.h
+++ b/src/gpu/effects/GrTextureDomain.h
@@ -8,10 +8,10 @@
 #ifndef GrTextureDomainEffect_DEFINED
 #define GrTextureDomainEffect_DEFINED
 
-#include "GrCoordTransform.h"
-#include "GrFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
 
 class GrGLProgramBuilder;
 class GrGLSLShaderBuilder;
diff --git a/src/gpu/effects/GrXfermodeFragmentProcessor.cpp b/src/gpu/effects/GrXfermodeFragmentProcessor.cpp
index b5730fb..1424939 100644
--- a/src/gpu/effects/GrXfermodeFragmentProcessor.cpp
+++ b/src/gpu/effects/GrXfermodeFragmentProcessor.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "GrXfermodeFragmentProcessor.h"
+#include "src/gpu/effects/GrXfermodeFragmentProcessor.h"
 
-#include "GrFragmentProcessor.h"
-#include "generated/GrConstColorProcessor.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLBlend.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "SkGr.h"
-#include "SkXfermodePriv.h"
+#include "src/core/SkXfermodePriv.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/effects/generated/GrConstColorProcessor.h"
+#include "src/gpu/glsl/GrGLSLBlend.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
 
 // Some of the cpu implementations of blend modes differ too much from the GPU enough that
 // we can't use the cpu implementation to implement constantOutputForConstantInput.
diff --git a/src/gpu/effects/GrXfermodeFragmentProcessor.h b/src/gpu/effects/GrXfermodeFragmentProcessor.h
index c5d0c59..0100339 100644
--- a/src/gpu/effects/GrXfermodeFragmentProcessor.h
+++ b/src/gpu/effects/GrXfermodeFragmentProcessor.h
@@ -8,8 +8,8 @@
 #ifndef GrXfermodeFragmentProcessor_DEFINED
 #define GrXfermodeFragmentProcessor_DEFINED
 
-#include "SkRefCnt.h"
-#include "SkBlendMode.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkRefCnt.h"
 
 class GrFragmentProcessor;
 
diff --git a/src/gpu/effects/GrYUVtoRGBEffect.cpp b/src/gpu/effects/GrYUVtoRGBEffect.cpp
index 963ed77..44033ad 100644
--- a/src/gpu/effects/GrYUVtoRGBEffect.cpp
+++ b/src/gpu/effects/GrYUVtoRGBEffect.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrYUVtoRGBEffect.h"
+#include "src/gpu/effects/GrYUVtoRGBEffect.h"
 
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 
 static const float kJPEGConversionMatrix[16] = {
     1.0f,  0.0f,       1.402f,    -0.703749f,
diff --git a/src/gpu/effects/GrYUVtoRGBEffect.h b/src/gpu/effects/GrYUVtoRGBEffect.h
index 9e4a843..fe96db7 100644
--- a/src/gpu/effects/GrYUVtoRGBEffect.h
+++ b/src/gpu/effects/GrYUVtoRGBEffect.h
@@ -8,13 +8,13 @@
 #ifndef GrYUVtoRGBEffect_DEFINED
 #define GrYUVtoRGBEffect_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
-#include "GrTextureDomain.h"
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/effects/GrTextureDomain.h"
 
-#include "SkYUVAIndex.h"
+#include "include/core/SkYUVAIndex.h"
 
 class GrYUVtoRGBEffect : public GrFragmentProcessor {
 public:
diff --git a/src/gpu/effects/generated/GrAARectEffect.cpp b/src/gpu/effects/generated/GrAARectEffect.cpp
index 62d9f52..6d5833e 100644
--- a/src/gpu/effects/generated/GrAARectEffect.cpp
+++ b/src/gpu/effects/generated/GrAARectEffect.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrAARectEffect.fp; do not modify.
  **************************************************************************************************/
 #include "GrAARectEffect.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLAARectEffect : public GrGLSLFragmentProcessor {
 public:
     GrGLSLAARectEffect() {}
diff --git a/src/gpu/effects/generated/GrAARectEffect.h b/src/gpu/effects/generated/GrAARectEffect.h
index 0c302c5..15d5fb7 100644
--- a/src/gpu/effects/generated/GrAARectEffect.h
+++ b/src/gpu/effects/generated/GrAARectEffect.h
@@ -10,9 +10,10 @@
  **************************************************************************************************/
 #ifndef GrAARectEffect_DEFINED
 #define GrAARectEffect_DEFINED
-#include "SkTypes.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkTypes.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrAARectEffect : public GrFragmentProcessor {
 public:
     static std::unique_ptr<GrFragmentProcessor> Make(GrClipEdgeType edgeType, SkRect rect) {
diff --git a/src/gpu/effects/generated/GrAlphaThresholdFragmentProcessor.cpp b/src/gpu/effects/generated/GrAlphaThresholdFragmentProcessor.cpp
index 70fe78a..c07fd73 100644
--- a/src/gpu/effects/generated/GrAlphaThresholdFragmentProcessor.cpp
+++ b/src/gpu/effects/generated/GrAlphaThresholdFragmentProcessor.cpp
@@ -19,12 +19,12 @@
         return kCompatibleWithCoverageAsAlpha_OptimizationFlag;
     }
 }
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLAlphaThresholdFragmentProcessor : public GrGLSLFragmentProcessor {
 public:
     GrGLSLAlphaThresholdFragmentProcessor() {}
diff --git a/src/gpu/effects/generated/GrAlphaThresholdFragmentProcessor.h b/src/gpu/effects/generated/GrAlphaThresholdFragmentProcessor.h
index 8067db5..730054b 100644
--- a/src/gpu/effects/generated/GrAlphaThresholdFragmentProcessor.h
+++ b/src/gpu/effects/generated/GrAlphaThresholdFragmentProcessor.h
@@ -10,9 +10,10 @@
  **************************************************************************************************/
 #ifndef GrAlphaThresholdFragmentProcessor_DEFINED
 #define GrAlphaThresholdFragmentProcessor_DEFINED
-#include "SkTypes.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkTypes.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrAlphaThresholdFragmentProcessor : public GrFragmentProcessor {
 public:
     inline OptimizationFlags optFlags(float outerThreshold);
diff --git a/src/gpu/effects/generated/GrBlurredEdgeFragmentProcessor.cpp b/src/gpu/effects/generated/GrBlurredEdgeFragmentProcessor.cpp
index b91e148..c2b3ef3 100644
--- a/src/gpu/effects/generated/GrBlurredEdgeFragmentProcessor.cpp
+++ b/src/gpu/effects/generated/GrBlurredEdgeFragmentProcessor.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrBlurredEdgeFragmentProcessor.fp; do not modify.
  **************************************************************************************************/
 #include "GrBlurredEdgeFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLBlurredEdgeFragmentProcessor : public GrGLSLFragmentProcessor {
 public:
     GrGLSLBlurredEdgeFragmentProcessor() {}
diff --git a/src/gpu/effects/generated/GrBlurredEdgeFragmentProcessor.h b/src/gpu/effects/generated/GrBlurredEdgeFragmentProcessor.h
index c149bcc..e71eafb 100644
--- a/src/gpu/effects/generated/GrBlurredEdgeFragmentProcessor.h
+++ b/src/gpu/effects/generated/GrBlurredEdgeFragmentProcessor.h
@@ -10,9 +10,10 @@
  **************************************************************************************************/
 #ifndef GrBlurredEdgeFragmentProcessor_DEFINED
 #define GrBlurredEdgeFragmentProcessor_DEFINED
-#include "SkTypes.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkTypes.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrBlurredEdgeFragmentProcessor : public GrFragmentProcessor {
 public:
     enum class Mode { kGaussian = 0, kSmoothStep = 1 };
diff --git a/src/gpu/effects/generated/GrCircleBlurFragmentProcessor.cpp b/src/gpu/effects/generated/GrCircleBlurFragmentProcessor.cpp
index 28cdbd5..986a2ea 100644
--- a/src/gpu/effects/generated/GrCircleBlurFragmentProcessor.cpp
+++ b/src/gpu/effects/generated/GrCircleBlurFragmentProcessor.cpp
@@ -10,7 +10,7 @@
  **************************************************************************************************/
 #include "GrCircleBlurFragmentProcessor.h"
 
-#include "GrProxyProvider.h"
+#include "src/gpu/GrProxyProvider.h"
 
 // Computes an unnormalized half kernel (right side). Returns the summation of all the half
 // kernel values.
@@ -250,12 +250,12 @@
     return std::unique_ptr<GrFragmentProcessor>(new GrCircleBlurFragmentProcessor(
             circle, textureRadius, solidRadius, std::move(profile)));
 }
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLCircleBlurFragmentProcessor : public GrGLSLFragmentProcessor {
 public:
     GrGLSLCircleBlurFragmentProcessor() {}
diff --git a/src/gpu/effects/generated/GrCircleBlurFragmentProcessor.h b/src/gpu/effects/generated/GrCircleBlurFragmentProcessor.h
index 1969fc3..93d2403 100644
--- a/src/gpu/effects/generated/GrCircleBlurFragmentProcessor.h
+++ b/src/gpu/effects/generated/GrCircleBlurFragmentProcessor.h
@@ -10,9 +10,10 @@
  **************************************************************************************************/
 #ifndef GrCircleBlurFragmentProcessor_DEFINED
 #define GrCircleBlurFragmentProcessor_DEFINED
-#include "SkTypes.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkTypes.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrCircleBlurFragmentProcessor : public GrFragmentProcessor {
 public:
     static std::unique_ptr<GrFragmentProcessor> Make(GrProxyProvider*, const SkRect& circle,
diff --git a/src/gpu/effects/generated/GrCircleEffect.cpp b/src/gpu/effects/generated/GrCircleEffect.cpp
index f24f2d7..d049c76 100644
--- a/src/gpu/effects/generated/GrCircleEffect.cpp
+++ b/src/gpu/effects/generated/GrCircleEffect.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrCircleEffect.fp; do not modify.
  **************************************************************************************************/
 #include "GrCircleEffect.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLCircleEffect : public GrGLSLFragmentProcessor {
 public:
     GrGLSLCircleEffect() {}
diff --git a/src/gpu/effects/generated/GrCircleEffect.h b/src/gpu/effects/generated/GrCircleEffect.h
index 81ab40e..c43ab98 100644
--- a/src/gpu/effects/generated/GrCircleEffect.h
+++ b/src/gpu/effects/generated/GrCircleEffect.h
@@ -10,9 +10,10 @@
  **************************************************************************************************/
 #ifndef GrCircleEffect_DEFINED
 #define GrCircleEffect_DEFINED
-#include "SkTypes.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkTypes.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrCircleEffect : public GrFragmentProcessor {
 public:
     static std::unique_ptr<GrFragmentProcessor> Make(GrClipEdgeType edgeType, SkPoint center,
diff --git a/src/gpu/effects/generated/GrComposeLerpEffect.cpp b/src/gpu/effects/generated/GrComposeLerpEffect.cpp
index a768b5c..c9b4d3b 100644
--- a/src/gpu/effects/generated/GrComposeLerpEffect.cpp
+++ b/src/gpu/effects/generated/GrComposeLerpEffect.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrComposeLerpEffect.fp; do not modify.
  **************************************************************************************************/
 #include "GrComposeLerpEffect.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLComposeLerpEffect : public GrGLSLFragmentProcessor {
 public:
     GrGLSLComposeLerpEffect() {}
diff --git a/src/gpu/effects/generated/GrComposeLerpEffect.h b/src/gpu/effects/generated/GrComposeLerpEffect.h
index 823d44d..02753b7 100644
--- a/src/gpu/effects/generated/GrComposeLerpEffect.h
+++ b/src/gpu/effects/generated/GrComposeLerpEffect.h
@@ -10,9 +10,10 @@
  **************************************************************************************************/
 #ifndef GrComposeLerpEffect_DEFINED
 #define GrComposeLerpEffect_DEFINED
-#include "SkTypes.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkTypes.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrComposeLerpEffect : public GrFragmentProcessor {
 public:
     static std::unique_ptr<GrFragmentProcessor> Make(std::unique_ptr<GrFragmentProcessor> child1,
diff --git a/src/gpu/effects/generated/GrComposeLerpRedEffect.cpp b/src/gpu/effects/generated/GrComposeLerpRedEffect.cpp
index 2f3a5e4..d75b411 100644
--- a/src/gpu/effects/generated/GrComposeLerpRedEffect.cpp
+++ b/src/gpu/effects/generated/GrComposeLerpRedEffect.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrComposeLerpRedEffect.fp; do not modify.
  **************************************************************************************************/
 #include "GrComposeLerpRedEffect.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLComposeLerpRedEffect : public GrGLSLFragmentProcessor {
 public:
     GrGLSLComposeLerpRedEffect() {}
diff --git a/src/gpu/effects/generated/GrComposeLerpRedEffect.h b/src/gpu/effects/generated/GrComposeLerpRedEffect.h
index f109c8c..d48725f 100644
--- a/src/gpu/effects/generated/GrComposeLerpRedEffect.h
+++ b/src/gpu/effects/generated/GrComposeLerpRedEffect.h
@@ -10,9 +10,10 @@
  **************************************************************************************************/
 #ifndef GrComposeLerpRedEffect_DEFINED
 #define GrComposeLerpRedEffect_DEFINED
-#include "SkTypes.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkTypes.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrComposeLerpRedEffect : public GrFragmentProcessor {
 public:
     static std::unique_ptr<GrFragmentProcessor> Make(std::unique_ptr<GrFragmentProcessor> child1,
diff --git a/src/gpu/effects/generated/GrConfigConversionEffect.cpp b/src/gpu/effects/generated/GrConfigConversionEffect.cpp
index 5acd214..c16796d 100644
--- a/src/gpu/effects/generated/GrConfigConversionEffect.cpp
+++ b/src/gpu/effects/generated/GrConfigConversionEffect.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrConfigConversionEffect.fp; do not modify.
  **************************************************************************************************/
 #include "GrConfigConversionEffect.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLConfigConversionEffect : public GrGLSLFragmentProcessor {
 public:
     GrGLSLConfigConversionEffect() {}
diff --git a/src/gpu/effects/generated/GrConfigConversionEffect.h b/src/gpu/effects/generated/GrConfigConversionEffect.h
index 1b8dac2..2ab205a 100644
--- a/src/gpu/effects/generated/GrConfigConversionEffect.h
+++ b/src/gpu/effects/generated/GrConfigConversionEffect.h
@@ -10,15 +10,16 @@
  **************************************************************************************************/
 #ifndef GrConfigConversionEffect_DEFINED
 #define GrConfigConversionEffect_DEFINED
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrClip.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrProxyProvider.h"
-#include "GrRenderTargetContext.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRenderTargetContext.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrConfigConversionEffect : public GrFragmentProcessor {
 public:
     static bool TestForPreservingPMConversions(GrContext* context) {
diff --git a/src/gpu/effects/generated/GrConstColorProcessor.cpp b/src/gpu/effects/generated/GrConstColorProcessor.cpp
index ca23d07..8f3079b 100644
--- a/src/gpu/effects/generated/GrConstColorProcessor.cpp
+++ b/src/gpu/effects/generated/GrConstColorProcessor.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrConstColorProcessor.fp; do not modify.
  **************************************************************************************************/
 #include "GrConstColorProcessor.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLConstColorProcessor : public GrGLSLFragmentProcessor {
 public:
     GrGLSLConstColorProcessor() {}
diff --git a/src/gpu/effects/generated/GrConstColorProcessor.h b/src/gpu/effects/generated/GrConstColorProcessor.h
index 9959cf5..76ecefa 100644
--- a/src/gpu/effects/generated/GrConstColorProcessor.h
+++ b/src/gpu/effects/generated/GrConstColorProcessor.h
@@ -10,9 +10,10 @@
  **************************************************************************************************/
 #ifndef GrConstColorProcessor_DEFINED
 #define GrConstColorProcessor_DEFINED
-#include "SkTypes.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkTypes.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrConstColorProcessor : public GrFragmentProcessor {
 public:
     enum class InputMode { kIgnore = 0, kLast = 2, kModulateA = 2, kModulateRGBA = 1 };
diff --git a/src/gpu/effects/generated/GrEllipseEffect.cpp b/src/gpu/effects/generated/GrEllipseEffect.cpp
index 42998d0..269e95f 100644
--- a/src/gpu/effects/generated/GrEllipseEffect.cpp
+++ b/src/gpu/effects/generated/GrEllipseEffect.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrEllipseEffect.fp; do not modify.
  **************************************************************************************************/
 #include "GrEllipseEffect.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLEllipseEffect : public GrGLSLFragmentProcessor {
 public:
     GrGLSLEllipseEffect() {}
diff --git a/src/gpu/effects/generated/GrEllipseEffect.h b/src/gpu/effects/generated/GrEllipseEffect.h
index c2a76d8..a864272 100644
--- a/src/gpu/effects/generated/GrEllipseEffect.h
+++ b/src/gpu/effects/generated/GrEllipseEffect.h
@@ -10,11 +10,12 @@
  **************************************************************************************************/
 #ifndef GrEllipseEffect_DEFINED
 #define GrEllipseEffect_DEFINED
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrShaderCaps.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "src/gpu/GrShaderCaps.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrEllipseEffect : public GrFragmentProcessor {
 public:
     static std::unique_ptr<GrFragmentProcessor> Make(GrClipEdgeType edgeType, SkPoint center,
diff --git a/src/gpu/effects/generated/GrLumaColorFilterEffect.cpp b/src/gpu/effects/generated/GrLumaColorFilterEffect.cpp
index d0b1e1c..337173c 100644
--- a/src/gpu/effects/generated/GrLumaColorFilterEffect.cpp
+++ b/src/gpu/effects/generated/GrLumaColorFilterEffect.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrLumaColorFilterEffect.fp; do not modify.
  **************************************************************************************************/
 #include "GrLumaColorFilterEffect.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLLumaColorFilterEffect : public GrGLSLFragmentProcessor {
 public:
     GrGLSLLumaColorFilterEffect() {}
diff --git a/src/gpu/effects/generated/GrLumaColorFilterEffect.h b/src/gpu/effects/generated/GrLumaColorFilterEffect.h
index c93f6a3..ba3af3f 100644
--- a/src/gpu/effects/generated/GrLumaColorFilterEffect.h
+++ b/src/gpu/effects/generated/GrLumaColorFilterEffect.h
@@ -10,12 +10,13 @@
  **************************************************************************************************/
 #ifndef GrLumaColorFilterEffect_DEFINED
 #define GrLumaColorFilterEffect_DEFINED
-#include "SkTypes.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkTypes.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrLumaColorFilterEffect : public GrFragmentProcessor {
 public:
-#include "SkColorData.h"
+#include "include/private/SkColorData.h"
 
     SkPMColor4f constantOutputForConstantInput(const SkPMColor4f& input) const override {
         float luma = SK_ITU_BT709_LUM_COEFF_R * input.fR + SK_ITU_BT709_LUM_COEFF_G * input.fG +
diff --git a/src/gpu/effects/generated/GrMagnifierEffect.cpp b/src/gpu/effects/generated/GrMagnifierEffect.cpp
index 3e34da7..5972aeb 100644
--- a/src/gpu/effects/generated/GrMagnifierEffect.cpp
+++ b/src/gpu/effects/generated/GrMagnifierEffect.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrMagnifierEffect.fp; do not modify.
  **************************************************************************************************/
 #include "GrMagnifierEffect.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLMagnifierEffect : public GrGLSLFragmentProcessor {
 public:
     GrGLSLMagnifierEffect() {}
diff --git a/src/gpu/effects/generated/GrMagnifierEffect.h b/src/gpu/effects/generated/GrMagnifierEffect.h
index c1bf22b..cb0d005 100644
--- a/src/gpu/effects/generated/GrMagnifierEffect.h
+++ b/src/gpu/effects/generated/GrMagnifierEffect.h
@@ -10,9 +10,10 @@
  **************************************************************************************************/
 #ifndef GrMagnifierEffect_DEFINED
 #define GrMagnifierEffect_DEFINED
-#include "SkTypes.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkTypes.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrMagnifierEffect : public GrFragmentProcessor {
 public:
     static std::unique_ptr<GrFragmentProcessor> Make(sk_sp<GrTextureProxy> src, SkIRect bounds,
diff --git a/src/gpu/effects/generated/GrMixerEffect.cpp b/src/gpu/effects/generated/GrMixerEffect.cpp
index 98e9a47..af5a7af 100644
--- a/src/gpu/effects/generated/GrMixerEffect.cpp
+++ b/src/gpu/effects/generated/GrMixerEffect.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrMixerEffect.fp; do not modify.
  **************************************************************************************************/
 #include "GrMixerEffect.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLMixerEffect : public GrGLSLFragmentProcessor {
 public:
     GrGLSLMixerEffect() {}
diff --git a/src/gpu/effects/generated/GrMixerEffect.h b/src/gpu/effects/generated/GrMixerEffect.h
index 4c30fba..44d345b7 100644
--- a/src/gpu/effects/generated/GrMixerEffect.h
+++ b/src/gpu/effects/generated/GrMixerEffect.h
@@ -10,9 +10,10 @@
  **************************************************************************************************/
 #ifndef GrMixerEffect_DEFINED
 #define GrMixerEffect_DEFINED
-#include "SkTypes.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkTypes.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrMixerEffect : public GrFragmentProcessor {
 public:
     static OptimizationFlags OptFlags(const std::unique_ptr<GrFragmentProcessor>& fp0,
diff --git a/src/gpu/effects/generated/GrOverrideInputFragmentProcessor.cpp b/src/gpu/effects/generated/GrOverrideInputFragmentProcessor.cpp
index c3d2d27..9d7934e 100644
--- a/src/gpu/effects/generated/GrOverrideInputFragmentProcessor.cpp
+++ b/src/gpu/effects/generated/GrOverrideInputFragmentProcessor.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrOverrideInputFragmentProcessor.fp; do not modify.
  **************************************************************************************************/
 #include "GrOverrideInputFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLOverrideInputFragmentProcessor : public GrGLSLFragmentProcessor {
 public:
     GrGLSLOverrideInputFragmentProcessor() {}
diff --git a/src/gpu/effects/generated/GrOverrideInputFragmentProcessor.h b/src/gpu/effects/generated/GrOverrideInputFragmentProcessor.h
index d7cacee..7e4106f 100644
--- a/src/gpu/effects/generated/GrOverrideInputFragmentProcessor.h
+++ b/src/gpu/effects/generated/GrOverrideInputFragmentProcessor.h
@@ -10,9 +10,10 @@
  **************************************************************************************************/
 #ifndef GrOverrideInputFragmentProcessor_DEFINED
 #define GrOverrideInputFragmentProcessor_DEFINED
-#include "SkTypes.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkTypes.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrOverrideInputFragmentProcessor : public GrFragmentProcessor {
 public:
     static OptimizationFlags OptFlags(const std::unique_ptr<GrFragmentProcessor>& fp,
diff --git a/src/gpu/effects/generated/GrPremulInputFragmentProcessor.cpp b/src/gpu/effects/generated/GrPremulInputFragmentProcessor.cpp
index 846a4f8..728e671 100644
--- a/src/gpu/effects/generated/GrPremulInputFragmentProcessor.cpp
+++ b/src/gpu/effects/generated/GrPremulInputFragmentProcessor.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrPremulInputFragmentProcessor.fp; do not modify.
  **************************************************************************************************/
 #include "GrPremulInputFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLPremulInputFragmentProcessor : public GrGLSLFragmentProcessor {
 public:
     GrGLSLPremulInputFragmentProcessor() {}
diff --git a/src/gpu/effects/generated/GrPremulInputFragmentProcessor.h b/src/gpu/effects/generated/GrPremulInputFragmentProcessor.h
index bfcfdb8..ccb8767 100644
--- a/src/gpu/effects/generated/GrPremulInputFragmentProcessor.h
+++ b/src/gpu/effects/generated/GrPremulInputFragmentProcessor.h
@@ -10,9 +10,10 @@
  **************************************************************************************************/
 #ifndef GrPremulInputFragmentProcessor_DEFINED
 #define GrPremulInputFragmentProcessor_DEFINED
-#include "SkTypes.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkTypes.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrPremulInputFragmentProcessor : public GrFragmentProcessor {
 public:
     SkPMColor4f constantOutputForConstantInput(const SkPMColor4f& input) const override {
diff --git a/src/gpu/effects/generated/GrRRectBlurEffect.cpp b/src/gpu/effects/generated/GrRRectBlurEffect.cpp
index 878678c..6380367 100644
--- a/src/gpu/effects/generated/GrRRectBlurEffect.cpp
+++ b/src/gpu/effects/generated/GrRRectBlurEffect.cpp
@@ -49,12 +49,12 @@
             new GrRRectBlurEffect(xformedSigma, devRRect.getBounds(),
                                   SkRRectPriv::GetSimpleRadii(devRRect).fX, std::move(mask)));
 }
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLRRectBlurEffect : public GrGLSLFragmentProcessor {
 public:
     GrGLSLRRectBlurEffect() {}
diff --git a/src/gpu/effects/generated/GrRRectBlurEffect.h b/src/gpu/effects/generated/GrRRectBlurEffect.h
index 7c7da9a..2812cbc 100644
--- a/src/gpu/effects/generated/GrRRectBlurEffect.h
+++ b/src/gpu/effects/generated/GrRRectBlurEffect.h
@@ -10,23 +10,24 @@
  **************************************************************************************************/
 #ifndef GrRRectBlurEffect_DEFINED
 #define GrRRectBlurEffect_DEFINED
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrCaps.h"
-#include "GrClip.h"
-#include "GrContext.h"
-#include "GrPaint.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrStyle.h"
-#include "SkBlurMaskFilter.h"
-#include "SkBlurPriv.h"
-#include "SkGpuBlurUtils.h"
-#include "SkRRectPriv.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/effects/SkBlurMaskFilter.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/core/SkBlurPriv.h"
+#include "src/core/SkGpuBlurUtils.h"
+#include "src/core/SkRRectPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrPaint.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrStyle.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrRRectBlurEffect : public GrFragmentProcessor {
 public:
     static sk_sp<GrTextureProxy> find_or_create_rrect_blur_mask(GrRecordingContext* context,
diff --git a/src/gpu/effects/generated/GrRectBlurEffect.cpp b/src/gpu/effects/generated/GrRectBlurEffect.cpp
index b03c8f9..ad27bfd 100644
--- a/src/gpu/effects/generated/GrRectBlurEffect.cpp
+++ b/src/gpu/effects/generated/GrRectBlurEffect.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrRectBlurEffect.fp; do not modify.
  **************************************************************************************************/
 #include "GrRectBlurEffect.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLRectBlurEffect : public GrGLSLFragmentProcessor {
 public:
     GrGLSLRectBlurEffect() {}
diff --git a/src/gpu/effects/generated/GrRectBlurEffect.h b/src/gpu/effects/generated/GrRectBlurEffect.h
index 6e09aae..269bfa7 100644
--- a/src/gpu/effects/generated/GrRectBlurEffect.h
+++ b/src/gpu/effects/generated/GrRectBlurEffect.h
@@ -10,14 +10,15 @@
  **************************************************************************************************/
 #ifndef GrRectBlurEffect_DEFINED
 #define GrRectBlurEffect_DEFINED
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrProxyProvider.h"
-#include "GrShaderCaps.h"
-#include "SkBlurMask.h"
-#include "SkScalar.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkScalar.h"
+#include "src/core/SkBlurMask.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrShaderCaps.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrRectBlurEffect : public GrFragmentProcessor {
 public:
     static sk_sp<GrTextureProxy> CreateBlurProfileTexture(GrProxyProvider* proxyProvider,
diff --git a/src/gpu/effects/generated/GrSimpleTextureEffect.cpp b/src/gpu/effects/generated/GrSimpleTextureEffect.cpp
index 8236ebc..c356996 100644
--- a/src/gpu/effects/generated/GrSimpleTextureEffect.cpp
+++ b/src/gpu/effects/generated/GrSimpleTextureEffect.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrSimpleTextureEffect.fp; do not modify.
  **************************************************************************************************/
 #include "GrSimpleTextureEffect.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLSimpleTextureEffect : public GrGLSLFragmentProcessor {
 public:
     GrGLSLSimpleTextureEffect() {}
diff --git a/src/gpu/effects/generated/GrSimpleTextureEffect.h b/src/gpu/effects/generated/GrSimpleTextureEffect.h
index ac54e6a..556c2c3 100644
--- a/src/gpu/effects/generated/GrSimpleTextureEffect.h
+++ b/src/gpu/effects/generated/GrSimpleTextureEffect.h
@@ -10,9 +10,10 @@
  **************************************************************************************************/
 #ifndef GrSimpleTextureEffect_DEFINED
 #define GrSimpleTextureEffect_DEFINED
-#include "SkTypes.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkTypes.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrSimpleTextureEffect : public GrFragmentProcessor {
 public:
     static std::unique_ptr<GrFragmentProcessor> Make(sk_sp<GrTextureProxy> proxy,
diff --git a/src/gpu/gl/GrGLAssembleGLESInterfaceAutogen.cpp b/src/gpu/gl/GrGLAssembleGLESInterfaceAutogen.cpp
index d5225f3..73aacc1 100644
--- a/src/gpu/gl/GrGLAssembleGLESInterfaceAutogen.cpp
+++ b/src/gpu/gl/GrGLAssembleGLESInterfaceAutogen.cpp
@@ -9,9 +9,9 @@
  * be overwritten.
  */
 
-#include "gl/GrGLAssembleInterface.h"
-#include "gl/GrGLAssembleHelpers.h"
-#include "gl/GrGLUtil.h"
+#include "include/gpu/gl/GrGLAssembleHelpers.h"
+#include "include/gpu/gl/GrGLAssembleInterface.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
 #define GET_PROC(F) functions->f##F = (GrGL##F##Fn*)get(ctx, "gl" #F)
 #define GET_PROC_SUFFIX(F, S) functions->f##F = (GrGL##F##Fn*)get(ctx, "gl" #F #S)
diff --git a/src/gpu/gl/GrGLAssembleGLInterfaceAutogen.cpp b/src/gpu/gl/GrGLAssembleGLInterfaceAutogen.cpp
index be47aba..b39d9d9 100644
--- a/src/gpu/gl/GrGLAssembleGLInterfaceAutogen.cpp
+++ b/src/gpu/gl/GrGLAssembleGLInterfaceAutogen.cpp
@@ -9,9 +9,9 @@
  * be overwritten.
  */
 
-#include "gl/GrGLAssembleInterface.h"
-#include "gl/GrGLAssembleHelpers.h"
-#include "gl/GrGLUtil.h"
+#include "include/gpu/gl/GrGLAssembleHelpers.h"
+#include "include/gpu/gl/GrGLAssembleInterface.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
 #define GET_PROC(F) functions->f##F = (GrGL##F##Fn*)get(ctx, "gl" #F)
 #define GET_PROC_SUFFIX(F, S) functions->f##F = (GrGL##F##Fn*)get(ctx, "gl" #F #S)
diff --git a/src/gpu/gl/GrGLAssembleHelpers.cpp b/src/gpu/gl/GrGLAssembleHelpers.cpp
index 94116f7..5e5163f 100644
--- a/src/gpu/gl/GrGLAssembleHelpers.cpp
+++ b/src/gpu/gl/GrGLAssembleHelpers.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gl/GrGLAssembleHelpers.h"
-#include "gl/GrGLUtil.h"
+#include "include/gpu/gl/GrGLAssembleHelpers.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
 void GrGetEGLQueryAndDisplay(GrEGLQueryStringFn** queryString, GrEGLDisplay* display,
                              void* ctx, GrGLGetProc get) {
diff --git a/src/gpu/gl/GrGLAssembleInterface.cpp b/src/gpu/gl/GrGLAssembleInterface.cpp
index 850a0e4..56ce729 100644
--- a/src/gpu/gl/GrGLAssembleInterface.cpp
+++ b/src/gpu/gl/GrGLAssembleInterface.cpp
@@ -6,9 +6,9 @@
  */
 
 
-#include "gl/GrGLAssembleInterface.h"
-#include "gl/GrGLAssembleHelpers.h"
-#include "gl/GrGLUtil.h"
+#include "include/gpu/gl/GrGLAssembleHelpers.h"
+#include "include/gpu/gl/GrGLAssembleInterface.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
 #define GET_PROC_LOCAL(F) GrGL##F##Fn* F = (GrGL##F##Fn*)get(ctx, "gl" #F)
 
diff --git a/src/gpu/gl/GrGLAssembleWebGLInterfaceAutogen.cpp b/src/gpu/gl/GrGLAssembleWebGLInterfaceAutogen.cpp
index cc77b41..1516368 100644
--- a/src/gpu/gl/GrGLAssembleWebGLInterfaceAutogen.cpp
+++ b/src/gpu/gl/GrGLAssembleWebGLInterfaceAutogen.cpp
@@ -9,9 +9,9 @@
  * be overwritten.
  */
 
-#include "gl/GrGLAssembleInterface.h"
-#include "gl/GrGLAssembleHelpers.h"
-#include "gl/GrGLUtil.h"
+#include "include/gpu/gl/GrGLAssembleHelpers.h"
+#include "include/gpu/gl/GrGLAssembleInterface.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
 #define GET_PROC(F) functions->f##F = (GrGL##F##Fn*)get(ctx, "gl" #F)
 #define GET_PROC_SUFFIX(F, S) functions->f##F = (GrGL##F##Fn*)get(ctx, "gl" #F #S)
diff --git a/src/gpu/gl/GrGLBuffer.cpp b/src/gpu/gl/GrGLBuffer.cpp
index f7eaa6f..578e9fa 100644
--- a/src/gpu/gl/GrGLBuffer.cpp
+++ b/src/gpu/gl/GrGLBuffer.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLBuffer.h"
-#include "GrGLGpu.h"
-#include "GrGpuResourcePriv.h"
-#include "SkTraceMemoryDump.h"
+#include "include/core/SkTraceMemoryDump.h"
+#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/gl/GrGLBuffer.h"
+#include "src/gpu/gl/GrGLGpu.h"
 
 #define GL_CALL(X) GR_GL_CALL(this->glGpu()->glInterface(), X)
 #define GL_CALL_RET(RET, X) GR_GL_CALL_RET(this->glGpu()->glInterface(), RET, X)
diff --git a/src/gpu/gl/GrGLBuffer.h b/src/gpu/gl/GrGLBuffer.h
index 76d902c..d408e468 100644
--- a/src/gpu/gl/GrGLBuffer.h
+++ b/src/gpu/gl/GrGLBuffer.h
@@ -8,8 +8,8 @@
 #ifndef GrGLBuffer_DEFINED
 #define GrGLBuffer_DEFINED
 
-#include "GrGpuBuffer.h"
-#include "gl/GrGLTypes.h"
+#include "include/gpu/gl/GrGLTypes.h"
+#include "src/gpu/GrGpuBuffer.h"
 
 class GrGLGpu;
 class GrGLCaps;
diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp
index 4e04423..c22daa1 100644
--- a/src/gpu/gl/GrGLCaps.cpp
+++ b/src/gpu/gl/GrGLCaps.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLCaps.h"
-#include "GrContextOptions.h"
-#include "GrGLContext.h"
-#include "GrGLRenderTarget.h"
-#include "GrGLTexture.h"
-#include "GrRenderTargetProxyPriv.h"
-#include "GrShaderCaps.h"
-#include "GrSurfaceProxyPriv.h"
-#include "GrTextureProxyPriv.h"
-#include "SkJSONWriter.h"
-#include "SkGr.h"
-#include "SkTSearch.h"
-#include "SkTSort.h"
+#include "include/gpu/GrContextOptions.h"
+#include "include/private/SkTSearch.h"
+#include "src/core/SkTSort.h"
+#include "src/gpu/GrRenderTargetProxyPriv.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
+#include "src/gpu/GrTextureProxyPriv.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/gl/GrGLCaps.h"
+#include "src/gpu/gl/GrGLContext.h"
+#include "src/gpu/gl/GrGLRenderTarget.h"
+#include "src/gpu/gl/GrGLTexture.h"
+#include "src/utils/SkJSONWriter.h"
 
 GrGLCaps::GrGLCaps(const GrContextOptions& contextOptions,
                    const GrGLContextInfo& ctxInfo,
diff --git a/src/gpu/gl/GrGLCaps.h b/src/gpu/gl/GrGLCaps.h
index a2c6ccf..e845c32 100644
--- a/src/gpu/gl/GrGLCaps.h
+++ b/src/gpu/gl/GrGLCaps.h
@@ -10,12 +10,12 @@
 #define GrGLCaps_DEFINED
 
 #include <functional>
-#include "GrCaps.h"
-#include "GrGLStencilAttachment.h"
-#include "GrSwizzle.h"
-#include "SkChecksum.h"
-#include "SkTHash.h"
-#include "SkTArray.h"
+#include "include/private/SkChecksum.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTHash.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrSwizzle.h"
+#include "src/gpu/gl/GrGLStencilAttachment.h"
 
 class GrGLContextInfo;
 class GrGLRenderTarget;
diff --git a/src/gpu/gl/GrGLContext.cpp b/src/gpu/gl/GrGLContext.cpp
index 1c570e5..9a35b9f 100644
--- a/src/gpu/gl/GrGLContext.cpp
+++ b/src/gpu/gl/GrGLContext.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLContext.h"
-#include "GrGLGLSL.h"
-#include "SkSLCompiler.h"
+#include "src/gpu/gl/GrGLContext.h"
+#include "src/gpu/gl/GrGLGLSL.h"
+#include "src/sksl/SkSLCompiler.h"
 
 ////////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/gpu/gl/GrGLContext.h b/src/gpu/gl/GrGLContext.h
index 4ed76e6..5ea8178 100644
--- a/src/gpu/gl/GrGLContext.h
+++ b/src/gpu/gl/GrGLContext.h
@@ -9,11 +9,11 @@
 #ifndef GrGLContext_DEFINED
 #define GrGLContext_DEFINED
 
-#include "GrGLCaps.h"
-#include "GrGLUtil.h"
-#include "gl/GrGLExtensions.h"
-#include "gl/GrGLInterface.h"
-#include "glsl/GrGLSL.h"
+#include "include/gpu/gl/GrGLExtensions.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "src/gpu/gl/GrGLCaps.h"
+#include "src/gpu/gl/GrGLUtil.h"
+#include "src/gpu/glsl/GrGLSL.h"
 
 struct GrContextOptions;
 namespace SkSL {
diff --git a/src/gpu/gl/GrGLExtensions.cpp b/src/gpu/gl/GrGLExtensions.cpp
index bf5a321..07cc6cf 100644
--- a/src/gpu/gl/GrGLExtensions.cpp
+++ b/src/gpu/gl/GrGLExtensions.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "gl/GrGLExtensions.h"
-#include "gl/GrGLDefines.h"
-#include "gl/GrGLUtil.h"
+#include "include/gpu/gl/GrGLExtensions.h"
+#include "src/gpu/gl/GrGLDefines.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
-#include "SkJSONWriter.h"
-#include "SkMakeUnique.h"
-#include "SkTSearch.h"
-#include "SkTSort.h"
+#include "include/private/SkTSearch.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkTSort.h"
+#include "src/utils/SkJSONWriter.h"
 
 namespace { // This cannot be static because it is used as a template parameter.
 inline bool extension_compare(const SkString& a, const SkString& b) {
diff --git a/src/gpu/gl/GrGLGLSL.cpp b/src/gpu/gl/GrGLGLSL.cpp
index 6aeaa63..9d6d7e2 100644
--- a/src/gpu/gl/GrGLGLSL.cpp
+++ b/src/gpu/gl/GrGLGLSL.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLGLSL.h"
-#include "GrGLUtil.h"
+#include "src/gpu/gl/GrGLGLSL.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
 bool GrGLGetGLSLGeneration(const GrGLInterface* gl, GrGLSLGeneration* generation) {
     SkASSERT(generation);
diff --git a/src/gpu/gl/GrGLGLSL.h b/src/gpu/gl/GrGLGLSL.h
index 48bea7f..de86cd1 100644
--- a/src/gpu/gl/GrGLGLSL.h
+++ b/src/gpu/gl/GrGLGLSL.h
@@ -8,7 +8,7 @@
 #ifndef GrGLGLSL_DEFINED
 #define GrGLGLSL_DEFINED
 
-#include "glsl/GrGLSL.h"
+#include "src/gpu/glsl/GrGLSL.h"
 
 struct GrGLInterface;
 
diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp
index d1283e2..62d882d 100644
--- a/src/gpu/gl/GrGLGpu.cpp
+++ b/src/gpu/gl/GrGLGpu.cpp
@@ -5,37 +5,37 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLGpu.h"
-#include "GrBackendSemaphore.h"
-#include "GrBackendSurface.h"
-#include "GrCpuBuffer.h"
-#include "GrFixedClip.h"
-#include "GrGLBuffer.h"
-#include "GrGLGpuCommandBuffer.h"
-#include "GrGLSemaphore.h"
-#include "GrGLStencilAttachment.h"
-#include "GrGLTextureRenderTarget.h"
-#include "GrGpuResourcePriv.h"
-#include "GrMesh.h"
-#include "GrPipeline.h"
-#include "GrRenderTargetPriv.h"
-#include "GrShaderCaps.h"
-#include "GrSurfaceProxyPriv.h"
-#include "GrTexturePriv.h"
-#include "GrTypes.h"
-#include "SkAutoMalloc.h"
-#include "SkConvertPixels.h"
-#include "SkHalf.h"
-#include "SkMakeUnique.h"
-#include "SkMipMap.h"
-#include "SkPixmap.h"
-#include "SkSLCompiler.h"
-#include "SkStrokeRec.h"
-#include "SkTemplates.h"
-#include "SkTo.h"
-#include "SkTraceEvent.h"
-#include "SkTypes.h"
-#include "builders/GrGLShaderStringBuilder.h"
+#include "include/core/SkPixmap.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/core/SkTypes.h"
+#include "include/gpu/GrBackendSemaphore.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/SkHalf.h"
+#include "include/private/SkTemplates.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkConvertPixels.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkMipMap.h"
+#include "src/core/SkTraceEvent.h"
+#include "src/gpu/GrCpuBuffer.h"
+#include "src/gpu/GrFixedClip.h"
+#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/GrMesh.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/gl/GrGLBuffer.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLGpuCommandBuffer.h"
+#include "src/gpu/gl/GrGLSemaphore.h"
+#include "src/gpu/gl/GrGLStencilAttachment.h"
+#include "src/gpu/gl/GrGLTextureRenderTarget.h"
+#include "src/gpu/gl/builders/GrGLShaderStringBuilder.h"
+#include "src/sksl/SkSLCompiler.h"
 
 #include <cmath>
 
@@ -4374,7 +4374,7 @@
 }
 
 #ifdef SK_ENABLE_DUMP_GPU
-#include "SkJSONWriter.h"
+#include "src/utils/SkJSONWriter.h"
 void GrGLGpu::onDumpJSON(SkJSONWriter* writer) const {
     // We are called by the base class, which has already called beginObject(). We choose to nest
     // all of our caps information in a named sub-object.
diff --git a/src/gpu/gl/GrGLGpu.h b/src/gpu/gl/GrGLGpu.h
index 1b8e875..68fcc7e 100644
--- a/src/gpu/gl/GrGLGpu.h
+++ b/src/gpu/gl/GrGLGpu.h
@@ -8,21 +8,21 @@
 #ifndef GrGLGpu_DEFINED
 #define GrGLGpu_DEFINED
 
-#include "GrGLContext.h"
-#include "GrGLIRect.h"
-#include "GrGLPathRendering.h"
-#include "GrGLProgram.h"
-#include "GrGLRenderTarget.h"
-#include "GrGLStencilAttachment.h"
-#include "GrGLTexture.h"
-#include "GrGLVertexArray.h"
-#include "GrGpu.h"
-#include "GrMesh.h"
-#include "GrWindowRectsState.h"
-#include "GrXferProcessor.h"
-#include "SkLRUCache.h"
-#include "SkTArray.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTArray.h"
+#include "src/core/SkLRUCache.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrMesh.h"
+#include "src/gpu/GrWindowRectsState.h"
+#include "src/gpu/GrXferProcessor.h"
+#include "src/gpu/gl/GrGLContext.h"
+#include "src/gpu/gl/GrGLIRect.h"
+#include "src/gpu/gl/GrGLPathRendering.h"
+#include "src/gpu/gl/GrGLProgram.h"
+#include "src/gpu/gl/GrGLRenderTarget.h"
+#include "src/gpu/gl/GrGLStencilAttachment.h"
+#include "src/gpu/gl/GrGLTexture.h"
+#include "src/gpu/gl/GrGLVertexArray.h"
 
 class GrGLBuffer;
 class GrGLGpuRTCommandBuffer;
diff --git a/src/gpu/gl/GrGLGpuCommandBuffer.cpp b/src/gpu/gl/GrGLGpuCommandBuffer.cpp
index 425a6a1..1412aa3 100644
--- a/src/gpu/gl/GrGLGpuCommandBuffer.cpp
+++ b/src/gpu/gl/GrGLGpuCommandBuffer.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLGpuCommandBuffer.h"
+#include "src/gpu/gl/GrGLGpuCommandBuffer.h"
 
-#include "GrContextPriv.h"
-#include "GrFixedClip.h"
-#include "GrRenderTargetPriv.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrFixedClip.h"
+#include "src/gpu/GrRenderTargetPriv.h"
 
 void GrGLGpuRTCommandBuffer::begin() {
     if (GrLoadOp::kClear == fColorLoadAndStoreInfo.fLoadOp) {
diff --git a/src/gpu/gl/GrGLGpuCommandBuffer.h b/src/gpu/gl/GrGLGpuCommandBuffer.h
index 86beee7..02c16d7 100644
--- a/src/gpu/gl/GrGLGpuCommandBuffer.h
+++ b/src/gpu/gl/GrGLGpuCommandBuffer.h
@@ -8,11 +8,11 @@
 #ifndef GrGLGpuCommandBuffer_DEFINED
 #define GrGLGpuCommandBuffer_DEFINED
 
-#include "GrGpuCommandBuffer.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
 
-#include "GrGLGpu.h"
-#include "GrGLRenderTarget.h"
-#include "GrOpFlushState.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLRenderTarget.h"
 
 class GrGLGpu;
 class GrGLRenderTarget;
diff --git a/src/gpu/gl/GrGLGpuProgramCache.cpp b/src/gpu/gl/GrGLGpuProgramCache.cpp
index 4a8f150..e2a68e1 100644
--- a/src/gpu/gl/GrGLGpuProgramCache.cpp
+++ b/src/gpu/gl/GrGLGpuProgramCache.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLGpu.h"
+#include "src/gpu/gl/GrGLGpu.h"
 
-#include "builders/GrGLProgramBuilder.h"
-#include "GrProcessor.h"
-#include "GrProgramDesc.h"
-#include "GrGLPathRendering.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "SkTSearch.h"
+#include "include/private/SkTSearch.h"
+#include "src/gpu/GrProcessor.h"
+#include "src/gpu/GrProgramDesc.h"
+#include "src/gpu/gl/GrGLPathRendering.h"
+#include "src/gpu/gl/builders/GrGLProgramBuilder.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
 
 #ifdef PROGRAM_CACHE_STATS
 // Display program cache usage
diff --git a/src/gpu/gl/GrGLIRect.h b/src/gpu/gl/GrGLIRect.h
index eea341c..b55ceda 100644
--- a/src/gpu/gl/GrGLIRect.h
+++ b/src/gpu/gl/GrGLIRect.h
@@ -10,8 +10,8 @@
 #ifndef GrGLIRect_DEFINED
 #define GrGLIRect_DEFINED
 
-#include "gl/GrGLInterface.h"
-#include "GrGLUtil.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
 /**
  * Helper struct for dealing with the fact that Ganesh and GL use different
diff --git a/src/gpu/gl/GrGLInterfaceAutogen.cpp b/src/gpu/gl/GrGLInterfaceAutogen.cpp
index 4811883..c2c8a5e 100644
--- a/src/gpu/gl/GrGLInterfaceAutogen.cpp
+++ b/src/gpu/gl/GrGLInterfaceAutogen.cpp
@@ -9,9 +9,9 @@
  * be overwritten.
  */
 
-#include "gl/GrGLInterface.h"
-#include "gl/GrGLExtensions.h"
-#include "gl/GrGLUtil.h"
+#include "include/gpu/gl/GrGLExtensions.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
 #include <stdio.h>
 
diff --git a/src/gpu/gl/GrGLMakeNativeInterface_none.cpp b/src/gpu/gl/GrGLMakeNativeInterface_none.cpp
index 6d460c5..d4ac8bc 100644
--- a/src/gpu/gl/GrGLMakeNativeInterface_none.cpp
+++ b/src/gpu/gl/GrGLMakeNativeInterface_none.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "gl/GrGLInterface.h"
+#include "include/gpu/gl/GrGLInterface.h"
 
 sk_sp<const GrGLInterface> GrGLMakeNativeInterface() { return nullptr; }
 
diff --git a/src/gpu/gl/GrGLPath.cpp b/src/gpu/gl/GrGLPath.cpp
index a989c4f..e73e73e 100644
--- a/src/gpu/gl/GrGLPath.cpp
+++ b/src/gpu/gl/GrGLPath.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLPath.h"
-#include "GrGLPathRendering.h"
-#include "GrGLGpu.h"
-#include "GrStyle.h"
+#include "src/gpu/GrStyle.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLPath.h"
+#include "src/gpu/gl/GrGLPathRendering.h"
 
 namespace {
 inline GrGLubyte verb_to_gl_path_cmd(SkPath::Verb verb) {
diff --git a/src/gpu/gl/GrGLPath.h b/src/gpu/gl/GrGLPath.h
index ddcee53..9050120 100644
--- a/src/gpu/gl/GrGLPath.h
+++ b/src/gpu/gl/GrGLPath.h
@@ -8,8 +8,8 @@
 #ifndef GrGLPath_DEFINED
 #define GrGLPath_DEFINED
 
-#include "../GrPath.h"
-#include "gl/GrGLTypes.h"
+#include "include/gpu/gl/GrGLTypes.h"
+#include "src/gpu/GrPath.h"
 
 class GrGLGpu;
 class GrStyle;
diff --git a/src/gpu/gl/GrGLPathRendering.cpp b/src/gpu/gl/GrGLPathRendering.cpp
index cc41975..a49f9a3 100644
--- a/src/gpu/gl/GrGLPathRendering.cpp
+++ b/src/gpu/gl/GrGLPathRendering.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "gl/GrGLPathRendering.h"
-#include "gl/GrGLUtil.h"
-#include "gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLPathRendering.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
-#include "GrGLPath.h"
-#include "GrGLPathRendering.h"
-#include "GrRenderTargetProxy.h"
+#include "include/private/GrRenderTargetProxy.h"
+#include "src/gpu/gl/GrGLPath.h"
+#include "src/gpu/gl/GrGLPathRendering.h"
 
-#include "SkStream.h"
-#include "SkTypeface.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
 
 #define GL_CALL(X) GR_GL_CALL(this->gpu()->glInterface(), X)
 #define GL_CALL_RET(RET, X) GR_GL_CALL_RET(this->gpu()->glInterface(), RET, X)
diff --git a/src/gpu/gl/GrGLPathRendering.h b/src/gpu/gl/GrGLPathRendering.h
index a895076..b643c5e 100644
--- a/src/gpu/gl/GrGLPathRendering.h
+++ b/src/gpu/gl/GrGLPathRendering.h
@@ -8,12 +8,12 @@
 #ifndef GrGLPathRendering_DEFINED
 #define GrGLPathRendering_DEFINED
 
-#include "SkRefCnt.h"
-#include "GrGpu.h"
-#include "GrPathRendering.h"
-#include "GrStencilSettings.h"
-#include "gl/GrGLTypes.h"
-#include "glsl/GrGLSLUtil.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/gl/GrGLTypes.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrPathRendering.h"
+#include "src/gpu/GrStencilSettings.h"
+#include "src/gpu/glsl/GrGLSLUtil.h"
 
 class GrGLNameAllocator;
 class GrGLGpu;
diff --git a/src/gpu/gl/GrGLProgram.cpp b/src/gpu/gl/GrGLProgram.cpp
index 472be86..7583ce0 100644
--- a/src/gpu/gl/GrGLProgram.cpp
+++ b/src/gpu/gl/GrGLProgram.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLProgram.h"
-#include "GrAllocator.h"
-#include "GrCoordTransform.h"
-#include "GrGLBuffer.h"
-#include "GrGLGpu.h"
-#include "GrGLPathRendering.h"
-#include "GrPathProcessor.h"
-#include "GrPipeline.h"
-#include "GrProcessor.h"
-#include "GrTexturePriv.h"
-#include "GrXferProcessor.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLXferProcessor.h"
+#include "src/gpu/GrAllocator.h"
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrPathProcessor.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/GrProcessor.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/GrXferProcessor.h"
+#include "src/gpu/gl/GrGLBuffer.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLPathRendering.h"
+#include "src/gpu/gl/GrGLProgram.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLXferProcessor.h"
 
 #define GL_CALL(X) GR_GL_CALL(fGpu->glInterface(), X)
 #define GL_CALL_RET(R, X) GR_GL_CALL_RET(fGpu->glInterface(), R, X)
diff --git a/src/gpu/gl/GrGLProgram.h b/src/gpu/gl/GrGLProgram.h
index 78cf484..b28bedb 100644
--- a/src/gpu/gl/GrGLProgram.h
+++ b/src/gpu/gl/GrGLProgram.h
@@ -9,9 +9,9 @@
 #ifndef GrGLProgram_DEFINED
 #define GrGLProgram_DEFINED
 
-#include "GrGLProgramDataManager.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/gl/GrGLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 class GrGLSLFragmentProcessor;
 class GrGLSLPrimitiveProcessor;
diff --git a/src/gpu/gl/GrGLProgramDataManager.cpp b/src/gpu/gl/GrGLProgramDataManager.cpp
index 9c332bf..15d9d36 100644
--- a/src/gpu/gl/GrGLProgramDataManager.cpp
+++ b/src/gpu/gl/GrGLProgramDataManager.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkMatrix.h"
-#include "gl/GrGLProgramDataManager.h"
-#include "gl/GrGLGpu.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "include/core/SkMatrix.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 #define ASSERT_ARRAY_UPLOAD_IN_BOUNDS(UNI, COUNT) \
          SkASSERT((COUNT) <= (UNI).fArrayCount || \
diff --git a/src/gpu/gl/GrGLProgramDataManager.h b/src/gpu/gl/GrGLProgramDataManager.h
index 2c725db..3a67fe0 100644
--- a/src/gpu/gl/GrGLProgramDataManager.h
+++ b/src/gpu/gl/GrGLProgramDataManager.h
@@ -8,12 +8,12 @@
 #ifndef GrGLProgramDataManager_DEFINED
 #define GrGLProgramDataManager_DEFINED
 
-#include "GrAllocator.h"
-#include "GrShaderVar.h"
-#include "gl/GrGLTypes.h"
-#include "glsl/GrGLSLProgramDataManager.h"
+#include "include/gpu/gl/GrGLTypes.h"
+#include "src/gpu/GrAllocator.h"
+#include "src/gpu/GrShaderVar.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
 
-#include "SkTArray.h"
+#include "include/private/SkTArray.h"
 
 class GrGLGpu;
 class SkMatrix;
diff --git a/src/gpu/gl/GrGLRenderTarget.cpp b/src/gpu/gl/GrGLRenderTarget.cpp
index e90ca90..89eaa68 100644
--- a/src/gpu/gl/GrGLRenderTarget.cpp
+++ b/src/gpu/gl/GrGLRenderTarget.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLRenderTarget.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGLGpu.h"
-#include "GrGLUtil.h"
-#include "GrGpuResourcePriv.h"
-#include "GrRenderTargetPriv.h"
-#include "SkTraceMemoryDump.h"
+#include "include/core/SkTraceMemoryDump.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLRenderTarget.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
 #define GPUGL static_cast<GrGLGpu*>(this->getGpu())
 #define GL_CALL(X) GR_GL_CALL(GPUGL->glInterface(), X)
diff --git a/src/gpu/gl/GrGLRenderTarget.h b/src/gpu/gl/GrGLRenderTarget.h
index 49f1631..ca0affe 100644
--- a/src/gpu/gl/GrGLRenderTarget.h
+++ b/src/gpu/gl/GrGLRenderTarget.h
@@ -9,10 +9,10 @@
 #ifndef GrGLRenderTarget_DEFINED
 #define GrGLRenderTarget_DEFINED
 
-#include "GrBackendSurface.h"
-#include "GrGLIRect.h"
-#include "GrRenderTarget.h"
-#include "SkScalar.h"
+#include "include/core/SkScalar.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "src/gpu/gl/GrGLIRect.h"
 
 class GrGLCaps;
 class GrGLGpu;
diff --git a/src/gpu/gl/GrGLSemaphore.cpp b/src/gpu/gl/GrGLSemaphore.cpp
index d594dc8..d3a224e 100644
--- a/src/gpu/gl/GrGLSemaphore.cpp
+++ b/src/gpu/gl/GrGLSemaphore.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLSemaphore.h"
+#include "src/gpu/gl/GrGLSemaphore.h"
 
-#include "GrGLGpu.h"
+#include "src/gpu/gl/GrGLGpu.h"
 
 GrGLSemaphore::GrGLSemaphore(GrGLGpu* gpu, bool isOwned)
         : INHERITED(gpu), fSync(0), fIsOwned(isOwned) {
diff --git a/src/gpu/gl/GrGLSemaphore.h b/src/gpu/gl/GrGLSemaphore.h
index 851ae02..aff3b73 100644
--- a/src/gpu/gl/GrGLSemaphore.h
+++ b/src/gpu/gl/GrGLSemaphore.h
@@ -8,9 +8,9 @@
 #ifndef GrGLSemaphore_DEFINED
 #define GrGLSemaphore_DEFINED
 
-#include "GrBackendSemaphore.h"
-#include "GrSemaphore.h"
-#include "GrTypesPriv.h"
+#include "include/gpu/GrBackendSemaphore.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/GrSemaphore.h"
 
 class GrGLGpu;
 
diff --git a/src/gpu/gl/GrGLStencilAttachment.cpp b/src/gpu/gl/GrGLStencilAttachment.cpp
index 5c07a7d..4b749c6 100644
--- a/src/gpu/gl/GrGLStencilAttachment.cpp
+++ b/src/gpu/gl/GrGLStencilAttachment.cpp
@@ -6,9 +6,9 @@
  */
 
 
-#include "GrGLStencilAttachment.h"
-#include "GrGLGpu.h"
-#include "SkTraceMemoryDump.h"
+#include "include/core/SkTraceMemoryDump.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLStencilAttachment.h"
 
 size_t GrGLStencilAttachment::onGpuMemorySize() const {
     uint64_t size = this->width();
diff --git a/src/gpu/gl/GrGLStencilAttachment.h b/src/gpu/gl/GrGLStencilAttachment.h
index f578bf8..5be4954 100644
--- a/src/gpu/gl/GrGLStencilAttachment.h
+++ b/src/gpu/gl/GrGLStencilAttachment.h
@@ -9,8 +9,8 @@
 #ifndef GrGLStencilAttachment_DEFINED
 #define GrGLStencilAttachment_DEFINED
 
-#include "gl/GrGLInterface.h"
-#include "GrStencilAttachment.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "src/gpu/GrStencilAttachment.h"
 
 class GrGLStencilAttachment : public GrStencilAttachment {
 public:
diff --git a/src/gpu/gl/GrGLTexture.cpp b/src/gpu/gl/GrGLTexture.cpp
index 5917131..942f125 100644
--- a/src/gpu/gl/GrGLTexture.cpp
+++ b/src/gpu/gl/GrGLTexture.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLTexture.h"
-#include "GrGLGpu.h"
-#include "GrSemaphore.h"
-#include "GrShaderCaps.h"
-#include "GrTexturePriv.h"
-#include "SkTraceMemoryDump.h"
+#include "include/core/SkTraceMemoryDump.h"
+#include "src/gpu/GrSemaphore.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLTexture.h"
 
 #define GPUGL static_cast<GrGLGpu*>(this->getGpu())
 #define GL_CALL(X) GR_GL_CALL(GPUGL->glInterface(), X)
diff --git a/src/gpu/gl/GrGLTexture.h b/src/gpu/gl/GrGLTexture.h
index 8ca2737..54d419c 100644
--- a/src/gpu/gl/GrGLTexture.h
+++ b/src/gpu/gl/GrGLTexture.h
@@ -9,9 +9,9 @@
 #ifndef GrGLTexture_DEFINED
 #define GrGLTexture_DEFINED
 
-#include "GrGpu.h"
-#include "GrTexture.h"
-#include "GrGLUtil.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
 class GrGLGpu;
 
diff --git a/src/gpu/gl/GrGLTextureRenderTarget.cpp b/src/gpu/gl/GrGLTextureRenderTarget.cpp
index 4069b67..ab86162 100644
--- a/src/gpu/gl/GrGLTextureRenderTarget.cpp
+++ b/src/gpu/gl/GrGLTextureRenderTarget.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLTextureRenderTarget.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGLGpu.h"
-#include "GrTexturePriv.h"
-#include "SkTraceMemoryDump.h"
+#include "include/core/SkTraceMemoryDump.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLTextureRenderTarget.h"
 
 GrGLTextureRenderTarget::GrGLTextureRenderTarget(GrGLGpu* gpu,
                                                  SkBudgeted budgeted,
diff --git a/src/gpu/gl/GrGLTextureRenderTarget.h b/src/gpu/gl/GrGLTextureRenderTarget.h
index ffb5643..75cdf01 100644
--- a/src/gpu/gl/GrGLTextureRenderTarget.h
+++ b/src/gpu/gl/GrGLTextureRenderTarget.h
@@ -9,8 +9,8 @@
 #ifndef GrGLTextureRenderTarget_DEFINED
 #define GrGLTextureRenderTarget_DEFINED
 
-#include "GrGLTexture.h"
-#include "GrGLRenderTarget.h"
+#include "src/gpu/gl/GrGLRenderTarget.h"
+#include "src/gpu/gl/GrGLTexture.h"
 
 class GrGLGpu;
 
diff --git a/src/gpu/gl/GrGLUniformHandler.cpp b/src/gpu/gl/GrGLUniformHandler.cpp
index 2448bc6..285da53 100644
--- a/src/gpu/gl/GrGLUniformHandler.cpp
+++ b/src/gpu/gl/GrGLUniformHandler.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "gl/GrGLUniformHandler.h"
+#include "src/gpu/gl/GrGLUniformHandler.h"
 
-#include "GrTexturePriv.h"
-#include "gl/GrGLCaps.h"
-#include "gl/GrGLGpu.h"
-#include "gl/builders/GrGLProgramBuilder.h"
-#include "SkSLCompiler.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/gl/GrGLCaps.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/builders/GrGLProgramBuilder.h"
+#include "src/sksl/SkSLCompiler.h"
 
 #define GL_CALL(X) GR_GL_CALL(this->glGpu()->glInterface(), X)
 #define GL_CALL_RET(R, X) GR_GL_CALL_RET(this->glGpu()->glInterface(), R, X)
diff --git a/src/gpu/gl/GrGLUniformHandler.h b/src/gpu/gl/GrGLUniformHandler.h
index 04653d4..f1b9d8c 100644
--- a/src/gpu/gl/GrGLUniformHandler.h
+++ b/src/gpu/gl/GrGLUniformHandler.h
@@ -8,9 +8,9 @@
 #ifndef GrGLUniformHandler_DEFINED
 #define GrGLUniformHandler_DEFINED
 
-#include "glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
-#include "gl/GrGLProgramDataManager.h"
+#include "src/gpu/gl/GrGLProgramDataManager.h"
 
 class GrGLCaps;
 
diff --git a/src/gpu/gl/GrGLUtil.cpp b/src/gpu/gl/GrGLUtil.cpp
index 24b9341..5512a1c9 100644
--- a/src/gpu/gl/GrGLUtil.cpp
+++ b/src/gpu/gl/GrGLUtil.cpp
@@ -6,9 +6,9 @@
  */
 
 
-#include "GrGLUtil.h"
-#include "GrTypesPriv.h"
-#include "SkMatrix.h"
+#include "include/core/SkMatrix.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/gl/GrGLUtil.h"
 #include <stdio.h>
 
 void GrGLClearErr(const GrGLInterface* gl) {
diff --git a/src/gpu/gl/GrGLUtil.h b/src/gpu/gl/GrGLUtil.h
index 38c7135..dd25823 100644
--- a/src/gpu/gl/GrGLUtil.h
+++ b/src/gpu/gl/GrGLUtil.h
@@ -8,10 +8,10 @@
 #ifndef GrGLUtil_DEFINED
 #define GrGLUtil_DEFINED
 
-#include "gl/GrGLInterface.h"
-#include "GrGLDefines.h"
-#include "GrStencilSettings.h"
-#include "GrTypesPriv.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/GrStencilSettings.h"
+#include "src/gpu/gl/GrGLDefines.h"
 
 class SkMatrix;
 
diff --git a/src/gpu/gl/GrGLVaryingHandler.cpp b/src/gpu/gl/GrGLVaryingHandler.cpp
index e426d46..8f48a21 100644
--- a/src/gpu/gl/GrGLVaryingHandler.cpp
+++ b/src/gpu/gl/GrGLVaryingHandler.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "gl/GrGLVaryingHandler.h"
+#include "src/gpu/gl/GrGLVaryingHandler.h"
 
-#include "gl/GrGLGpu.h"
-#include "gl/builders/GrGLProgramBuilder.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/builders/GrGLProgramBuilder.h"
 
 
 GrGLSLVaryingHandler::VaryingHandle GrGLVaryingHandler::addPathProcessingVarying(
diff --git a/src/gpu/gl/GrGLVaryingHandler.h b/src/gpu/gl/GrGLVaryingHandler.h
index a8dbba0..da35e66 100644
--- a/src/gpu/gl/GrGLVaryingHandler.h
+++ b/src/gpu/gl/GrGLVaryingHandler.h
@@ -8,9 +8,9 @@
 #ifndef GrGLVaryingHandler_DEFINED
 #define GrGLVaryingHandler_DEFINED
 
-#include "glsl/GrGLSLVarying.h"
-#include "GrTypesPriv.h"
-#include "gl/GrGLProgramDataManager.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/gl/GrGLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
 
 class GrGLVaryingHandler : public GrGLSLVaryingHandler {
 public:
diff --git a/src/gpu/gl/GrGLVertexArray.cpp b/src/gpu/gl/GrGLVertexArray.cpp
index ab52b25..00d7d8d 100644
--- a/src/gpu/gl/GrGLVertexArray.cpp
+++ b/src/gpu/gl/GrGLVertexArray.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLVertexArray.h"
-#include "GrCpuBuffer.h"
-#include "GrGLBuffer.h"
-#include "GrGLGpu.h"
+#include "src/gpu/GrCpuBuffer.h"
+#include "src/gpu/gl/GrGLBuffer.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLVertexArray.h"
 
 struct AttribLayout {
     bool        fNormalized;  // Only used by floating point types.
diff --git a/src/gpu/gl/GrGLVertexArray.h b/src/gpu/gl/GrGLVertexArray.h
index 4e28e62..a253379 100644
--- a/src/gpu/gl/GrGLVertexArray.h
+++ b/src/gpu/gl/GrGLVertexArray.h
@@ -8,11 +8,11 @@
 #ifndef GrGLVertexArray_DEFINED
 #define GrGLVertexArray_DEFINED
 
-#include "GrGpuResource.h"
-#include "GrTypesPriv.h"
-#include "gl/GrGLDefines.h"
-#include "gl/GrGLTypes.h"
-#include "SkTArray.h"
+#include "include/gpu/GrGpuResource.h"
+#include "include/gpu/gl/GrGLTypes.h"
+#include "include/private/GrTypesPriv.h"
+#include "include/private/SkTArray.h"
+#include "src/gpu/gl/GrGLDefines.h"
 
 class GrBuffer;
 class GrGLGpu;
diff --git a/src/gpu/gl/builders/GrGLProgramBuilder.cpp b/src/gpu/gl/builders/GrGLProgramBuilder.cpp
index 885e363..03c718e 100644
--- a/src/gpu/gl/builders/GrGLProgramBuilder.cpp
+++ b/src/gpu/gl/builders/GrGLProgramBuilder.cpp
@@ -5,30 +5,30 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLProgramBuilder.h"
+#include "src/gpu/gl/builders/GrGLProgramBuilder.h"
 
-#include "GrAutoLocaleSetter.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrCoordTransform.h"
-#include "GrGLProgramBuilder.h"
-#include "GrPersistentCacheUtils.h"
-#include "GrProgramDesc.h"
-#include "GrShaderCaps.h"
-#include "GrSKSLPrettyPrint.h"
-#include "GrSwizzle.h"
-#include "SkAutoMalloc.h"
-#include "SkATrace.h"
-#include "SkReader32.h"
-#include "SkTraceEvent.h"
-#include "SkWriter32.h"
-#include "gl/GrGLGpu.h"
-#include "gl/GrGLProgram.h"
-#include "gl/builders/GrGLShaderStringBuilder.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLXferProcessor.h"
+#include "include/gpu/GrContext.h"
+#include "src/core/SkATrace.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkReader32.h"
+#include "src/core/SkTraceEvent.h"
+#include "src/core/SkWriter32.h"
+#include "src/gpu/GrAutoLocaleSetter.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrPersistentCacheUtils.h"
+#include "src/gpu/GrProgramDesc.h"
+#include "src/gpu/GrSKSLPrettyPrint.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrSwizzle.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLProgram.h"
+#include "src/gpu/gl/builders/GrGLProgramBuilder.h"
+#include "src/gpu/gl/builders/GrGLShaderStringBuilder.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLXferProcessor.h"
 
 #define GL_CALL(X) GR_GL_CALL(this->gpu()->glInterface(), X)
 #define GL_CALL_RET(R, X) GR_GL_CALL_RET(this->gpu()->glInterface(), R, X)
diff --git a/src/gpu/gl/builders/GrGLProgramBuilder.h b/src/gpu/gl/builders/GrGLProgramBuilder.h
index 494ad25..9f60bf5 100644
--- a/src/gpu/gl/builders/GrGLProgramBuilder.h
+++ b/src/gpu/gl/builders/GrGLProgramBuilder.h
@@ -8,14 +8,14 @@
 #ifndef GrGLProgramBuilder_DEFINED
 #define GrGLProgramBuilder_DEFINED
 
-#include "GrPipeline.h"
-#include "gl/GrGLProgram.h"
-#include "gl/GrGLProgramDataManager.h"
-#include "gl/GrGLUniformHandler.h"
-#include "gl/GrGLVaryingHandler.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "ir/SkSLProgram.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/gl/GrGLProgram.h"
+#include "src/gpu/gl/GrGLProgramDataManager.h"
+#include "src/gpu/gl/GrGLUniformHandler.h"
+#include "src/gpu/gl/GrGLVaryingHandler.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/sksl/ir/SkSLProgram.h"
 
 class GrFragmentProcessor;
 class GrGLContextInfo;
diff --git a/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp b/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp
index a3e5136..b885e09 100644
--- a/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp
+++ b/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLShaderStringBuilder.h"
-#include "GrSKSLPrettyPrint.h"
-#include "SkAutoMalloc.h"
-#include "SkSLCompiler.h"
-#include "SkSLGLSLCodeGenerator.h"
-#include "SkTraceEvent.h"
-#include "gl/GrGLGpu.h"
-#include "ir/SkSLProgram.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkTraceEvent.h"
+#include "src/gpu/GrSKSLPrettyPrint.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/builders/GrGLShaderStringBuilder.h"
+#include "src/sksl/SkSLCompiler.h"
+#include "src/sksl/SkSLGLSLCodeGenerator.h"
+#include "src/sksl/ir/SkSLProgram.h"
 
 #define GL_CALL(X) GR_GL_CALL(gpu->glInterface(), X)
 #define GL_CALL_RET(R, X) GR_GL_CALL_RET(gpu->glInterface(), R, X)
diff --git a/src/gpu/gl/builders/GrGLShaderStringBuilder.h b/src/gpu/gl/builders/GrGLShaderStringBuilder.h
index 2dd44c7..2cbff90 100644
--- a/src/gpu/gl/builders/GrGLShaderStringBuilder.h
+++ b/src/gpu/gl/builders/GrGLShaderStringBuilder.h
@@ -8,11 +8,11 @@
 #ifndef GrGLShaderStringBuilder_DEFINED
 #define GrGLShaderStringBuilder_DEFINED
 
-#include "GrAllocator.h"
-#include "GrGpu.h"
-#include "gl/GrGLContext.h"
-#include "SkSLGLSLCodeGenerator.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "src/gpu/GrAllocator.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/gl/GrGLContext.h"
+#include "src/sksl/SkSLGLSLCodeGenerator.h"
 
 std::unique_ptr<SkSL::Program> GrSkSLtoGLSL(const GrGLContext& context, GrGLenum type,
                                             const SkSL::String& sksl,
diff --git a/src/gpu/gl/egl/GrGLMakeNativeInterface_egl.cpp b/src/gpu/gl/egl/GrGLMakeNativeInterface_egl.cpp
index c14d703..3af6d84 100644
--- a/src/gpu/gl/egl/GrGLMakeNativeInterface_egl.cpp
+++ b/src/gpu/gl/egl/GrGLMakeNativeInterface_egl.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "gl/GrGLInterface.h"
-#include "gl/GrGLAssembleInterface.h"
-#include "gl/GrGLUtil.h"
+#include "include/gpu/gl/GrGLAssembleInterface.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
 #include <EGL/egl.h>
 #ifndef GL_GLEXT_PROTOTYPES
diff --git a/src/gpu/gl/glfw/GrGLMakeNativeInterface_glfw.cpp b/src/gpu/gl/glfw/GrGLMakeNativeInterface_glfw.cpp
index 140a4a3..a257968 100644
--- a/src/gpu/gl/glfw/GrGLMakeNativeInterface_glfw.cpp
+++ b/src/gpu/gl/glfw/GrGLMakeNativeInterface_glfw.cpp
@@ -6,9 +6,9 @@
  */
 
 
-#include "gl/GrGLInterface.h"
-#include "gl/GrGLAssembleInterface.h"
-#include "gl/GrGLUtil.h"
+#include "include/gpu/gl/GrGLAssembleInterface.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
 #include <GLFW/glfw3.h>
 
diff --git a/src/gpu/gl/glx/GrGLMakeNativeInterface_glx.cpp b/src/gpu/gl/glx/GrGLMakeNativeInterface_glx.cpp
index c57ec26..20187eb 100644
--- a/src/gpu/gl/glx/GrGLMakeNativeInterface_glx.cpp
+++ b/src/gpu/gl/glx/GrGLMakeNativeInterface_glx.cpp
@@ -6,9 +6,9 @@
  */
 
 
-#include "gl/GrGLInterface.h"
-#include "gl/GrGLAssembleInterface.h"
-#include "gl/GrGLUtil.h"
+#include "include/gpu/gl/GrGLAssembleInterface.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
 // Define this to get a prototype for glXGetProcAddress on some systems
 #define GLX_GLXEXT_PROTOTYPES 1
diff --git a/src/gpu/gl/iOS/GrGLMakeNativeInterface_iOS.cpp b/src/gpu/gl/iOS/GrGLMakeNativeInterface_iOS.cpp
index 3b7bd7f..10e37d2 100644
--- a/src/gpu/gl/iOS/GrGLMakeNativeInterface_iOS.cpp
+++ b/src/gpu/gl/iOS/GrGLMakeNativeInterface_iOS.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gl/GrGLInterface.h"
-#include "gl/GrGLAssembleInterface.h"
+#include "include/gpu/gl/GrGLAssembleInterface.h"
+#include "include/gpu/gl/GrGLInterface.h"
 #include <dlfcn.h>
 
 class GLLoader {
diff --git a/src/gpu/gl/mac/GrGLMakeNativeInterface_mac.cpp b/src/gpu/gl/mac/GrGLMakeNativeInterface_mac.cpp
index a508780..5a5c9e0 100644
--- a/src/gpu/gl/mac/GrGLMakeNativeInterface_mac.cpp
+++ b/src/gpu/gl/mac/GrGLMakeNativeInterface_mac.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_MAC)
 
 
-#include "gl/GrGLInterface.h"
-#include "gl/GrGLAssembleInterface.h"
+#include "include/gpu/gl/GrGLAssembleInterface.h"
+#include "include/gpu/gl/GrGLInterface.h"
 
 #include <dlfcn.h>
 
diff --git a/src/gpu/gl/win/GrGLMakeNativeInterface_win.cpp b/src/gpu/gl/win/GrGLMakeNativeInterface_win.cpp
index 5502bf4..a1e6587 100644
--- a/src/gpu/gl/win/GrGLMakeNativeInterface_win.cpp
+++ b/src/gpu/gl/win/GrGLMakeNativeInterface_win.cpp
@@ -4,14 +4,14 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_WIN)
 
-#include "SkLeanWindows.h"
+#include "include/private/SkLeanWindows.h"
 
-#include "gl/GrGLInterface.h"
-#include "gl/GrGLAssembleInterface.h"
-#include "gl/GrGLUtil.h"
+#include "include/gpu/gl/GrGLAssembleInterface.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
 #if defined(_M_ARM64)
 
diff --git a/src/gpu/glsl/GrGLSL.cpp b/src/gpu/glsl/GrGLSL.cpp
index 8941b73..e8fa694 100644
--- a/src/gpu/glsl/GrGLSL.cpp
+++ b/src/gpu/glsl/GrGLSL.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLSL.h"
-#include "GrShaderCaps.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/glsl/GrGLSL.h"
 
 const char* GrGLSLTypeString(GrSLType t) {
     switch (t) {
diff --git a/src/gpu/glsl/GrGLSL.h b/src/gpu/glsl/GrGLSL.h
index 6f4980c..0bee458 100644
--- a/src/gpu/glsl/GrGLSL.h
+++ b/src/gpu/glsl/GrGLSL.h
@@ -8,7 +8,7 @@
 #ifndef GrGLSL_DEFINED
 #define GrGLSL_DEFINED
 
-#include "GrTypesPriv.h"
+#include "include/private/GrTypesPriv.h"
 
 class GrShaderCaps;
 
diff --git a/src/gpu/glsl/GrGLSLBlend.cpp b/src/gpu/glsl/GrGLSLBlend.cpp
index 7ec73fd..9b0378c 100644
--- a/src/gpu/glsl/GrGLSLBlend.cpp
+++ b/src/gpu/glsl/GrGLSLBlend.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLSLBlend.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "SkBlendModePriv.h"
+#include "src/core/SkBlendModePriv.h"
+#include "src/gpu/glsl/GrGLSLBlend.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
 
 //////////////////////////////////////////////////////////////////////////////
 //  Advanced (non-coeff) blend helpers
diff --git a/src/gpu/glsl/GrGLSLBlend.h b/src/gpu/glsl/GrGLSLBlend.h
index fb0fb0b..69b821e 100644
--- a/src/gpu/glsl/GrGLSLBlend.h
+++ b/src/gpu/glsl/GrGLSLBlend.h
@@ -8,8 +8,8 @@
 #ifndef GrGLBlend_DEFINED
 #define GrGLBlend_DEFINED
 
-#include "SkBlendMode.h"
-#include "SkRegion.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkRegion.h"
 
 class GrGLSLFragmentBuilder;
 
diff --git a/src/gpu/glsl/GrGLSLColorSpaceXformHelper.h b/src/gpu/glsl/GrGLSLColorSpaceXformHelper.h
index 7898e18..52a9eda 100644
--- a/src/gpu/glsl/GrGLSLColorSpaceXformHelper.h
+++ b/src/gpu/glsl/GrGLSLColorSpaceXformHelper.h
@@ -8,9 +8,9 @@
 #ifndef GrGLSLColorSpaceXformHelper_DEFINED
 #define GrGLSLColorSpaceXformHelper_DEFINED
 
-#include "GrColorSpaceXform.h"
-#include "GrGLSLUniformHandler.h"
-#include "SkColorSpaceXformSteps.h"
+#include "src/core/SkColorSpaceXformSteps.h"
+#include "src/gpu/GrColorSpaceXform.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 /**
  * Helper class to assist with using GrColorSpaceXform within an FP. This manages all of the
diff --git a/src/gpu/glsl/GrGLSLFragmentProcessor.cpp b/src/gpu/glsl/GrGLSLFragmentProcessor.cpp
index b045b97..4101860 100644
--- a/src/gpu/glsl/GrGLSLFragmentProcessor.cpp
+++ b/src/gpu/glsl/GrGLSLFragmentProcessor.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLSLFragmentProcessor.h"
-#include "GrFragmentProcessor.h"
-#include "GrProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/GrProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 void GrGLSLFragmentProcessor::setData(const GrGLSLProgramDataManager& pdman,
                                       const GrFragmentProcessor& processor) {
diff --git a/src/gpu/glsl/GrGLSLFragmentProcessor.h b/src/gpu/glsl/GrGLSLFragmentProcessor.h
index ee7cf88..4a8ce70 100644
--- a/src/gpu/glsl/GrGLSLFragmentProcessor.h
+++ b/src/gpu/glsl/GrGLSLFragmentProcessor.h
@@ -8,10 +8,10 @@
 #ifndef GrGLSLFragmentProcessor_DEFINED
 #define GrGLSLFragmentProcessor_DEFINED
 
-#include "GrFragmentProcessor.h"
-#include "GrShaderVar.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/GrShaderVar.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 class GrProcessor;
 class GrProcessorKeyBuilder;
diff --git a/src/gpu/glsl/GrGLSLFragmentShaderBuilder.cpp b/src/gpu/glsl/GrGLSLFragmentShaderBuilder.cpp
index bec9e04..f41f0f1 100644
--- a/src/gpu/glsl/GrGLSLFragmentShaderBuilder.cpp
+++ b/src/gpu/glsl/GrGLSLFragmentShaderBuilder.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLSLFragmentShaderBuilder.h"
-#include "GrRenderTarget.h"
-#include "GrRenderTargetPriv.h"
-#include "GrShaderCaps.h"
-#include "gl/GrGLGpu.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "glsl/GrGLSLUniformHandler.h"
-#include "glsl/GrGLSLVarying.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
 
 const char* GrGLSLFragmentShaderBuilder::kDstColorName = "_dstColor";
 
diff --git a/src/gpu/glsl/GrGLSLFragmentShaderBuilder.h b/src/gpu/glsl/GrGLSLFragmentShaderBuilder.h
index 3f1c2c5..050029c 100644
--- a/src/gpu/glsl/GrGLSLFragmentShaderBuilder.h
+++ b/src/gpu/glsl/GrGLSLFragmentShaderBuilder.h
@@ -8,9 +8,9 @@
 #ifndef GrGLSLFragmentShaderBuilder_DEFINED
 #define GrGLSLFragmentShaderBuilder_DEFINED
 
-#include "GrBlend.h"
-#include "GrGLSLShaderBuilder.h"
-#include "GrProcessor.h"
+#include "include/gpu/GrBlend.h"
+#include "src/gpu/GrProcessor.h"
+#include "src/gpu/glsl/GrGLSLShaderBuilder.h"
 
 class GrRenderTarget;
 class GrGLSLVarying;
diff --git a/src/gpu/glsl/GrGLSLGeometryProcessor.cpp b/src/gpu/glsl/GrGLSLGeometryProcessor.cpp
index d7dc7cc..af9bd5c 100644
--- a/src/gpu/glsl/GrGLSLGeometryProcessor.cpp
+++ b/src/gpu/glsl/GrGLSLGeometryProcessor.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
 
-#include "GrCoordTransform.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLUniformHandler.h"
-#include "glsl/GrGLSLVarying.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 void GrGLSLGeometryProcessor::emitCode(EmitArgs& args) {
     GrGPArgs gpArgs;
diff --git a/src/gpu/glsl/GrGLSLGeometryProcessor.h b/src/gpu/glsl/GrGLSLGeometryProcessor.h
index 36cc546..eb34412 100644
--- a/src/gpu/glsl/GrGLSLGeometryProcessor.h
+++ b/src/gpu/glsl/GrGLSLGeometryProcessor.h
@@ -8,7 +8,7 @@
 #ifndef GrGLSLGeometryProcessor_DEFINED
 #define GrGLSLGeometryProcessor_DEFINED
 
-#include "GrGLSLPrimitiveProcessor.h"
+#include "src/gpu/glsl/GrGLSLPrimitiveProcessor.h"
 
 class GrGLSLGPBuilder;
 
diff --git a/src/gpu/glsl/GrGLSLPrimitiveProcessor.cpp b/src/gpu/glsl/GrGLSLPrimitiveProcessor.cpp
index 8e6099e..9d35c44 100644
--- a/src/gpu/glsl/GrGLSLPrimitiveProcessor.cpp
+++ b/src/gpu/glsl/GrGLSLPrimitiveProcessor.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLSLPrimitiveProcessor.h"
+#include "src/gpu/glsl/GrGLSLPrimitiveProcessor.h"
 
-#include "GrCoordTransform.h"
-#include "GrTexture.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "glsl/GrGLSLUniformHandler.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 SkMatrix GrGLSLPrimitiveProcessor::GetTransformMatrix(const SkMatrix& localMatrix,
                                                       const GrCoordTransform& coordTransform) {
diff --git a/src/gpu/glsl/GrGLSLPrimitiveProcessor.h b/src/gpu/glsl/GrGLSLPrimitiveProcessor.h
index 73a1aa0..5c02647 100644
--- a/src/gpu/glsl/GrGLSLPrimitiveProcessor.h
+++ b/src/gpu/glsl/GrGLSLPrimitiveProcessor.h
@@ -8,10 +8,10 @@
 #ifndef GrGLSLPrimitiveProcessor_DEFINED
 #define GrGLSLPrimitiveProcessor_DEFINED
 
-#include "GrFragmentProcessor.h"
-#include "GrPrimitiveProcessor.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/GrPrimitiveProcessor.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 class GrPrimitiveProcessor;
 class GrGLSLFPFragmentBuilder;
diff --git a/src/gpu/glsl/GrGLSLProgramBuilder.cpp b/src/gpu/glsl/GrGLSLProgramBuilder.cpp
index d0f0a53..d1b5bac 100644
--- a/src/gpu/glsl/GrGLSLProgramBuilder.cpp
+++ b/src/gpu/glsl/GrGLSLProgramBuilder.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
 
-#include "GrCaps.h"
-#include "GrPipeline.h"
-#include "GrRenderTarget.h"
-#include "GrShaderCaps.h"
-#include "GrTexturePriv.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLVarying.h"
-#include "glsl/GrGLSLXferProcessor.h"
-#include "SkSLCompiler.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLXferProcessor.h"
+#include "src/sksl/SkSLCompiler.h"
 
 const int GrGLSLProgramBuilder::kVarsPerBlock = 8;
 
diff --git a/src/gpu/glsl/GrGLSLProgramBuilder.h b/src/gpu/glsl/GrGLSLProgramBuilder.h
index dae2b6c..5c76439 100644
--- a/src/gpu/glsl/GrGLSLProgramBuilder.h
+++ b/src/gpu/glsl/GrGLSLProgramBuilder.h
@@ -8,18 +8,18 @@
 #ifndef GrGLSLProgramBuilder_DEFINED
 #define GrGLSLProgramBuilder_DEFINED
 
-#include "GrCaps.h"
-#include "GrGeometryProcessor.h"
-#include "GrProgramDesc.h"
-#include "GrRenderTarget.h"
-#include "GrRenderTargetPriv.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLPrimitiveProcessor.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
-#include "glsl/GrGLSLXferProcessor.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrProgramDesc.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLPrimitiveProcessor.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
+#include "src/gpu/glsl/GrGLSLXferProcessor.h"
 
 class GrShaderVar;
 class GrGLSLVaryingHandler;
diff --git a/src/gpu/glsl/GrGLSLProgramDataManager.cpp b/src/gpu/glsl/GrGLSLProgramDataManager.cpp
index e89fce5..08aa70d 100644
--- a/src/gpu/glsl/GrGLSLProgramDataManager.cpp
+++ b/src/gpu/glsl/GrGLSLProgramDataManager.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
 
-#include "SkMatrix.h"
-#include "SkMatrix44.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkMatrix44.h"
 
 void GrGLSLProgramDataManager::setSkMatrix(UniformHandle u, const SkMatrix& matrix) const {
     float mt[] = {
diff --git a/src/gpu/glsl/GrGLSLProgramDataManager.h b/src/gpu/glsl/GrGLSLProgramDataManager.h
index a8dce9d..7348082 100644
--- a/src/gpu/glsl/GrGLSLProgramDataManager.h
+++ b/src/gpu/glsl/GrGLSLProgramDataManager.h
@@ -8,9 +8,9 @@
 #ifndef GrGLSLProgramDataManager_DEFINED
 #define GrGLSLProgramDataManager_DEFINED
 
-#include "GrResourceHandle.h"
-#include "SkNoncopyable.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkNoncopyable.h"
+#include "src/gpu/GrResourceHandle.h"
 
 class SkMatrix;
 class SkMatrix44;
diff --git a/src/gpu/glsl/GrGLSLShaderBuilder.cpp b/src/gpu/glsl/GrGLSLShaderBuilder.cpp
index 504c9761..09f5d5d 100644
--- a/src/gpu/glsl/GrGLSLShaderBuilder.cpp
+++ b/src/gpu/glsl/GrGLSLShaderBuilder.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "GrShaderVar.h"
-#include "GrShaderCaps.h"
-#include "GrSwizzle.h"
-#include "glsl/GrGLSLShaderBuilder.h"
-#include "glsl/GrGLSLColorSpaceXformHelper.h"
-#include "glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrShaderVar.h"
+#include "src/gpu/GrSwizzle.h"
+#include "src/gpu/glsl/GrGLSLColorSpaceXformHelper.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/glsl/GrGLSLShaderBuilder.h"
 
 GrGLSLShaderBuilder::GrGLSLShaderBuilder(GrGLSLProgramBuilder* program)
     : fProgramBuilder(program)
diff --git a/src/gpu/glsl/GrGLSLShaderBuilder.h b/src/gpu/glsl/GrGLSLShaderBuilder.h
index 9312e7c..a203d3a 100644
--- a/src/gpu/glsl/GrGLSLShaderBuilder.h
+++ b/src/gpu/glsl/GrGLSLShaderBuilder.h
@@ -8,11 +8,11 @@
 #ifndef GrGLSLShaderBuilder_DEFINED
 #define GrGLSLShaderBuilder_DEFINED
 
-#include "GrAllocator.h"
-#include "GrShaderVar.h"
-#include "glsl/GrGLSLUniformHandler.h"
-#include "SkSLString.h"
-#include "SkTDArray.h"
+#include "include/private/SkTDArray.h"
+#include "src/gpu/GrAllocator.h"
+#include "src/gpu/GrShaderVar.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
+#include "src/sksl/SkSLString.h"
 
 #include <stdarg.h>
 
diff --git a/src/gpu/glsl/GrGLSLUniformHandler.h b/src/gpu/glsl/GrGLSLUniformHandler.h
index 607232e..e05199d 100644
--- a/src/gpu/glsl/GrGLSLUniformHandler.h
+++ b/src/gpu/glsl/GrGLSLUniformHandler.h
@@ -8,9 +8,9 @@
 #ifndef GrGLSLUniformHandler_DEFINED
 #define GrGLSLUniformHandler_DEFINED
 
-#include "GrGLSLProgramDataManager.h"
-#include "GrShaderVar.h"
-#include "GrSwizzle.h"
+#include "src/gpu/GrShaderVar.h"
+#include "src/gpu/GrSwizzle.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
 
 // variable names beginning with this prefix will not be mangled
 #define GR_NO_MANGLE_PREFIX "sk_"
diff --git a/src/gpu/glsl/GrGLSLUtil.cpp b/src/gpu/glsl/GrGLSLUtil.cpp
index 5a33324..393947a 100644
--- a/src/gpu/glsl/GrGLSLUtil.cpp
+++ b/src/gpu/glsl/GrGLSLUtil.cpp
@@ -5,8 +5,8 @@
 * found in the LICENSE file.
 */
 
-#include "GrGLSLUtil.h"
-#include "SkMatrix.h"
+#include "include/core/SkMatrix.h"
+#include "src/gpu/glsl/GrGLSLUtil.h"
 
 template<> void GrGLSLGetMatrix<3>(float* dest, const SkMatrix& src) {
     // Col 0
diff --git a/src/gpu/glsl/GrGLSLVarying.cpp b/src/gpu/glsl/GrGLSLVarying.cpp
index 53f4533..ae560bf 100644
--- a/src/gpu/glsl/GrGLSLVarying.cpp
+++ b/src/gpu/glsl/GrGLSLVarying.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "GrShaderCaps.h"
-#include "glsl/GrGLSLVarying.h"
-#include "glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
 
 void GrGLSLVaryingHandler::addPassThroughAttribute(const GrGeometryProcessor::Attribute& input,
                                                    const char* output,
diff --git a/src/gpu/glsl/GrGLSLVarying.h b/src/gpu/glsl/GrGLSLVarying.h
index 73048e7..3294e72 100644
--- a/src/gpu/glsl/GrGLSLVarying.h
+++ b/src/gpu/glsl/GrGLSLVarying.h
@@ -8,11 +8,11 @@
 #ifndef GrGLSLVarying_DEFINED
 #define GrGLSLVarying_DEFINED
 
-#include "GrAllocator.h"
-#include "GrGeometryProcessor.h"
-#include "GrShaderVar.h"
-#include "GrTypesPriv.h"
-#include "glsl/GrGLSLProgramDataManager.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/GrAllocator.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrShaderVar.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
 
 class GrGLSLProgramBuilder;
 
diff --git a/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp b/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp
index dba57bb..aee2f85 100644
--- a/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp
+++ b/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrGLSLVertexGeoBuilder.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
-#include "GrGLSLProgramBuilder.h"
-#include "GrGLSLVarying.h"
-#include "GrTypes.h"
+#include "include/gpu/GrTypes.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
 
 void GrGLSLVertexGeoBuilder::emitNormalizedSkPosition(SkString* out, const char* devPos,
                                                       const char* rtAdjustName,
diff --git a/src/gpu/glsl/GrGLSLVertexGeoBuilder.h b/src/gpu/glsl/GrGLSLVertexGeoBuilder.h
index c0a55a00..4bb5ecd 100644
--- a/src/gpu/glsl/GrGLSLVertexGeoBuilder.h
+++ b/src/gpu/glsl/GrGLSLVertexGeoBuilder.h
@@ -8,7 +8,7 @@
 #ifndef GrGLSLVertexGeoBuilder_DEFINED
 #define GrGLSLVertexGeoBuilder_DEFINED
 
-#include "GrGLSLShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLShaderBuilder.h"
 
 /**
  * Base class for vertex and geometry shader builders. This is the stage that computes input
diff --git a/src/gpu/glsl/GrGLSLXferProcessor.cpp b/src/gpu/glsl/GrGLSLXferProcessor.cpp
index 4af5303..7a04f4b 100644
--- a/src/gpu/glsl/GrGLSLXferProcessor.cpp
+++ b/src/gpu/glsl/GrGLSLXferProcessor.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "glsl/GrGLSLXferProcessor.h"
+#include "src/gpu/glsl/GrGLSLXferProcessor.h"
 
-#include "GrShaderCaps.h"
-#include "GrTexture.h"
-#include "GrXferProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrXferProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 // This is only called for cases where we are doing LCD coverage and not using in shader blending.
 // For these cases we assume the the src alpha is 1, thus we can just use the max for the alpha
diff --git a/src/gpu/glsl/GrGLSLXferProcessor.h b/src/gpu/glsl/GrGLSLXferProcessor.h
index 3e189ea..b2f018e 100644
--- a/src/gpu/glsl/GrGLSLXferProcessor.h
+++ b/src/gpu/glsl/GrGLSLXferProcessor.h
@@ -8,9 +8,9 @@
 #ifndef GrGLSLXferProcessor_DEFINED
 #define GrGLSLXferProcessor_DEFINED
 
-#include "SkPoint.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "include/core/SkPoint.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 class GrXferProcessor;
 class GrGLSLXPBuilder;
diff --git a/src/gpu/gradients/GrGradientBitmapCache.cpp b/src/gpu/gradients/GrGradientBitmapCache.cpp
index 32179ae..da3bef7 100644
--- a/src/gpu/gradients/GrGradientBitmapCache.cpp
+++ b/src/gpu/gradients/GrGradientBitmapCache.cpp
@@ -6,12 +6,12 @@
  */
 
 
-#include "GrGradientBitmapCache.h"
+#include "src/gpu/gradients/GrGradientBitmapCache.h"
 
-#include "SkMalloc.h"
-#include "SkFloatBits.h"
-#include "SkHalf.h"
-#include "SkTemplates.h"
+#include "include/private/SkFloatBits.h"
+#include "include/private/SkHalf.h"
+#include "include/private/SkMalloc.h"
+#include "include/private/SkTemplates.h"
 
 #include <functional>
 
diff --git a/src/gpu/gradients/GrGradientBitmapCache.h b/src/gpu/gradients/GrGradientBitmapCache.h
index 2807e7c..d4c8cef 100644
--- a/src/gpu/gradients/GrGradientBitmapCache.h
+++ b/src/gpu/gradients/GrGradientBitmapCache.h
@@ -9,10 +9,10 @@
 #ifndef GrGradientBitmapCache_DEFINED
 #define GrGradientBitmapCache_DEFINED
 
-#include "SkBitmap.h"
-#include "SkColorData.h"
-#include "SkMutex.h"
-#include "SkNoncopyable.h"
+#include "include/core/SkBitmap.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkNoncopyable.h"
 
 class GrGradientBitmapCache : SkNoncopyable {
 public:
diff --git a/src/gpu/gradients/GrGradientShader.cpp b/src/gpu/gradients/GrGradientShader.cpp
index d204f97..871c18a 100644
--- a/src/gpu/gradients/GrGradientShader.cpp
+++ b/src/gpu/gradients/GrGradientShader.cpp
@@ -5,28 +5,28 @@
  * found in the LICENSE file.
  */
 
-#include "GrGradientShader.h"
+#include "src/gpu/gradients/GrGradientShader.h"
 
-#include "generated/GrClampedGradientEffect.h"
-#include "generated/GrTiledGradientEffect.h"
+#include "src/gpu/gradients/generated/GrClampedGradientEffect.h"
+#include "src/gpu/gradients/generated/GrTiledGradientEffect.h"
 
-#include "generated/GrLinearGradientLayout.h"
-#include "generated/GrRadialGradientLayout.h"
-#include "generated/GrSweepGradientLayout.h"
-#include "generated/GrTwoPointConicalGradientLayout.h"
+#include "src/gpu/gradients/generated/GrLinearGradientLayout.h"
+#include "src/gpu/gradients/generated/GrRadialGradientLayout.h"
+#include "src/gpu/gradients/generated/GrSweepGradientLayout.h"
+#include "src/gpu/gradients/generated/GrTwoPointConicalGradientLayout.h"
 
-#include "generated/GrDualIntervalGradientColorizer.h"
-#include "generated/GrSingleIntervalGradientColorizer.h"
-#include "generated/GrTextureGradientColorizer.h"
-#include "generated/GrUnrolledBinaryGradientColorizer.h"
-#include "GrGradientBitmapCache.h"
+#include "src/gpu/gradients/GrGradientBitmapCache.h"
+#include "src/gpu/gradients/generated/GrDualIntervalGradientColorizer.h"
+#include "src/gpu/gradients/generated/GrSingleIntervalGradientColorizer.h"
+#include "src/gpu/gradients/generated/GrTextureGradientColorizer.h"
+#include "src/gpu/gradients/generated/GrUnrolledBinaryGradientColorizer.h"
 
-#include "GrCaps.h"
-#include "GrColor.h"
-#include "GrColorSpaceInfo.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "SkGr.h"
+#include "include/private/GrColor.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrColorSpaceInfo.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/SkGr.h"
 
 // Intervals smaller than this (that aren't hard stops) on low-precision-only devices force us to
 // use the textured gradient
diff --git a/src/gpu/gradients/GrGradientShader.h b/src/gpu/gradients/GrGradientShader.h
index 0200e17..c8710e7 100644
--- a/src/gpu/gradients/GrGradientShader.h
+++ b/src/gpu/gradients/GrGradientShader.h
@@ -8,16 +8,16 @@
 #ifndef GrGradientShader_DEFINE
 #define GrGradientShader_DEFINE
 
-#include "GrFPArgs.h"
-#include "GrFragmentProcessor.h"
-#include "SkGradientShaderPriv.h"
-#include "SkLinearGradient.h"
-#include "SkRadialGradient.h"
-#include "SkSweepGradient.h"
-#include "SkTwoPointConicalGradient.h"
+#include "src/gpu/GrFPArgs.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/shaders/gradients/SkGradientShaderPriv.h"
+#include "src/shaders/gradients/SkLinearGradient.h"
+#include "src/shaders/gradients/SkRadialGradient.h"
+#include "src/shaders/gradients/SkSweepGradient.h"
+#include "src/shaders/gradients/SkTwoPointConicalGradient.h"
 
 #if GR_TEST_UTILS
-#include "SkRandom.h"
+#include "include/utils/SkRandom.h"
 #endif
 
 namespace GrGradientShader {
diff --git a/src/gpu/gradients/GrLinearGradientLayout.fp b/src/gpu/gradients/GrLinearGradientLayout.fp
index 7c61f0e..1b66dc9 100644
--- a/src/gpu/gradients/GrLinearGradientLayout.fp
+++ b/src/gpu/gradients/GrLinearGradientLayout.fp
@@ -26,8 +26,8 @@
 //////////////////////////////////////////////////////////////////////////////
 
 @header {
-    #include "SkLinearGradient.h"
-    #include "../GrGradientShader.h"
+    #include "src/gpu/gradients/GrGradientShader.h"
+    #include "src/shaders/gradients/SkLinearGradient.h"
 }
 
 // The linear gradient never rejects a pixel so it doesn't change opacity
diff --git a/src/gpu/gradients/GrRadialGradientLayout.fp b/src/gpu/gradients/GrRadialGradientLayout.fp
index a50e658..47b53ca 100644
--- a/src/gpu/gradients/GrRadialGradientLayout.fp
+++ b/src/gpu/gradients/GrRadialGradientLayout.fp
@@ -19,8 +19,8 @@
 //////////////////////////////////////////////////////////////////////////////
 
 @header {
-    #include "SkRadialGradient.h"
-    #include "../GrGradientShader.h"
+    #include "src/gpu/gradients/GrGradientShader.h"
+    #include "src/shaders/gradients/SkRadialGradient.h"
 }
 
 // The radial gradient never rejects a pixel so it doesn't change opacity
diff --git a/src/gpu/gradients/GrSweepGradientLayout.fp b/src/gpu/gradients/GrSweepGradientLayout.fp
index 0c29194..09c1e60 100644
--- a/src/gpu/gradients/GrSweepGradientLayout.fp
+++ b/src/gpu/gradients/GrSweepGradientLayout.fp
@@ -36,8 +36,8 @@
 //////////////////////////////////////////////////////////////////////////////
 
 @header {
-    #include "SkSweepGradient.h"
-    #include "../GrGradientShader.h"
+    #include "src/gpu/gradients/GrGradientShader.h"
+    #include "src/shaders/gradients/SkSweepGradient.h"
 }
 
 // The sweep gradient never rejects a pixel so it doesn't change opacity
diff --git a/src/gpu/gradients/GrTwoPointConicalGradientLayout.fp b/src/gpu/gradients/GrTwoPointConicalGradientLayout.fp
index cb8fb10..3192213 100644
--- a/src/gpu/gradients/GrTwoPointConicalGradientLayout.fp
+++ b/src/gpu/gradients/GrTwoPointConicalGradientLayout.fp
@@ -125,8 +125,8 @@
 //////////////////////////////////////////////////////////////////////////////
 
 @header {
-    #include "SkTwoPointConicalGradient.h"
-    #include "../GrGradientShader.h"
+    #include "src/gpu/gradients/GrGradientShader.h"
+    #include "src/shaders/gradients/SkTwoPointConicalGradient.h"
 }
 
 // The 2 point conical gradient can reject a pixel so it does change opacity
diff --git a/src/gpu/gradients/generated/GrClampedGradientEffect.cpp b/src/gpu/gradients/generated/GrClampedGradientEffect.cpp
index c0718ec..7bb2452 100644
--- a/src/gpu/gradients/generated/GrClampedGradientEffect.cpp
+++ b/src/gpu/gradients/generated/GrClampedGradientEffect.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrClampedGradientEffect.fp; do not modify.
  **************************************************************************************************/
 #include "GrClampedGradientEffect.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLClampedGradientEffect : public GrGLSLFragmentProcessor {
 public:
     GrGLSLClampedGradientEffect() {}
diff --git a/src/gpu/gradients/generated/GrClampedGradientEffect.h b/src/gpu/gradients/generated/GrClampedGradientEffect.h
index 43aba19..115fe4a 100644
--- a/src/gpu/gradients/generated/GrClampedGradientEffect.h
+++ b/src/gpu/gradients/generated/GrClampedGradientEffect.h
@@ -10,9 +10,10 @@
  **************************************************************************************************/
 #ifndef GrClampedGradientEffect_DEFINED
 #define GrClampedGradientEffect_DEFINED
-#include "SkTypes.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkTypes.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrClampedGradientEffect : public GrFragmentProcessor {
 public:
     static std::unique_ptr<GrFragmentProcessor> Make(
diff --git a/src/gpu/gradients/generated/GrDualIntervalGradientColorizer.cpp b/src/gpu/gradients/generated/GrDualIntervalGradientColorizer.cpp
index 91b7aa0..b7ce502 100644
--- a/src/gpu/gradients/generated/GrDualIntervalGradientColorizer.cpp
+++ b/src/gpu/gradients/generated/GrDualIntervalGradientColorizer.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrDualIntervalGradientColorizer.fp; do not modify.
  **************************************************************************************************/
 #include "GrDualIntervalGradientColorizer.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLDualIntervalGradientColorizer : public GrGLSLFragmentProcessor {
 public:
     GrGLSLDualIntervalGradientColorizer() {}
diff --git a/src/gpu/gradients/generated/GrDualIntervalGradientColorizer.h b/src/gpu/gradients/generated/GrDualIntervalGradientColorizer.h
index 00a524b..7c3e3b8 100644
--- a/src/gpu/gradients/generated/GrDualIntervalGradientColorizer.h
+++ b/src/gpu/gradients/generated/GrDualIntervalGradientColorizer.h
@@ -10,9 +10,10 @@
  **************************************************************************************************/
 #ifndef GrDualIntervalGradientColorizer_DEFINED
 #define GrDualIntervalGradientColorizer_DEFINED
-#include "SkTypes.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkTypes.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrDualIntervalGradientColorizer : public GrFragmentProcessor {
 public:
     static std::unique_ptr<GrFragmentProcessor> Make(const SkPMColor4f& c0, const SkPMColor4f& c1,
diff --git a/src/gpu/gradients/generated/GrLinearGradientLayout.cpp b/src/gpu/gradients/generated/GrLinearGradientLayout.cpp
index 05dfb70..da6b293 100644
--- a/src/gpu/gradients/generated/GrLinearGradientLayout.cpp
+++ b/src/gpu/gradients/generated/GrLinearGradientLayout.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrLinearGradientLayout.fp; do not modify.
  **************************************************************************************************/
 #include "GrLinearGradientLayout.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLLinearGradientLayout : public GrGLSLFragmentProcessor {
 public:
     GrGLSLLinearGradientLayout() {}
diff --git a/src/gpu/gradients/generated/GrLinearGradientLayout.h b/src/gpu/gradients/generated/GrLinearGradientLayout.h
index 57da10f..1f711d9 100644
--- a/src/gpu/gradients/generated/GrLinearGradientLayout.h
+++ b/src/gpu/gradients/generated/GrLinearGradientLayout.h
@@ -10,12 +10,13 @@
  **************************************************************************************************/
 #ifndef GrLinearGradientLayout_DEFINED
 #define GrLinearGradientLayout_DEFINED
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "SkLinearGradient.h"
-#include "../GrGradientShader.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "src/gpu/gradients/GrGradientShader.h"
+#include "src/shaders/gradients/SkLinearGradient.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrLinearGradientLayout : public GrFragmentProcessor {
 public:
     static std::unique_ptr<GrFragmentProcessor> Make(const SkLinearGradient& gradient,
diff --git a/src/gpu/gradients/generated/GrRadialGradientLayout.cpp b/src/gpu/gradients/generated/GrRadialGradientLayout.cpp
index af578d1..213be21 100644
--- a/src/gpu/gradients/generated/GrRadialGradientLayout.cpp
+++ b/src/gpu/gradients/generated/GrRadialGradientLayout.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrRadialGradientLayout.fp; do not modify.
  **************************************************************************************************/
 #include "GrRadialGradientLayout.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLRadialGradientLayout : public GrGLSLFragmentProcessor {
 public:
     GrGLSLRadialGradientLayout() {}
diff --git a/src/gpu/gradients/generated/GrRadialGradientLayout.h b/src/gpu/gradients/generated/GrRadialGradientLayout.h
index a70202c..17a1b49 100644
--- a/src/gpu/gradients/generated/GrRadialGradientLayout.h
+++ b/src/gpu/gradients/generated/GrRadialGradientLayout.h
@@ -10,12 +10,13 @@
  **************************************************************************************************/
 #ifndef GrRadialGradientLayout_DEFINED
 #define GrRadialGradientLayout_DEFINED
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "SkRadialGradient.h"
-#include "../GrGradientShader.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "src/gpu/gradients/GrGradientShader.h"
+#include "src/shaders/gradients/SkRadialGradient.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrRadialGradientLayout : public GrFragmentProcessor {
 public:
     static std::unique_ptr<GrFragmentProcessor> Make(const SkRadialGradient& gradient,
diff --git a/src/gpu/gradients/generated/GrSingleIntervalGradientColorizer.cpp b/src/gpu/gradients/generated/GrSingleIntervalGradientColorizer.cpp
index 4ad3efe..f4a3397 100644
--- a/src/gpu/gradients/generated/GrSingleIntervalGradientColorizer.cpp
+++ b/src/gpu/gradients/generated/GrSingleIntervalGradientColorizer.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrSingleIntervalGradientColorizer.fp; do not modify.
  **************************************************************************************************/
 #include "GrSingleIntervalGradientColorizer.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLSingleIntervalGradientColorizer : public GrGLSLFragmentProcessor {
 public:
     GrGLSLSingleIntervalGradientColorizer() {}
diff --git a/src/gpu/gradients/generated/GrSingleIntervalGradientColorizer.h b/src/gpu/gradients/generated/GrSingleIntervalGradientColorizer.h
index 0a04c31..f7b49db 100644
--- a/src/gpu/gradients/generated/GrSingleIntervalGradientColorizer.h
+++ b/src/gpu/gradients/generated/GrSingleIntervalGradientColorizer.h
@@ -10,9 +10,10 @@
  **************************************************************************************************/
 #ifndef GrSingleIntervalGradientColorizer_DEFINED
 #define GrSingleIntervalGradientColorizer_DEFINED
-#include "SkTypes.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkTypes.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrSingleIntervalGradientColorizer : public GrFragmentProcessor {
 public:
     static std::unique_ptr<GrFragmentProcessor> Make(SkPMColor4f start, SkPMColor4f end) {
diff --git a/src/gpu/gradients/generated/GrSweepGradientLayout.cpp b/src/gpu/gradients/generated/GrSweepGradientLayout.cpp
index 3856a21..9d1157b 100644
--- a/src/gpu/gradients/generated/GrSweepGradientLayout.cpp
+++ b/src/gpu/gradients/generated/GrSweepGradientLayout.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrSweepGradientLayout.fp; do not modify.
  **************************************************************************************************/
 #include "GrSweepGradientLayout.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLSweepGradientLayout : public GrGLSLFragmentProcessor {
 public:
     GrGLSLSweepGradientLayout() {}
diff --git a/src/gpu/gradients/generated/GrSweepGradientLayout.h b/src/gpu/gradients/generated/GrSweepGradientLayout.h
index b62ed3e..7703663 100644
--- a/src/gpu/gradients/generated/GrSweepGradientLayout.h
+++ b/src/gpu/gradients/generated/GrSweepGradientLayout.h
@@ -10,12 +10,13 @@
  **************************************************************************************************/
 #ifndef GrSweepGradientLayout_DEFINED
 #define GrSweepGradientLayout_DEFINED
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "SkSweepGradient.h"
-#include "../GrGradientShader.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "src/gpu/gradients/GrGradientShader.h"
+#include "src/shaders/gradients/SkSweepGradient.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrSweepGradientLayout : public GrFragmentProcessor {
 public:
     static std::unique_ptr<GrFragmentProcessor> Make(const SkSweepGradient& gradient,
diff --git a/src/gpu/gradients/generated/GrTextureGradientColorizer.cpp b/src/gpu/gradients/generated/GrTextureGradientColorizer.cpp
index 22681b3..a3b4821 100644
--- a/src/gpu/gradients/generated/GrTextureGradientColorizer.cpp
+++ b/src/gpu/gradients/generated/GrTextureGradientColorizer.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrTextureGradientColorizer.fp; do not modify.
  **************************************************************************************************/
 #include "GrTextureGradientColorizer.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLTextureGradientColorizer : public GrGLSLFragmentProcessor {
 public:
     GrGLSLTextureGradientColorizer() {}
diff --git a/src/gpu/gradients/generated/GrTextureGradientColorizer.h b/src/gpu/gradients/generated/GrTextureGradientColorizer.h
index 792a018..e15558e 100644
--- a/src/gpu/gradients/generated/GrTextureGradientColorizer.h
+++ b/src/gpu/gradients/generated/GrTextureGradientColorizer.h
@@ -10,9 +10,10 @@
  **************************************************************************************************/
 #ifndef GrTextureGradientColorizer_DEFINED
 #define GrTextureGradientColorizer_DEFINED
-#include "SkTypes.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkTypes.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrTextureGradientColorizer : public GrFragmentProcessor {
 public:
     static std::unique_ptr<GrFragmentProcessor> Make(sk_sp<GrTextureProxy> gradient) {
diff --git a/src/gpu/gradients/generated/GrTiledGradientEffect.cpp b/src/gpu/gradients/generated/GrTiledGradientEffect.cpp
index 8a49c59..cf5d583 100644
--- a/src/gpu/gradients/generated/GrTiledGradientEffect.cpp
+++ b/src/gpu/gradients/generated/GrTiledGradientEffect.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrTiledGradientEffect.fp; do not modify.
  **************************************************************************************************/
 #include "GrTiledGradientEffect.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLTiledGradientEffect : public GrGLSLFragmentProcessor {
 public:
     GrGLSLTiledGradientEffect() {}
diff --git a/src/gpu/gradients/generated/GrTiledGradientEffect.h b/src/gpu/gradients/generated/GrTiledGradientEffect.h
index f9e00fb..8942804 100644
--- a/src/gpu/gradients/generated/GrTiledGradientEffect.h
+++ b/src/gpu/gradients/generated/GrTiledGradientEffect.h
@@ -10,9 +10,10 @@
  **************************************************************************************************/
 #ifndef GrTiledGradientEffect_DEFINED
 #define GrTiledGradientEffect_DEFINED
-#include "SkTypes.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkTypes.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrTiledGradientEffect : public GrFragmentProcessor {
 public:
     static std::unique_ptr<GrFragmentProcessor> Make(
diff --git a/src/gpu/gradients/generated/GrTwoPointConicalGradientLayout.cpp b/src/gpu/gradients/generated/GrTwoPointConicalGradientLayout.cpp
index 632d17d..5421d2c 100644
--- a/src/gpu/gradients/generated/GrTwoPointConicalGradientLayout.cpp
+++ b/src/gpu/gradients/generated/GrTwoPointConicalGradientLayout.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrTwoPointConicalGradientLayout.fp; do not modify.
  **************************************************************************************************/
 #include "GrTwoPointConicalGradientLayout.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLTwoPointConicalGradientLayout : public GrGLSLFragmentProcessor {
 public:
     GrGLSLTwoPointConicalGradientLayout() {}
diff --git a/src/gpu/gradients/generated/GrTwoPointConicalGradientLayout.h b/src/gpu/gradients/generated/GrTwoPointConicalGradientLayout.h
index ef4dc2d..878b8d2 100644
--- a/src/gpu/gradients/generated/GrTwoPointConicalGradientLayout.h
+++ b/src/gpu/gradients/generated/GrTwoPointConicalGradientLayout.h
@@ -10,12 +10,13 @@
  **************************************************************************************************/
 #ifndef GrTwoPointConicalGradientLayout_DEFINED
 #define GrTwoPointConicalGradientLayout_DEFINED
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "SkTwoPointConicalGradient.h"
-#include "../GrGradientShader.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "src/gpu/gradients/GrGradientShader.h"
+#include "src/shaders/gradients/SkTwoPointConicalGradient.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrTwoPointConicalGradientLayout : public GrFragmentProcessor {
 public:
     enum class Type { kFocal = 2, kRadial = 0, kStrip = 1 };
diff --git a/src/gpu/gradients/generated/GrUnrolledBinaryGradientColorizer.cpp b/src/gpu/gradients/generated/GrUnrolledBinaryGradientColorizer.cpp
index 47741326..3cf31b7 100644
--- a/src/gpu/gradients/generated/GrUnrolledBinaryGradientColorizer.cpp
+++ b/src/gpu/gradients/generated/GrUnrolledBinaryGradientColorizer.cpp
@@ -9,12 +9,13 @@
  *** This file was autogenerated from GrUnrolledBinaryGradientColorizer.fp; do not modify.
  **************************************************************************************************/
 #include "GrUnrolledBinaryGradientColorizer.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "GrTexture.h"
-#include "SkSLCPP.h"
-#include "SkSLUtil.h"
+
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/sksl/SkSLCPP.h"
+#include "src/sksl/SkSLUtil.h"
 class GrGLSLUnrolledBinaryGradientColorizer : public GrGLSLFragmentProcessor {
 public:
     GrGLSLUnrolledBinaryGradientColorizer() {}
diff --git a/src/gpu/gradients/generated/GrUnrolledBinaryGradientColorizer.h b/src/gpu/gradients/generated/GrUnrolledBinaryGradientColorizer.h
index 300a389..04a878b 100644
--- a/src/gpu/gradients/generated/GrUnrolledBinaryGradientColorizer.h
+++ b/src/gpu/gradients/generated/GrUnrolledBinaryGradientColorizer.h
@@ -10,9 +10,10 @@
  **************************************************************************************************/
 #ifndef GrUnrolledBinaryGradientColorizer_DEFINED
 #define GrUnrolledBinaryGradientColorizer_DEFINED
-#include "SkTypes.h"
-#include "GrFragmentProcessor.h"
-#include "GrCoordTransform.h"
+#include "include/core/SkTypes.h"
+
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
 class GrUnrolledBinaryGradientColorizer : public GrFragmentProcessor {
 public:
     static const int kMaxColorCount = 16;
diff --git a/src/gpu/mock/GrMockBuffer.h b/src/gpu/mock/GrMockBuffer.h
index efb959b..17b56a0 100644
--- a/src/gpu/mock/GrMockBuffer.h
+++ b/src/gpu/mock/GrMockBuffer.h
@@ -8,9 +8,9 @@
 #ifndef GrMockBuffer_DEFINED
 #define GrMockBuffer_DEFINED
 
-#include "GrCaps.h"
-#include "GrGpuBuffer.h"
-#include "GrMockGpu.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrGpuBuffer.h"
+#include "src/gpu/mock/GrMockGpu.h"
 
 class GrMockBuffer : public GrGpuBuffer {
 public:
diff --git a/src/gpu/mock/GrMockCaps.h b/src/gpu/mock/GrMockCaps.h
index 1a0a559..9def1ab 100644
--- a/src/gpu/mock/GrMockCaps.h
+++ b/src/gpu/mock/GrMockCaps.h
@@ -8,9 +8,9 @@
 #ifndef GrMockCaps_DEFINED
 #define GrMockCaps_DEFINED
 
-#include "GrCaps.h"
-#include "SkGr.h"
-#include "mock/GrMockTypes.h"
+#include "include/gpu/mock/GrMockTypes.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/SkGr.h"
 
 class GrMockCaps : public GrCaps {
 public:
diff --git a/src/gpu/mock/GrMockGpu.cpp b/src/gpu/mock/GrMockGpu.cpp
index 1fdae0a..1c0df8f 100644
--- a/src/gpu/mock/GrMockGpu.cpp
+++ b/src/gpu/mock/GrMockGpu.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "GrMockGpu.h"
-#include "GrMockBuffer.h"
-#include "GrMockCaps.h"
-#include "GrMockGpuCommandBuffer.h"
-#include "GrMockStencilAttachment.h"
-#include "GrMockTexture.h"
+#include "src/gpu/mock/GrMockBuffer.h"
+#include "src/gpu/mock/GrMockCaps.h"
+#include "src/gpu/mock/GrMockGpu.h"
+#include "src/gpu/mock/GrMockGpuCommandBuffer.h"
+#include "src/gpu/mock/GrMockStencilAttachment.h"
+#include "src/gpu/mock/GrMockTexture.h"
 #include <atomic>
 
 int GrMockGpu::NextInternalTextureID() {
diff --git a/src/gpu/mock/GrMockGpu.h b/src/gpu/mock/GrMockGpu.h
index c080936..15074a1 100644
--- a/src/gpu/mock/GrMockGpu.h
+++ b/src/gpu/mock/GrMockGpu.h
@@ -8,11 +8,11 @@
 #ifndef GrMockGpu_DEFINED
 #define GrMockGpu_DEFINED
 
-#include "GrGpu.h"
-#include "GrRenderTarget.h"
-#include "GrSemaphore.h"
-#include "GrTexture.h"
-#include "SkTHash.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/SkTHash.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrSemaphore.h"
 
 class GrMockGpuRTCommandBuffer;
 struct GrMockOptions;
diff --git a/src/gpu/mock/GrMockGpuCommandBuffer.h b/src/gpu/mock/GrMockGpuCommandBuffer.h
index a14fb64..0a13f42 100644
--- a/src/gpu/mock/GrMockGpuCommandBuffer.h
+++ b/src/gpu/mock/GrMockGpuCommandBuffer.h
@@ -8,8 +8,8 @@
 #ifndef GrMockGpuCommandBuffer_DEFINED
 #define GrMockGpuCommandBuffer_DEFINED
 
-#include "GrGpuCommandBuffer.h"
-#include "GrMockGpu.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
+#include "src/gpu/mock/GrMockGpu.h"
 
 class GrMockGpuTextureCommandBuffer : public GrGpuTextureCommandBuffer {
 public:
diff --git a/src/gpu/mock/GrMockStencilAttachment.h b/src/gpu/mock/GrMockStencilAttachment.h
index 697e444..a058944 100644
--- a/src/gpu/mock/GrMockStencilAttachment.h
+++ b/src/gpu/mock/GrMockStencilAttachment.h
@@ -8,8 +8,8 @@
 #ifndef GrMockStencilAttachment_DEFINED
 #define GrMockStencilAttachment_DEFINED
 
-#include "GrMockGpu.h"
-#include "GrStencilAttachment.h"
+#include "src/gpu/GrStencilAttachment.h"
+#include "src/gpu/mock/GrMockGpu.h"
 
 class GrMockStencilAttachment : public GrStencilAttachment {
 public:
diff --git a/src/gpu/mock/GrMockTexture.h b/src/gpu/mock/GrMockTexture.h
index 347b961..b6a2a6e 100644
--- a/src/gpu/mock/GrMockTexture.h
+++ b/src/gpu/mock/GrMockTexture.h
@@ -7,12 +7,12 @@
 #ifndef GrMockTexture_DEFINED
 #define GrMockTexture_DEFINED
 
-#include "GrMockGpu.h"
-#include "GrRenderTarget.h"
-#include "GrRenderTargetPriv.h"
-#include "GrTexture.h"
-#include "GrTexturePriv.h"
-#include "mock/GrMockTypes.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "include/gpu/GrTexture.h"
+#include "include/gpu/mock/GrMockTypes.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/mock/GrMockGpu.h"
 
 class GrMockTexture : public GrTexture {
 public:
diff --git a/src/gpu/mtl/GrMtlBuffer.h b/src/gpu/mtl/GrMtlBuffer.h
index 8a6d659..5c9137e 100644
--- a/src/gpu/mtl/GrMtlBuffer.h
+++ b/src/gpu/mtl/GrMtlBuffer.h
@@ -8,8 +8,8 @@
 #ifndef GrMtlBuffer_DEFINED
 #define GrMtlBuffer_DEFINED
 
-#include "GrGpuBuffer.h"
-#include "GrMtlUniformHandler.h"
+#include "src/gpu/GrGpuBuffer.h"
+#include "src/gpu/mtl/GrMtlUniformHandler.h"
 
 #import <metal/metal.h>
 
diff --git a/src/gpu/mtl/GrMtlBuffer.mm b/src/gpu/mtl/GrMtlBuffer.mm
index 7dd1c78..c14505c 100644
--- a/src/gpu/mtl/GrMtlBuffer.mm
+++ b/src/gpu/mtl/GrMtlBuffer.mm
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrMtlBuffer.h"
-#include "GrMtlCommandBuffer.h"
-#include "GrMtlGpu.h"
-#include "GrGpuResourcePriv.h"
-#include "GrTypesPriv.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/mtl/GrMtlBuffer.h"
+#include "src/gpu/mtl/GrMtlCommandBuffer.h"
+#include "src/gpu/mtl/GrMtlGpu.h"
 
 #ifdef SK_DEBUG
 #define VALIDATE() this->validate()
diff --git a/src/gpu/mtl/GrMtlCaps.h b/src/gpu/mtl/GrMtlCaps.h
index b80c349..d66198c 100644
--- a/src/gpu/mtl/GrMtlCaps.h
+++ b/src/gpu/mtl/GrMtlCaps.h
@@ -8,9 +8,9 @@
 #ifndef GrMtlCaps_DEFINED
 #define GrMtlCaps_DEFINED
 
-#include "GrCaps.h"
-#include "GrMtlStencilAttachment.h"
-#include "SkTDArray.h"
+#include "include/private/SkTDArray.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/mtl/GrMtlStencilAttachment.h"
 
 #import <Metal/Metal.h>
 
diff --git a/src/gpu/mtl/GrMtlCaps.mm b/src/gpu/mtl/GrMtlCaps.mm
index 0c9372f..4344b39 100644
--- a/src/gpu/mtl/GrMtlCaps.mm
+++ b/src/gpu/mtl/GrMtlCaps.mm
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "GrMtlCaps.h"
+#include "src/gpu/mtl/GrMtlCaps.h"
 
-#include "GrBackendSurface.h"
-#include "GrMtlUtil.h"
-#include "GrRenderTarget.h"
-#include "GrRenderTargetProxy.h"
-#include "GrShaderCaps.h"
-#include "GrSurfaceProxy.h"
-#include "SkRect.h"
+#include "include/core/SkRect.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "include/private/GrRenderTargetProxy.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/mtl/GrMtlUtil.h"
 
 GrMtlCaps::GrMtlCaps(const GrContextOptions& contextOptions, const id<MTLDevice> device,
                      MTLFeatureSet featureSet)
diff --git a/src/gpu/mtl/GrMtlCommandBuffer.h b/src/gpu/mtl/GrMtlCommandBuffer.h
index 2eac0de..05519c9 100644
--- a/src/gpu/mtl/GrMtlCommandBuffer.h
+++ b/src/gpu/mtl/GrMtlCommandBuffer.h
@@ -10,7 +10,7 @@
 
 #import <Metal/Metal.h>
 
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
 
 class GrMtlGpu;
 
diff --git a/src/gpu/mtl/GrMtlCommandBuffer.mm b/src/gpu/mtl/GrMtlCommandBuffer.mm
index 233443d..9cdbb51 100644
--- a/src/gpu/mtl/GrMtlCommandBuffer.mm
+++ b/src/gpu/mtl/GrMtlCommandBuffer.mm
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "GrMtlCommandBuffer.h"
-#include "GrMtlGpu.h"
+#include "src/gpu/mtl/GrMtlCommandBuffer.h"
+#include "src/gpu/mtl/GrMtlGpu.h"
 
 GrMtlCommandBuffer* GrMtlCommandBuffer::Create(id<MTLCommandQueue> queue) {
     id<MTLCommandBuffer> mtlCommandBuffer;
diff --git a/src/gpu/mtl/GrMtlCopyManager.h b/src/gpu/mtl/GrMtlCopyManager.h
index 7899397..8fbfd2a 100644
--- a/src/gpu/mtl/GrMtlCopyManager.h
+++ b/src/gpu/mtl/GrMtlCopyManager.h
@@ -8,7 +8,7 @@
 #ifndef GrMtlCopyManager_DEFINED
 #define GrMtlCopyManager_DEFINED
 
-#include "GrTypes.h"
+#include "include/gpu/GrTypes.h"
 
 #import <metal/metal.h>
 
diff --git a/src/gpu/mtl/GrMtlCopyManager.mm b/src/gpu/mtl/GrMtlCopyManager.mm
index e740671..cc0c08d 100644
--- a/src/gpu/mtl/GrMtlCopyManager.mm
+++ b/src/gpu/mtl/GrMtlCopyManager.mm
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "GrMtlCopyManager.h"
+#include "src/gpu/mtl/GrMtlCopyManager.h"
 
-#include "GrSurface.h"
+#include "include/gpu/GrSurface.h"
 
-#include "GrMtlBuffer.h"
-#include "GrMtlCommandBuffer.h"
-#include "GrMtlCopyPipelineState.h"
-#include "GrMtlGpu.h"
-#include "GrMtlResourceProvider.h"
-#include "GrMtlUtil.h"
+#include "src/gpu/mtl/GrMtlBuffer.h"
+#include "src/gpu/mtl/GrMtlCommandBuffer.h"
+#include "src/gpu/mtl/GrMtlCopyPipelineState.h"
+#include "src/gpu/mtl/GrMtlGpu.h"
+#include "src/gpu/mtl/GrMtlResourceProvider.h"
+#include "src/gpu/mtl/GrMtlUtil.h"
 
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkTraceEvent.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "src/core/SkTraceEvent.h"
 
 #import <simd/simd.h>
 
diff --git a/src/gpu/mtl/GrMtlCopyPipelineState.mm b/src/gpu/mtl/GrMtlCopyPipelineState.mm
index 6017d4b..1cd1393 100644
--- a/src/gpu/mtl/GrMtlCopyPipelineState.mm
+++ b/src/gpu/mtl/GrMtlCopyPipelineState.mm
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "GrMtlCopyPipelineState.h"
-#include "GrMtlGpu.h"
+#include "src/gpu/mtl/GrMtlCopyPipelineState.h"
+#include "src/gpu/mtl/GrMtlGpu.h"
 
 GrMtlCopyPipelineState* GrMtlCopyPipelineState::CreateCopyPipelineState(
         GrMtlGpu* gpu,
diff --git a/src/gpu/mtl/GrMtlCppUtil.h b/src/gpu/mtl/GrMtlCppUtil.h
index ed796fc..9733d80 100644
--- a/src/gpu/mtl/GrMtlCppUtil.h
+++ b/src/gpu/mtl/GrMtlCppUtil.h
@@ -8,7 +8,7 @@
 #ifndef GrMtlCppUtil_DEFINED
 #define GrMtlCppUtil_DEFINED
 
-#include "mtl/GrMtlTypes.h"
+#include "include/gpu/mtl/GrMtlTypes.h"
 
 // Utilities that can be used from cpp files (rather than .mm).
 
diff --git a/src/gpu/mtl/GrMtlGpu.h b/src/gpu/mtl/GrMtlGpu.h
index de6c257..835c94b 100644
--- a/src/gpu/mtl/GrMtlGpu.h
+++ b/src/gpu/mtl/GrMtlGpu.h
@@ -8,16 +8,16 @@
 #ifndef GrMtlGpu_DEFINED
 #define GrMtlGpu_DEFINED
 
-#include "GrGpu.h"
-#include "GrRenderTarget.h"
-#include "GrSemaphore.h"
-#include "GrTexture.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrSemaphore.h"
 
-#include "GrMtlBuffer.h"
-#include "GrMtlCaps.h"
-#include "GrMtlCopyManager.h"
-#include "GrMtlResourceProvider.h"
-#include "GrMtlStencilAttachment.h"
+#include "src/gpu/mtl/GrMtlBuffer.h"
+#include "src/gpu/mtl/GrMtlCaps.h"
+#include "src/gpu/mtl/GrMtlCopyManager.h"
+#include "src/gpu/mtl/GrMtlResourceProvider.h"
+#include "src/gpu/mtl/GrMtlStencilAttachment.h"
 
 #import <Metal/Metal.h>
 
diff --git a/src/gpu/mtl/GrMtlGpu.mm b/src/gpu/mtl/GrMtlGpu.mm
index 4efb165..d8d412f 100644
--- a/src/gpu/mtl/GrMtlGpu.mm
+++ b/src/gpu/mtl/GrMtlGpu.mm
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "GrMtlGpu.h"
+#include "src/gpu/mtl/GrMtlGpu.h"
 
-#include "GrMtlBuffer.h"
-#include "GrMtlCommandBuffer.h"
-#include "GrMtlGpuCommandBuffer.h"
-#include "GrMtlTexture.h"
-#include "GrMtlTextureRenderTarget.h"
-#include "GrMtlUtil.h"
-#include "GrRenderTargetPriv.h"
-#include "GrTexturePriv.h"
-#include "SkConvertPixels.h"
-#include "SkSLCompiler.h"
+#include "src/core/SkConvertPixels.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/mtl/GrMtlBuffer.h"
+#include "src/gpu/mtl/GrMtlCommandBuffer.h"
+#include "src/gpu/mtl/GrMtlGpuCommandBuffer.h"
+#include "src/gpu/mtl/GrMtlTexture.h"
+#include "src/gpu/mtl/GrMtlTextureRenderTarget.h"
+#include "src/gpu/mtl/GrMtlUtil.h"
+#include "src/sksl/SkSLCompiler.h"
 
 #import <simd/simd.h>
 
diff --git a/src/gpu/mtl/GrMtlGpuCommandBuffer.h b/src/gpu/mtl/GrMtlGpuCommandBuffer.h
index 955fe31..4e232fa 100644
--- a/src/gpu/mtl/GrMtlGpuCommandBuffer.h
+++ b/src/gpu/mtl/GrMtlGpuCommandBuffer.h
@@ -8,10 +8,10 @@
 #ifndef GrMtlGpuCommandBuffer_DEFINED
 #define GrMtlGpuCommandBuffer_DEFINED
 
-#include "GrGpuCommandBuffer.h"
-#include "GrMtlGpu.h"
-#include "GrMesh.h"
-#include "GrOpFlushState.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
+#include "src/gpu/GrMesh.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/mtl/GrMtlGpu.h"
 
 #import <metal/metal.h>
 
diff --git a/src/gpu/mtl/GrMtlGpuCommandBuffer.mm b/src/gpu/mtl/GrMtlGpuCommandBuffer.mm
index 2322bfa..3c4ca24 100644
--- a/src/gpu/mtl/GrMtlGpuCommandBuffer.mm
+++ b/src/gpu/mtl/GrMtlGpuCommandBuffer.mm
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "GrMtlGpuCommandBuffer.h"
+#include "src/gpu/mtl/GrMtlGpuCommandBuffer.h"
 
-#include "GrColor.h"
-#include "GrFixedClip.h"
-#include "GrMtlCommandBuffer.h"
-#include "GrMtlPipelineState.h"
-#include "GrMtlPipelineStateBuilder.h"
-#include "GrMtlRenderTarget.h"
-#include "GrRenderTargetPriv.h"
-#include "GrTexturePriv.h"
+#include "include/private/GrColor.h"
+#include "src/gpu/GrFixedClip.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/mtl/GrMtlCommandBuffer.h"
+#include "src/gpu/mtl/GrMtlPipelineState.h"
+#include "src/gpu/mtl/GrMtlPipelineStateBuilder.h"
+#include "src/gpu/mtl/GrMtlRenderTarget.h"
 
 GrMtlGpuRTCommandBuffer::GrMtlGpuRTCommandBuffer(
         GrMtlGpu* gpu, GrRenderTarget* rt, GrSurfaceOrigin origin, const SkRect& bounds,
diff --git a/src/gpu/mtl/GrMtlPipelineState.h b/src/gpu/mtl/GrMtlPipelineState.h
index 2ef2858..c62af57 100644
--- a/src/gpu/mtl/GrMtlPipelineState.h
+++ b/src/gpu/mtl/GrMtlPipelineState.h
@@ -8,11 +8,11 @@
 #ifndef GrMtlPipelineState_DEFINED
 #define GrMtlPipelineState_DEFINED
 
-#include "GrMtlBuffer.h"
-#include "GrMtlPipelineStateDataManager.h"
-#include "GrStencilSettings.h"
-#include "GrTypesPriv.h"
-#include "glsl/GrGLSLProgramBuilder.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/GrStencilSettings.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/mtl/GrMtlBuffer.h"
+#include "src/gpu/mtl/GrMtlPipelineStateDataManager.h"
 
 #import <metal/metal.h>
 
diff --git a/src/gpu/mtl/GrMtlPipelineState.mm b/src/gpu/mtl/GrMtlPipelineState.mm
index bb2f8bf..cfaeb1a 100644
--- a/src/gpu/mtl/GrMtlPipelineState.mm
+++ b/src/gpu/mtl/GrMtlPipelineState.mm
@@ -5,21 +5,21 @@
  * found in the LICENSE file.
  */
 
-#include "GrMtlPipelineState.h"
+#include "src/gpu/mtl/GrMtlPipelineState.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrPipeline.h"
-#include "GrRenderTarget.h"
-#include "GrRenderTargetPriv.h"
-#include "GrTexturePriv.h"
-#include "GrMtlBuffer.h"
-#include "GrMtlGpu.h"
-#include "GrMtlSampler.h"
-#include "GrMtlTexture.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLXferProcessor.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLXferProcessor.h"
+#include "src/gpu/mtl/GrMtlBuffer.h"
+#include "src/gpu/mtl/GrMtlGpu.h"
+#include "src/gpu/mtl/GrMtlSampler.h"
+#include "src/gpu/mtl/GrMtlTexture.h"
 
 GrMtlPipelineState::SamplerBindings::SamplerBindings(const GrSamplerState& state,
                                                      GrTexture* texture,
diff --git a/src/gpu/mtl/GrMtlPipelineStateBuilder.h b/src/gpu/mtl/GrMtlPipelineStateBuilder.h
index 470fa87..ed078ff 100644
--- a/src/gpu/mtl/GrMtlPipelineStateBuilder.h
+++ b/src/gpu/mtl/GrMtlPipelineStateBuilder.h
@@ -8,12 +8,12 @@
 #ifndef GrMtlPipelineStateBuilder_DEFINED
 #define GrMtlPipelineStateBuilder_DEFINED
 
-#include "GrPipeline.h"
-#include "GrProgramDesc.h"
-#include "GrMtlUniformHandler.h"
-#include "GrMtlVaryingHandler.h"
-#include "SkSLCompiler.h"
-#include "glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/GrProgramDesc.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/mtl/GrMtlUniformHandler.h"
+#include "src/gpu/mtl/GrMtlVaryingHandler.h"
+#include "src/sksl/SkSLCompiler.h"
 
 #import <metal/metal.h>
 
diff --git a/src/gpu/mtl/GrMtlPipelineStateBuilder.mm b/src/gpu/mtl/GrMtlPipelineStateBuilder.mm
index ef413bb..d6de4ea 100644
--- a/src/gpu/mtl/GrMtlPipelineStateBuilder.mm
+++ b/src/gpu/mtl/GrMtlPipelineStateBuilder.mm
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "GrMtlPipelineStateBuilder.h"
+#include "src/gpu/mtl/GrMtlPipelineStateBuilder.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrContextPriv.h"
 
-#include "GrMtlGpu.h"
-#include "GrMtlPipelineState.h"
-#include "GrMtlUtil.h"
+#include "src/gpu/mtl/GrMtlGpu.h"
+#include "src/gpu/mtl/GrMtlPipelineState.h"
+#include "src/gpu/mtl/GrMtlUtil.h"
 
-#include "GrRenderTargetPriv.h"
+#include "src/gpu/GrRenderTargetPriv.h"
 
 #import <simd/simd.h>
 
diff --git a/src/gpu/mtl/GrMtlPipelineStateDataManager.h b/src/gpu/mtl/GrMtlPipelineStateDataManager.h
index 4c9beb6..a4b2178 100644
--- a/src/gpu/mtl/GrMtlPipelineStateDataManager.h
+++ b/src/gpu/mtl/GrMtlPipelineStateDataManager.h
@@ -8,9 +8,9 @@
 #ifndef GrMtlPipelineStateDataManager_DEFINED
 #define GrMtlPipelineStateDataManager_DEFINED
 
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "GrMtlUniformHandler.h"
-#include "SkAutoMalloc.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/mtl/GrMtlUniformHandler.h"
 
 #import <Metal/Metal.h>
 
diff --git a/src/gpu/mtl/GrMtlPipelineStateDataManager.mm b/src/gpu/mtl/GrMtlPipelineStateDataManager.mm
index d2962e7..5231100 100644
--- a/src/gpu/mtl/GrMtlPipelineStateDataManager.mm
+++ b/src/gpu/mtl/GrMtlPipelineStateDataManager.mm
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrMtlPipelineStateDataManager.h"
+#include "src/gpu/mtl/GrMtlPipelineStateDataManager.h"
 
-#include "GrMtlBuffer.h"
-#include "GrMtlGpu.h"
+#include "src/gpu/mtl/GrMtlBuffer.h"
+#include "src/gpu/mtl/GrMtlGpu.h"
 
 GrMtlPipelineStateDataManager::GrMtlPipelineStateDataManager(const UniformInfoArray& uniforms,
                                                              uint32_t geometryUniformSize,
diff --git a/src/gpu/mtl/GrMtlRenderTarget.h b/src/gpu/mtl/GrMtlRenderTarget.h
index 50022af..315abcd 100644
--- a/src/gpu/mtl/GrMtlRenderTarget.h
+++ b/src/gpu/mtl/GrMtlRenderTarget.h
@@ -8,9 +8,9 @@
 #ifndef GrMtlRenderTarget_DEFINED
 #define GrMtlRenderTarget_DEFINED
 
-#include "GrRenderTarget.h"
+#include "include/gpu/GrRenderTarget.h"
 
-#include "GrBackendSurface.h"
+#include "include/gpu/GrBackendSurface.h"
 
 #import <Metal/Metal.h>
 
diff --git a/src/gpu/mtl/GrMtlRenderTarget.mm b/src/gpu/mtl/GrMtlRenderTarget.mm
index 4e6cc83..7f423d0 100644
--- a/src/gpu/mtl/GrMtlRenderTarget.mm
+++ b/src/gpu/mtl/GrMtlRenderTarget.mm
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrMtlRenderTarget.h"
+#include "src/gpu/mtl/GrMtlRenderTarget.h"
 
-#include "GrMtlGpu.h"
-#include "GrMtlUtil.h"
+#include "src/gpu/mtl/GrMtlGpu.h"
+#include "src/gpu/mtl/GrMtlUtil.h"
 
 // Called for wrapped non-texture render targets.
 GrMtlRenderTarget::GrMtlRenderTarget(GrMtlGpu* gpu,
diff --git a/src/gpu/mtl/GrMtlResourceProvider.h b/src/gpu/mtl/GrMtlResourceProvider.h
index c0c0545..312e679 100644
--- a/src/gpu/mtl/GrMtlResourceProvider.h
+++ b/src/gpu/mtl/GrMtlResourceProvider.h
@@ -8,10 +8,10 @@
 #ifndef GrMtlResourceProvider_DEFINED
 #define GrMtlResourceProvider_DEFINED
 
-#include "GrMtlCopyPipelineState.h"
-#include "GrMtlPipelineStateBuilder.h"
-#include "SkLRUCache.h"
-#include "SkTArray.h"
+#include "include/private/SkTArray.h"
+#include "src/core/SkLRUCache.h"
+#include "src/gpu/mtl/GrMtlCopyPipelineState.h"
+#include "src/gpu/mtl/GrMtlPipelineStateBuilder.h"
 
 #import <metal/metal.h>
 
diff --git a/src/gpu/mtl/GrMtlResourceProvider.mm b/src/gpu/mtl/GrMtlResourceProvider.mm
index 9708978..6b7a2e5 100644
--- a/src/gpu/mtl/GrMtlResourceProvider.mm
+++ b/src/gpu/mtl/GrMtlResourceProvider.mm
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrMtlResourceProvider.h"
+#include "src/gpu/mtl/GrMtlResourceProvider.h"
 
-#include "GrMtlCopyManager.h"
-#include "GrMtlGpu.h"
-#include "GrMtlPipelineState.h"
-#include "GrMtlUtil.h"
+#include "src/gpu/mtl/GrMtlCopyManager.h"
+#include "src/gpu/mtl/GrMtlGpu.h"
+#include "src/gpu/mtl/GrMtlPipelineState.h"
+#include "src/gpu/mtl/GrMtlUtil.h"
 
-#include "SkSLCompiler.h"
+#include "src/sksl/SkSLCompiler.h"
 
 
 GrMtlResourceProvider::GrMtlResourceProvider(GrMtlGpu* gpu)
diff --git a/src/gpu/mtl/GrMtlSampler.mm b/src/gpu/mtl/GrMtlSampler.mm
index 0b2c491..7257370 100644
--- a/src/gpu/mtl/GrMtlSampler.mm
+++ b/src/gpu/mtl/GrMtlSampler.mm
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "GrMtlSampler.h"
+#include "src/gpu/mtl/GrMtlSampler.h"
 
-#include "GrMtlGpu.h"
+#include "src/gpu/mtl/GrMtlGpu.h"
 
 static inline MTLSamplerAddressMode wrap_mode_to_mtl_sampler_address(
         GrSamplerState::WrapMode wrapMode, const GrCaps& caps) {
diff --git a/src/gpu/mtl/GrMtlStencilAttachment.h b/src/gpu/mtl/GrMtlStencilAttachment.h
index b3f3ee4..5387b06 100644
--- a/src/gpu/mtl/GrMtlStencilAttachment.h
+++ b/src/gpu/mtl/GrMtlStencilAttachment.h
@@ -8,7 +8,7 @@
 #ifndef GrMtlStencil_DEFINED
 #define GrMtlStencil_DEFINED
 
-#include "GrStencilAttachment.h"
+#include "src/gpu/GrStencilAttachment.h"
 
 #import <Metal/Metal.h>
 
diff --git a/src/gpu/mtl/GrMtlStencilAttachment.mm b/src/gpu/mtl/GrMtlStencilAttachment.mm
index a2d8fa3..b10b1d8 100644
--- a/src/gpu/mtl/GrMtlStencilAttachment.mm
+++ b/src/gpu/mtl/GrMtlStencilAttachment.mm
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "GrMtlGpu.h"
-#include "GrMtlUtil.h"
+#include "src/gpu/mtl/GrMtlGpu.h"
+#include "src/gpu/mtl/GrMtlUtil.h"
 
 GrMtlStencilAttachment::GrMtlStencilAttachment(GrMtlGpu* gpu,
                                                const Format& format,
diff --git a/src/gpu/mtl/GrMtlTexture.h b/src/gpu/mtl/GrMtlTexture.h
index c2c3c77..4eb241d 100644
--- a/src/gpu/mtl/GrMtlTexture.h
+++ b/src/gpu/mtl/GrMtlTexture.h
@@ -8,7 +8,7 @@
 #ifndef GrMtlTexture_DEFINED
 #define GrMtlTexture_DEFINED
 
-#include "GrTexture.h"
+#include "include/gpu/GrTexture.h"
 
 #import <Metal/Metal.h>
 
diff --git a/src/gpu/mtl/GrMtlTexture.mm b/src/gpu/mtl/GrMtlTexture.mm
index 87829a3..fbf2261 100644
--- a/src/gpu/mtl/GrMtlTexture.mm
+++ b/src/gpu/mtl/GrMtlTexture.mm
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrMtlTexture.h"
+#include "src/gpu/mtl/GrMtlTexture.h"
 
-#include "GrMtlGpu.h"
-#include "GrMtlUtil.h"
-#include "GrTexturePriv.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/mtl/GrMtlGpu.h"
+#include "src/gpu/mtl/GrMtlUtil.h"
 
 GrMtlTexture::GrMtlTexture(GrMtlGpu* gpu,
                            SkBudgeted budgeted,
diff --git a/src/gpu/mtl/GrMtlTextureRenderTarget.h b/src/gpu/mtl/GrMtlTextureRenderTarget.h
index 50a4e8e..b4a02d7 100644
--- a/src/gpu/mtl/GrMtlTextureRenderTarget.h
+++ b/src/gpu/mtl/GrMtlTextureRenderTarget.h
@@ -8,8 +8,8 @@
 #ifndef GrMtlTextureRenderTarget_DEFINED
 #define GrMtlTextureRenderTarget_DEFINED
 
-#include "GrMtlRenderTarget.h"
-#include "GrMtlTexture.h"
+#include "src/gpu/mtl/GrMtlRenderTarget.h"
+#include "src/gpu/mtl/GrMtlTexture.h"
 
 class GrMtlTextureRenderTarget: public GrMtlTexture, public GrMtlRenderTarget {
 public:
diff --git a/src/gpu/mtl/GrMtlTextureRenderTarget.mm b/src/gpu/mtl/GrMtlTextureRenderTarget.mm
index 7bd53e1..a3c6c54 100644
--- a/src/gpu/mtl/GrMtlTextureRenderTarget.mm
+++ b/src/gpu/mtl/GrMtlTextureRenderTarget.mm
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "GrMtlTextureRenderTarget.h"
-#include "GrMtlGpu.h"
-#include "GrMtlUtil.h"
+#include "src/gpu/mtl/GrMtlGpu.h"
+#include "src/gpu/mtl/GrMtlTextureRenderTarget.h"
+#include "src/gpu/mtl/GrMtlUtil.h"
 
 GrMtlTextureRenderTarget::GrMtlTextureRenderTarget(GrMtlGpu* gpu,
                                                    SkBudgeted budgeted,
diff --git a/src/gpu/mtl/GrMtlTrampoline.h b/src/gpu/mtl/GrMtlTrampoline.h
index 227c643..ac0cd61 100644
--- a/src/gpu/mtl/GrMtlTrampoline.h
+++ b/src/gpu/mtl/GrMtlTrampoline.h
@@ -8,8 +8,8 @@
 #ifndef GrMtlTrampoline_DEFINED
 #define GrMtlTrampoline_DEFINED
 
-#include "GrTypes.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/GrTypes.h"
 
 class GrContext;
 class GrGpu;
diff --git a/src/gpu/mtl/GrMtlTrampoline.mm b/src/gpu/mtl/GrMtlTrampoline.mm
index 516ac52..e97f740 100644
--- a/src/gpu/mtl/GrMtlTrampoline.mm
+++ b/src/gpu/mtl/GrMtlTrampoline.mm
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "GrMtlTrampoline.h"
+#include "src/gpu/mtl/GrMtlTrampoline.h"
 
-#include "GrMtlGpu.h"
+#include "src/gpu/mtl/GrMtlGpu.h"
 
 sk_sp<GrGpu> GrMtlTrampoline::MakeGpu(GrContext* context,
                                       const GrContextOptions& options,
diff --git a/src/gpu/mtl/GrMtlUniformHandler.h b/src/gpu/mtl/GrMtlUniformHandler.h
index b117e9c..859e329 100644
--- a/src/gpu/mtl/GrMtlUniformHandler.h
+++ b/src/gpu/mtl/GrMtlUniformHandler.h
@@ -8,9 +8,9 @@
 #ifndef GrMtlUniformHandler_DEFINED
 #define GrMtlUniformHandler_DEFINED
 
-#include "GrAllocator.h"
-#include "GrShaderVar.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/GrAllocator.h"
+#include "src/gpu/GrShaderVar.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 // TODO: this class is basically copy and pasted from GrVkUniformHandler so that we can have
 // some shaders working. The SkSL Metal code generator was written to work with GLSL generated for
diff --git a/src/gpu/mtl/GrMtlUniformHandler.mm b/src/gpu/mtl/GrMtlUniformHandler.mm
index 505e894..1e48364 100644
--- a/src/gpu/mtl/GrMtlUniformHandler.mm
+++ b/src/gpu/mtl/GrMtlUniformHandler.mm
@@ -5,10 +5,10 @@
 * found in the LICENSE file.
 */
 
-#include "GrMtlUniformHandler.h"
-#include "GrTexture.h"
-#include "GrTexturePriv.h"
-#include "glsl/GrGLSLProgramBuilder.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/mtl/GrMtlUniformHandler.h"
 
 // TODO: this class is basically copy and pasted from GrVklUniformHandler so that we can have
 // some shaders working. The SkSL Metal code generator was written to work with GLSL generated for
diff --git a/src/gpu/mtl/GrMtlUtil.h b/src/gpu/mtl/GrMtlUtil.h
index a622534..4394957 100644
--- a/src/gpu/mtl/GrMtlUtil.h
+++ b/src/gpu/mtl/GrMtlUtil.h
@@ -10,8 +10,8 @@
 
 #import <Metal/Metal.h>
 
-#include "GrTypesPriv.h"
-#include "ir/SkSLProgram.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/sksl/ir/SkSLProgram.h"
 
 class GrMtlGpu;
 class GrSurface;
diff --git a/src/gpu/mtl/GrMtlUtil.mm b/src/gpu/mtl/GrMtlUtil.mm
index b8d4898..51e0b94 100644
--- a/src/gpu/mtl/GrMtlUtil.mm
+++ b/src/gpu/mtl/GrMtlUtil.mm
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrMtlUtil.h"
+#include "src/gpu/mtl/GrMtlUtil.h"
 
-#include "GrTypesPriv.h"
-#include "GrSurface.h"
-#include "mtl/GrMtlGpu.h"
-#include "mtl/GrMtlTexture.h"
-#include "mtl/GrMtlRenderTarget.h"
-#include "SkSLCompiler.h"
+#include "include/gpu/GrSurface.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/mtl/GrMtlGpu.h"
+#include "src/gpu/mtl/GrMtlRenderTarget.h"
+#include "src/gpu/mtl/GrMtlTexture.h"
+#include "src/sksl/SkSLCompiler.h"
 
 #import <Metal/Metal.h>
 
diff --git a/src/gpu/mtl/GrMtlVaryingHandler.h b/src/gpu/mtl/GrMtlVaryingHandler.h
index ee71583..80cd584 100644
--- a/src/gpu/mtl/GrMtlVaryingHandler.h
+++ b/src/gpu/mtl/GrMtlVaryingHandler.h
@@ -8,7 +8,7 @@
 #ifndef GrMtlVaryingHandler_DEFINED
 #define GrMtlVaryingHandler_DEFINED
 
-#include "glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
 
 class GrMtlVaryingHandler : public GrGLSLVaryingHandler {
 public:
diff --git a/src/gpu/mtl/GrMtlVaryingHandler.mm b/src/gpu/mtl/GrMtlVaryingHandler.mm
index 2692873..614bc95 100644
--- a/src/gpu/mtl/GrMtlVaryingHandler.mm
+++ b/src/gpu/mtl/GrMtlVaryingHandler.mm
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "GrMtlVaryingHandler.h"
+#include "src/gpu/mtl/GrMtlVaryingHandler.h"
 
 static void finalize_helper(GrMtlVaryingHandler::VarArray& vars) {
     int locationIndex;
diff --git a/src/gpu/ops/GrAAConvexPathRenderer.cpp b/src/gpu/ops/GrAAConvexPathRenderer.cpp
index 47f5047..ffba9ca 100644
--- a/src/gpu/ops/GrAAConvexPathRenderer.cpp
+++ b/src/gpu/ops/GrAAConvexPathRenderer.cpp
@@ -5,28 +5,28 @@
  * found in the LICENSE file.
  */
 
-#include "GrAAConvexPathRenderer.h"
-#include "GrCaps.h"
-#include "GrDrawOpTest.h"
-#include "GrGeometryProcessor.h"
-#include "GrPathUtils.h"
-#include "GrProcessor.h"
-#include "GrRenderTargetContext.h"
-#include "GrShape.h"
-#include "GrSimpleMeshDrawOpHelper.h"
-#include "GrVertexWriter.h"
-#include "SkGeometry.h"
-#include "SkPathPriv.h"
-#include "SkPointPriv.h"
-#include "SkString.h"
-#include "SkTypes.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
-#include "glsl/GrGLSLVarying.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
-#include "ops/GrMeshDrawOp.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkPathPriv.h"
+#include "src/core/SkPointPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrDrawOpTest.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrPathUtils.h"
+#include "src/gpu/GrProcessor.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/GrVertexWriter.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
+#include "src/gpu/ops/GrAAConvexPathRenderer.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
+#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h"
 
 GrAAConvexPathRenderer::GrAAConvexPathRenderer() {
 }
diff --git a/src/gpu/ops/GrAAConvexPathRenderer.h b/src/gpu/ops/GrAAConvexPathRenderer.h
index a31d6b9..b6b01dc 100644
--- a/src/gpu/ops/GrAAConvexPathRenderer.h
+++ b/src/gpu/ops/GrAAConvexPathRenderer.h
@@ -8,7 +8,7 @@
 #ifndef GrAAConvexPathRenderer_DEFINED
 #define GrAAConvexPathRenderer_DEFINED
 
-#include "GrPathRenderer.h"
+#include "src/gpu/GrPathRenderer.h"
 
 class GrAAConvexPathRenderer : public GrPathRenderer {
 public:
diff --git a/src/gpu/ops/GrAAConvexTessellator.cpp b/src/gpu/ops/GrAAConvexTessellator.cpp
index 302334a..97ebd46 100644
--- a/src/gpu/ops/GrAAConvexTessellator.cpp
+++ b/src/gpu/ops/GrAAConvexTessellator.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "GrAAConvexTessellator.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkPoint.h"
-#include "SkString.h"
-#include "GrPathUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkString.h"
+#include "src/gpu/GrPathUtils.h"
+#include "src/gpu/ops/GrAAConvexTessellator.h"
 
 // Next steps:
 //  add an interactive sample app slide
@@ -965,7 +965,7 @@
 }
 
 // include down here to avoid compilation errors caused by "-" overload in SkGeometry.h
-#include "SkGeometry.h"
+#include "src/core/SkGeometry.h"
 
 void GrAAConvexTessellator::conicTo(const SkMatrix& m, SkPoint pts[3], SkScalar w) {
     m.mapPoints(pts, 3);
diff --git a/src/gpu/ops/GrAAConvexTessellator.h b/src/gpu/ops/GrAAConvexTessellator.h
index 0b355be..2adf2cd 100644
--- a/src/gpu/ops/GrAAConvexTessellator.h
+++ b/src/gpu/ops/GrAAConvexTessellator.h
@@ -8,12 +8,12 @@
 #ifndef GrAAConvexTessellator_DEFINED
 #define GrAAConvexTessellator_DEFINED
 
-#include "SkColor.h"
-#include "SkPaint.h"
-#include "SkPointPriv.h"
-#include "SkScalar.h"
-#include "SkStrokeRec.h"
-#include "SkTDArray.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/private/SkTDArray.h"
+#include "src/core/SkPointPriv.h"
 
 class SkCanvas;
 class SkMatrix;
diff --git a/src/gpu/ops/GrAAHairLinePathRenderer.cpp b/src/gpu/ops/GrAAHairLinePathRenderer.cpp
index c06e86a..b6a5964 100644
--- a/src/gpu/ops/GrAAHairLinePathRenderer.cpp
+++ b/src/gpu/ops/GrAAHairLinePathRenderer.cpp
@@ -5,28 +5,28 @@
  * found in the LICENSE file.
  */
 
-#include "GrAAHairLinePathRenderer.h"
-#include "GrBuffer.h"
-#include "GrCaps.h"
-#include "GrClip.h"
-#include "GrDefaultGeoProcFactory.h"
-#include "GrDrawOpTest.h"
-#include "GrOpFlushState.h"
-#include "GrPathUtils.h"
-#include "GrProcessor.h"
-#include "GrResourceProvider.h"
-#include "GrShape.h"
-#include "GrSimpleMeshDrawOpHelper.h"
-#include "GrStyle.h"
-#include "SkGeometry.h"
-#include "SkMatrixPriv.h"
-#include "SkPoint3.h"
-#include "SkPointPriv.h"
-#include "SkRectPriv.h"
-#include "SkStroke.h"
-#include "SkTemplates.h"
-#include "effects/GrBezierEffect.h"
-#include "ops/GrMeshDrawOp.h"
+#include "include/core/SkPoint3.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkMatrixPriv.h"
+#include "src/core/SkPointPriv.h"
+#include "src/core/SkRectPriv.h"
+#include "src/core/SkStroke.h"
+#include "src/gpu/GrBuffer.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrDefaultGeoProcFactory.h"
+#include "src/gpu/GrDrawOpTest.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrPathUtils.h"
+#include "src/gpu/GrProcessor.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/GrStyle.h"
+#include "src/gpu/effects/GrBezierEffect.h"
+#include "src/gpu/ops/GrAAHairLinePathRenderer.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
+#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h"
 
 #define PREALLOC_PTARRAY(N) SkSTArray<(N),SkPoint, true>
 
diff --git a/src/gpu/ops/GrAAHairLinePathRenderer.h b/src/gpu/ops/GrAAHairLinePathRenderer.h
index b52d5e9..af78faa 100644
--- a/src/gpu/ops/GrAAHairLinePathRenderer.h
+++ b/src/gpu/ops/GrAAHairLinePathRenderer.h
@@ -8,7 +8,7 @@
 #ifndef GrAAHairLinePathRenderer_DEFINED
 #define GrAAHairLinePathRenderer_DEFINED
 
-#include "GrPathRenderer.h"
+#include "src/gpu/GrPathRenderer.h"
 
 class GrAAHairLinePathRenderer : public GrPathRenderer {
 public:
diff --git a/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp b/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp
index 92e77cc..5fee494 100644
--- a/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp
+++ b/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp
@@ -5,26 +5,26 @@
  * found in the LICENSE file.
  */
 
-#include "GrAALinearizingConvexPathRenderer.h"
-#include "GrAAConvexTessellator.h"
-#include "GrCaps.h"
-#include "GrDefaultGeoProcFactory.h"
-#include "GrDrawOpTest.h"
-#include "GrGeometryProcessor.h"
-#include "GrOpFlushState.h"
-#include "GrPathUtils.h"
-#include "GrProcessor.h"
-#include "GrRenderTargetContext.h"
-#include "GrShape.h"
-#include "GrStyle.h"
-#include "GrVertexWriter.h"
-#include "SkGeometry.h"
-#include "SkPathPriv.h"
-#include "SkString.h"
-#include "SkTraceEvent.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "ops/GrMeshDrawOp.h"
-#include "ops/GrSimpleMeshDrawOpHelper.h"
+#include "include/core/SkString.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkPathPriv.h"
+#include "src/core/SkTraceEvent.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrDefaultGeoProcFactory.h"
+#include "src/gpu/GrDrawOpTest.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrPathUtils.h"
+#include "src/gpu/GrProcessor.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/GrStyle.h"
+#include "src/gpu/GrVertexWriter.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/ops/GrAAConvexTessellator.h"
+#include "src/gpu/ops/GrAALinearizingConvexPathRenderer.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
+#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h"
 
 static const int DEFAULT_BUFFER_SIZE = 100;
 
diff --git a/src/gpu/ops/GrAALinearizingConvexPathRenderer.h b/src/gpu/ops/GrAALinearizingConvexPathRenderer.h
index 4fdcb12..b86f6fc 100644
--- a/src/gpu/ops/GrAALinearizingConvexPathRenderer.h
+++ b/src/gpu/ops/GrAALinearizingConvexPathRenderer.h
@@ -8,7 +8,7 @@
 #ifndef GrAALinearizingConvexPathRenderer_DEFINED
 #define GrAALinearizingConvexPathRenderer_DEFINED
 
-#include "GrPathRenderer.h"
+#include "src/gpu/GrPathRenderer.h"
 
 class GrAALinearizingConvexPathRenderer : public GrPathRenderer {
 public:
diff --git a/src/gpu/ops/GrAtlasTextOp.cpp b/src/gpu/ops/GrAtlasTextOp.cpp
index 7588c6c..4f10fb3 100644
--- a/src/gpu/ops/GrAtlasTextOp.cpp
+++ b/src/gpu/ops/GrAtlasTextOp.cpp
@@ -5,22 +5,22 @@
  * found in the LICENSE file.
  */
 
-#include "GrAtlasTextOp.h"
+#include "src/gpu/ops/GrAtlasTextOp.h"
 
-#include "GrCaps.h"
-#include "GrMemoryPool.h"
-#include "GrOpFlushState.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrResourceProvider.h"
-#include "SkMathPriv.h"
-#include "SkMatrixPriv.h"
-#include "SkPoint3.h"
-#include "SkStrikeCache.h"
-#include "effects/GrBitmapTextGeoProc.h"
-#include "effects/GrDistanceFieldGeoProc.h"
-#include "text/GrAtlasManager.h"
-#include "text/GrStrikeCache.h"
+#include "include/core/SkPoint3.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/core/SkMathPriv.h"
+#include "src/core/SkMatrixPriv.h"
+#include "src/core/SkStrikeCache.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/effects/GrBitmapTextGeoProc.h"
+#include "src/gpu/effects/GrDistanceFieldGeoProc.h"
+#include "src/gpu/text/GrAtlasManager.h"
+#include "src/gpu/text/GrStrikeCache.h"
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/gpu/ops/GrAtlasTextOp.h b/src/gpu/ops/GrAtlasTextOp.h
index 973b00b..6a8d5d6 100644
--- a/src/gpu/ops/GrAtlasTextOp.h
+++ b/src/gpu/ops/GrAtlasTextOp.h
@@ -8,9 +8,9 @@
 #ifndef GrAtlasTextOp_DEFINED
 #define GrAtlasTextOp_DEFINED
 
-#include "ops/GrMeshDrawOp.h"
-#include "text/GrTextBlob.h"
-#include "text/GrDistanceFieldAdjustTable.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
+#include "src/gpu/text/GrDistanceFieldAdjustTable.h"
+#include "src/gpu/text/GrTextBlob.h"
 
 class GrRecordingContext;
 class SkAtlasTextTarget;
diff --git a/src/gpu/ops/GrClearOp.cpp b/src/gpu/ops/GrClearOp.cpp
index 9fa0091..34e15de 100644
--- a/src/gpu/ops/GrClearOp.cpp
+++ b/src/gpu/ops/GrClearOp.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrClearOp.h"
+#include "src/gpu/ops/GrClearOp.h"
 
-#include "GrGpuCommandBuffer.h"
-#include "GrMemoryPool.h"
-#include "GrOpFlushState.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
 
 std::unique_ptr<GrClearOp> GrClearOp::Make(GrRecordingContext* context,
                                            const GrFixedClip& clip,
diff --git a/src/gpu/ops/GrClearOp.h b/src/gpu/ops/GrClearOp.h
index 89a9dec..7044b1c 100644
--- a/src/gpu/ops/GrClearOp.h
+++ b/src/gpu/ops/GrClearOp.h
@@ -8,8 +8,8 @@
 #ifndef GrClearOp_DEFINED
 #define GrClearOp_DEFINED
 
-#include "GrFixedClip.h"
-#include "GrOp.h"
+#include "src/gpu/GrFixedClip.h"
+#include "src/gpu/ops/GrOp.h"
 
 class GrOpFlushState;
 class GrRecordingContext;
diff --git a/src/gpu/ops/GrClearStencilClipOp.cpp b/src/gpu/ops/GrClearStencilClipOp.cpp
index 58e20a4..dfe8268 100644
--- a/src/gpu/ops/GrClearStencilClipOp.cpp
+++ b/src/gpu/ops/GrClearStencilClipOp.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "GrClearStencilClipOp.h"
+#include "src/gpu/ops/GrClearStencilClipOp.h"
 
-#include "GrGpuCommandBuffer.h"
-#include "GrMemoryPool.h"
-#include "GrOpFlushState.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrRecordingContextPriv.h"
 
 std::unique_ptr<GrOp> GrClearStencilClipOp::Make(GrRecordingContext* context,
                                                  const GrFixedClip& clip,
diff --git a/src/gpu/ops/GrClearStencilClipOp.h b/src/gpu/ops/GrClearStencilClipOp.h
index fd9733a..b43762b 100644
--- a/src/gpu/ops/GrClearStencilClipOp.h
+++ b/src/gpu/ops/GrClearStencilClipOp.h
@@ -8,9 +8,9 @@
 #ifndef GrClearStencilClipOp_DEFINED
 #define GrClearStencilClipOp_DEFINED
 
-#include "GrFixedClip.h"
-#include "GrOp.h"
-#include "GrRenderTargetProxy.h"
+#include "include/private/GrRenderTargetProxy.h"
+#include "src/gpu/GrFixedClip.h"
+#include "src/gpu/ops/GrOp.h"
 
 class GrOpFlushState;
 class GrRecordingContext;
diff --git a/src/gpu/ops/GrCopySurfaceOp.cpp b/src/gpu/ops/GrCopySurfaceOp.cpp
index af20b65..df64f3a 100644
--- a/src/gpu/ops/GrCopySurfaceOp.cpp
+++ b/src/gpu/ops/GrCopySurfaceOp.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "GrCopySurfaceOp.h"
+#include "src/gpu/ops/GrCopySurfaceOp.h"
 
-#include "GrGpu.h"
-#include "GrMemoryPool.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrRecordingContextPriv.h"
 
 // returns true if the read/written rect intersects the src/dst and false if not.
 static bool clip_src_rect_and_dst_point(const GrSurfaceProxy* dst,
diff --git a/src/gpu/ops/GrCopySurfaceOp.h b/src/gpu/ops/GrCopySurfaceOp.h
index dd87bc7..3581031 100644
--- a/src/gpu/ops/GrCopySurfaceOp.h
+++ b/src/gpu/ops/GrCopySurfaceOp.h
@@ -8,8 +8,8 @@
 #ifndef GrCopySurfaceOp_DEFINED
 #define GrCopySurfaceOp_DEFINED
 
-#include "GrOp.h"
-#include "GrOpFlushState.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/ops/GrOp.h"
 
 class GrRecordingContext;
 
diff --git a/src/gpu/ops/GrDashLinePathRenderer.cpp b/src/gpu/ops/GrDashLinePathRenderer.cpp
index 6bd8441..db52a54 100644
--- a/src/gpu/ops/GrDashLinePathRenderer.cpp
+++ b/src/gpu/ops/GrDashLinePathRenderer.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "GrDashLinePathRenderer.h"
-#include "GrAuditTrail.h"
-#include "GrGpu.h"
-#include "GrRenderTargetContext.h"
-#include "GrShape.h"
-#include "ops/GrDashOp.h"
-#include "ops/GrMeshDrawOp.h"
+#include "include/private/GrAuditTrail.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/ops/GrDashLinePathRenderer.h"
+#include "src/gpu/ops/GrDashOp.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
 
 GrPathRenderer::CanDrawPath
 GrDashLinePathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const {
diff --git a/src/gpu/ops/GrDashLinePathRenderer.h b/src/gpu/ops/GrDashLinePathRenderer.h
index 23227bc..4434242 100644
--- a/src/gpu/ops/GrDashLinePathRenderer.h
+++ b/src/gpu/ops/GrDashLinePathRenderer.h
@@ -8,7 +8,7 @@
 #ifndef GrDashLinePathRenderer_DEFINED
 #define GrDashLinePathRenderer_DEFINED
 
-#include "GrPathRenderer.h"
+#include "src/gpu/GrPathRenderer.h"
 
 class GrGpu;
 
diff --git a/src/gpu/ops/GrDashOp.cpp b/src/gpu/ops/GrDashOp.cpp
index ec5e22e..bb80057 100644
--- a/src/gpu/ops/GrDashOp.cpp
+++ b/src/gpu/ops/GrDashOp.cpp
@@ -5,31 +5,31 @@
  * found in the LICENSE file.
  */
 
-#include "GrDashOp.h"
-#include "GrAppliedClip.h"
-#include "GrCaps.h"
-#include "GrCoordTransform.h"
-#include "GrDefaultGeoProcFactory.h"
-#include "GrDrawOpTest.h"
-#include "GrGeometryProcessor.h"
-#include "GrMemoryPool.h"
-#include "GrOpFlushState.h"
-#include "GrProcessor.h"
-#include "GrQuad.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrStyle.h"
-#include "GrVertexWriter.h"
-#include "SkGr.h"
-#include "SkMatrixPriv.h"
-#include "SkPointPriv.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
-#include "glsl/GrGLSLVarying.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
-#include "ops/GrMeshDrawOp.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/core/SkMatrixPriv.h"
+#include "src/core/SkPointPriv.h"
+#include "src/gpu/GrAppliedClip.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrDefaultGeoProcFactory.h"
+#include "src/gpu/GrDrawOpTest.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrProcessor.h"
+#include "src/gpu/GrQuad.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrStyle.h"
+#include "src/gpu/GrVertexWriter.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
+#include "src/gpu/ops/GrDashOp.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
 
 using AAMode = GrDashOp::AAMode;
 
diff --git a/src/gpu/ops/GrDashOp.h b/src/gpu/ops/GrDashOp.h
index 19ece56..db16a71 100644
--- a/src/gpu/ops/GrDashOp.h
+++ b/src/gpu/ops/GrDashOp.h
@@ -8,8 +8,8 @@
 #ifndef GrDashOp_DEFINED
 #define GrDashOp_DEFINED
 
-#include "GrTypes.h"
-#include "SkPathEffect.h"
+#include "include/core/SkPathEffect.h"
+#include "include/gpu/GrTypes.h"
 
 class GrDrawOp;
 class GrPaint;
diff --git a/src/gpu/ops/GrDebugMarkerOp.cpp b/src/gpu/ops/GrDebugMarkerOp.cpp
index 69672b5..ddf6b3b 100644
--- a/src/gpu/ops/GrDebugMarkerOp.cpp
+++ b/src/gpu/ops/GrDebugMarkerOp.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrDebugMarkerOp.h"
+#include "src/gpu/ops/GrDebugMarkerOp.h"
 
-#include "GrCaps.h"
-#include "GrGpuCommandBuffer.h"
-#include "GrMemoryPool.h"
-#include "GrOpFlushState.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrRecordingContextPriv.h"
 
 std::unique_ptr<GrOp> GrDebugMarkerOp::Make(GrRecordingContext* context,
                                             GrRenderTargetProxy* proxy,
diff --git a/src/gpu/ops/GrDebugMarkerOp.h b/src/gpu/ops/GrDebugMarkerOp.h
index 998c80a..bf7b9eb 100644
--- a/src/gpu/ops/GrDebugMarkerOp.h
+++ b/src/gpu/ops/GrDebugMarkerOp.h
@@ -8,8 +8,8 @@
 #ifndef GrDebugMarkerOp_DEFINED
 #define GrDebugMarkerOp_DEFINED
 
-#include "GrOp.h"
-#include "GrRenderTargetProxy.h"
+#include "include/private/GrRenderTargetProxy.h"
+#include "src/gpu/ops/GrOp.h"
 
 class GrOpFlushState;
 class GrRecordingContext;
diff --git a/src/gpu/ops/GrDefaultPathRenderer.cpp b/src/gpu/ops/GrDefaultPathRenderer.cpp
index 8ea4bbf..9e369a4 100644
--- a/src/gpu/ops/GrDefaultPathRenderer.cpp
+++ b/src/gpu/ops/GrDefaultPathRenderer.cpp
@@ -5,26 +5,26 @@
  * found in the LICENSE file.
  */
 
-#include "GrDefaultPathRenderer.h"
+#include "src/gpu/ops/GrDefaultPathRenderer.h"
 
-#include "GrCaps.h"
-#include "GrDefaultGeoProcFactory.h"
-#include "GrDrawOpTest.h"
-#include "GrFillRectOp.h"
-#include "GrFixedClip.h"
-#include "GrMesh.h"
-#include "GrOpFlushState.h"
-#include "GrPathUtils.h"
-#include "GrShape.h"
-#include "GrSimpleMeshDrawOpHelper.h"
-#include "GrStyle.h"
-#include "GrSurfaceContextPriv.h"
-#include "SkGeometry.h"
-#include "SkString.h"
-#include "SkStrokeRec.h"
-#include "SkTLazy.h"
-#include "SkTraceEvent.h"
-#include "ops/GrMeshDrawOp.h"
+#include "include/core/SkString.h"
+#include "include/core/SkStrokeRec.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkTLazy.h"
+#include "src/core/SkTraceEvent.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrDefaultGeoProcFactory.h"
+#include "src/gpu/GrDrawOpTest.h"
+#include "src/gpu/GrFixedClip.h"
+#include "src/gpu/GrMesh.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrPathUtils.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/GrStyle.h"
+#include "src/gpu/GrSurfaceContextPriv.h"
+#include "src/gpu/ops/GrFillRectOp.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
+#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h"
 
 GrDefaultPathRenderer::GrDefaultPathRenderer() {
 }
diff --git a/src/gpu/ops/GrDefaultPathRenderer.h b/src/gpu/ops/GrDefaultPathRenderer.h
index f7d9819..07c1058 100644
--- a/src/gpu/ops/GrDefaultPathRenderer.h
+++ b/src/gpu/ops/GrDefaultPathRenderer.h
@@ -8,9 +8,9 @@
 #ifndef GrDefaultPathRenderer_DEFINED
 #define GrDefaultPathRenderer_DEFINED
 
-#include "GrPathRenderer.h"
-#include "GrPathStencilSettings.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "src/gpu/GrPathRenderer.h"
+#include "src/gpu/ops/GrPathStencilSettings.h"
 
 /**
  *  Subclass that renders the path using the stencil buffer to resolve fill rules
diff --git a/src/gpu/ops/GrDrawAtlasOp.cpp b/src/gpu/ops/GrDrawAtlasOp.cpp
index ed940f5..c8f453b 100644
--- a/src/gpu/ops/GrDrawAtlasOp.cpp
+++ b/src/gpu/ops/GrDrawAtlasOp.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "GrDrawAtlasOp.h"
+#include "src/gpu/ops/GrDrawAtlasOp.h"
 
-#include "GrCaps.h"
-#include "GrDefaultGeoProcFactory.h"
-#include "GrDrawOpTest.h"
-#include "GrOpFlushState.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrSimpleMeshDrawOpHelper.h"
-#include "SkGr.h"
-#include "SkRSXform.h"
-#include "SkRandom.h"
-#include "SkRectPriv.h"
+#include "include/core/SkRSXform.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkRectPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrDefaultGeoProcFactory.h"
+#include "src/gpu/GrDrawOpTest.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h"
 
 namespace {
 
diff --git a/src/gpu/ops/GrDrawAtlasOp.h b/src/gpu/ops/GrDrawAtlasOp.h
index 278ae42..425dba4 100644
--- a/src/gpu/ops/GrDrawAtlasOp.h
+++ b/src/gpu/ops/GrDrawAtlasOp.h
@@ -8,8 +8,8 @@
 #ifndef GrDrawAtlasOp_DEFINED
 #define GrDrawAtlasOp_DEFINED
 
-#include "GrTypesPriv.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/GrTypesPriv.h"
 
 class GrDrawOp;
 class GrPaint;
diff --git a/src/gpu/ops/GrDrawOp.h b/src/gpu/ops/GrDrawOp.h
index bc574fe..5627ed3 100644
--- a/src/gpu/ops/GrDrawOp.h
+++ b/src/gpu/ops/GrDrawOp.h
@@ -9,9 +9,9 @@
 #define GrDrawOp_DEFINED
 
 #include <functional>
-#include "GrDeferredUpload.h"
-#include "GrOp.h"
-#include "GrPipeline.h"
+#include "src/gpu/GrDeferredUpload.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/ops/GrOp.h"
 
 class GrAppliedClip;
 
diff --git a/src/gpu/ops/GrDrawPathOp.cpp b/src/gpu/ops/GrDrawPathOp.cpp
index 72910a1..0367876 100644
--- a/src/gpu/ops/GrDrawPathOp.cpp
+++ b/src/gpu/ops/GrDrawPathOp.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrDrawPathOp.h"
-#include "GrAppliedClip.h"
-#include "GrMemoryPool.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetPriv.h"
-#include "SkTemplates.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/SkTemplates.h"
+#include "src/gpu/GrAppliedClip.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/ops/GrDrawPathOp.h"
 
 static constexpr GrUserStencilSettings kCoverPass{
         GrUserStencilSettings::StaticInit<
diff --git a/src/gpu/ops/GrDrawPathOp.h b/src/gpu/ops/GrDrawPathOp.h
index 3d7c48c..53fcd03 100644
--- a/src/gpu/ops/GrDrawPathOp.h
+++ b/src/gpu/ops/GrDrawPathOp.h
@@ -8,13 +8,13 @@
 #ifndef GrDrawPathOp_DEFINED
 #define GrDrawPathOp_DEFINED
 
-#include "GrDrawOp.h"
-#include "GrOpFlushState.h"
-#include "GrPath.h"
-#include "GrPathProcessor.h"
-#include "GrPathRendering.h"
-#include "GrProcessorSet.h"
-#include "GrStencilSettings.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrPath.h"
+#include "src/gpu/GrPathProcessor.h"
+#include "src/gpu/GrPathRendering.h"
+#include "src/gpu/GrProcessorSet.h"
+#include "src/gpu/GrStencilSettings.h"
+#include "src/gpu/ops/GrDrawOp.h"
 
 class GrPaint;
 class GrRecordingContext;
diff --git a/src/gpu/ops/GrDrawVerticesOp.cpp b/src/gpu/ops/GrDrawVerticesOp.cpp
index bb51887..efa2640 100644
--- a/src/gpu/ops/GrDrawVerticesOp.cpp
+++ b/src/gpu/ops/GrDrawVerticesOp.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "GrDrawVerticesOp.h"
-#include "GrCaps.h"
-#include "GrDefaultGeoProcFactory.h"
-#include "GrOpFlushState.h"
-#include "GrSimpleMeshDrawOpHelper.h"
-#include "SkGr.h"
-#include "SkRectPriv.h"
+#include "src/core/SkRectPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrDefaultGeoProcFactory.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/ops/GrDrawVerticesOp.h"
+#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h"
 
 namespace {
 
@@ -592,7 +592,7 @@
 
 #if GR_TEST_UTILS
 
-#include "GrDrawOpTest.h"
+#include "src/gpu/GrDrawOpTest.h"
 
 static uint32_t seed_vertices(GrPrimitiveType type) {
     switch (type) {
diff --git a/src/gpu/ops/GrDrawVerticesOp.h b/src/gpu/ops/GrDrawVerticesOp.h
index 94f9de9f..2f146b8 100644
--- a/src/gpu/ops/GrDrawVerticesOp.h
+++ b/src/gpu/ops/GrDrawVerticesOp.h
@@ -8,9 +8,9 @@
 #ifndef GrDrawVerticesOp_DEFINED
 #define GrDrawVerticesOp_DEFINED
 
-#include "GrTypesPriv.h"
-#include "SkRefCnt.h"
-#include "SkVertices.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkVertices.h"
+#include "include/private/GrTypesPriv.h"
 
 class GrColorSpaceXform;
 class GrDrawOp;
diff --git a/src/gpu/ops/GrDrawableOp.cpp b/src/gpu/ops/GrDrawableOp.cpp
index 1539ea4..6f89d74 100644
--- a/src/gpu/ops/GrDrawableOp.cpp
+++ b/src/gpu/ops/GrDrawableOp.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrDrawableOp.h"
+#include "src/gpu/ops/GrDrawableOp.h"
 
-#include "GrGpuCommandBuffer.h"
-#include "GrMemoryPool.h"
-#include "GrOpFlushState.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "SkDrawable.h"
+#include "include/core/SkDrawable.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrRecordingContextPriv.h"
 
 std::unique_ptr<GrDrawableOp> GrDrawableOp::Make(
         GrRecordingContext* context, std::unique_ptr<SkDrawable::GpuDrawHandler> drawable,
diff --git a/src/gpu/ops/GrDrawableOp.h b/src/gpu/ops/GrDrawableOp.h
index 29c4855..b5b71a7 100644
--- a/src/gpu/ops/GrDrawableOp.h
+++ b/src/gpu/ops/GrDrawableOp.h
@@ -8,11 +8,11 @@
 #ifndef GrDrawableOp_DEFINED
 #define GrDrawableOp_DEFINED
 
-#include "GrOp.h"
+#include "src/gpu/ops/GrOp.h"
 
-#include "GrSemaphore.h"
-#include "SkDrawable.h"
-#include "SkMatrix.h"
+#include "include/core/SkDrawable.h"
+#include "include/core/SkMatrix.h"
+#include "src/gpu/GrSemaphore.h"
 
 class GrRecordingContext;
 
diff --git a/src/gpu/ops/GrFillRRectOp.cpp b/src/gpu/ops/GrFillRRectOp.cpp
index a302099..d8f8487 100644
--- a/src/gpu/ops/GrFillRRectOp.cpp
+++ b/src/gpu/ops/GrFillRRectOp.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "GrFillRRectOp.h"
+#include "src/gpu/ops/GrFillRRectOp.h"
 
-#include "GrCaps.h"
-#include "GrGpuCommandBuffer.h"
-#include "GrMemoryPool.h"
-#include "GrOpFlushState.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "SkRRectPriv.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLVarying.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/core/SkRRectPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 // Hardware derivatives are not always accurate enough for highly elliptical corners. This method
 // checks to make sure the corners will still all look good if we use HW derivatives.
diff --git a/src/gpu/ops/GrFillRRectOp.h b/src/gpu/ops/GrFillRRectOp.h
index 9bc88a0..1686321 100644
--- a/src/gpu/ops/GrFillRRectOp.h
+++ b/src/gpu/ops/GrFillRRectOp.h
@@ -8,7 +8,7 @@
 #ifndef GrFillRRectOp_DEFINED
 #define GrFillRRectOp_DEFINED
 
-#include "GrDrawOp.h"
+#include "src/gpu/ops/GrDrawOp.h"
 
 class GrRecordingContext;
 
diff --git a/src/gpu/ops/GrFillRectOp.cpp b/src/gpu/ops/GrFillRectOp.cpp
index ef4f20a..ece0791 100644
--- a/src/gpu/ops/GrFillRectOp.cpp
+++ b/src/gpu/ops/GrFillRectOp.cpp
@@ -5,21 +5,21 @@
  * found in the LICENSE file.
  */
 
-#include "GrFillRectOp.h"
+#include "src/gpu/ops/GrFillRectOp.h"
 
-#include "GrCaps.h"
-#include "GrGeometryProcessor.h"
-#include "GrMeshDrawOp.h"
-#include "GrPaint.h"
-#include "GrQuad.h"
-#include "GrQuadPerEdgeAA.h"
-#include "GrSimpleMeshDrawOpHelper.h"
-#include "SkGr.h"
-#include "SkMatrix.h"
-#include "SkRect.h"
-#include "glsl/GrGLSLColorSpaceXformHelper.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLVarying.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkRect.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrPaint.h"
+#include "src/gpu/GrQuad.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/glsl/GrGLSLColorSpaceXformHelper.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
+#include "src/gpu/ops/GrQuadPerEdgeAA.h"
+#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h"
 
 namespace {
 
@@ -483,8 +483,8 @@
 
 #if GR_TEST_UTILS
 
-#include "GrDrawOpTest.h"
-#include "SkGr.h"
+#include "src/gpu/GrDrawOpTest.h"
+#include "src/gpu/SkGr.h"
 
 GR_DRAW_OP_TEST_DEFINE(FillRectOp) {
     SkMatrix viewMatrix = GrTest::TestMatrixInvertible(random);
diff --git a/src/gpu/ops/GrFillRectOp.h b/src/gpu/ops/GrFillRectOp.h
index 2891720..686d14e 100644
--- a/src/gpu/ops/GrFillRectOp.h
+++ b/src/gpu/ops/GrFillRectOp.h
@@ -8,8 +8,8 @@
 #ifndef GrFillRectOp_DEFINED
 #define GrFillRectOp_DEFINED
 
-#include "GrRenderTargetContext.h"
-#include "GrTypesPriv.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
 
 class GrDrawOp;
 class GrPaint;
diff --git a/src/gpu/ops/GrLatticeOp.cpp b/src/gpu/ops/GrLatticeOp.cpp
index 677e301..21da22a4 100644
--- a/src/gpu/ops/GrLatticeOp.cpp
+++ b/src/gpu/ops/GrLatticeOp.cpp
@@ -5,24 +5,24 @@
  * found in the LICENSE file.
  */
 
-#include "GrLatticeOp.h"
-#include "GrDefaultGeoProcFactory.h"
-#include "GrDrawOpTest.h"
-#include "GrGpu.h"
-#include "GrMeshDrawOp.h"
-#include "GrOpFlushState.h"
-#include "GrResourceProvider.h"
-#include "GrResourceProviderPriv.h"
-#include "GrSimpleMeshDrawOpHelper.h"
-#include "GrVertexWriter.h"
-#include "SkBitmap.h"
-#include "SkGr.h"
-#include "SkLatticeIter.h"
-#include "SkMatrixPriv.h"
-#include "SkRect.h"
-#include "glsl/GrGLSLColorSpaceXformHelper.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLVarying.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkRect.h"
+#include "src/core/SkLatticeIter.h"
+#include "src/core/SkMatrixPriv.h"
+#include "src/gpu/GrDefaultGeoProcFactory.h"
+#include "src/gpu/GrDrawOpTest.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrResourceProviderPriv.h"
+#include "src/gpu/GrVertexWriter.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/glsl/GrGLSLColorSpaceXformHelper.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/ops/GrLatticeOp.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
+#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h"
 
 namespace {
 
@@ -350,8 +350,8 @@
 };
 
 #if GR_TEST_UTILS
-#include "GrProxyProvider.h"
-#include "GrRecordingContextPriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
 
 /** Randomly divides subset into count divs. */
 static void init_random_divs(int divs[], int count, int subsetStart, int subsetStop,
diff --git a/src/gpu/ops/GrLatticeOp.h b/src/gpu/ops/GrLatticeOp.h
index cc3f301..a2d1fb1 100644
--- a/src/gpu/ops/GrLatticeOp.h
+++ b/src/gpu/ops/GrLatticeOp.h
@@ -9,8 +9,8 @@
 #define GLatticeOp_DEFINED
 
 #include <memory>
-#include "GrSamplerState.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/GrSamplerState.h"
 
 class GrColorSpaceXform;
 class GrDrawOp;
diff --git a/src/gpu/ops/GrMeshDrawOp.cpp b/src/gpu/ops/GrMeshDrawOp.cpp
index a8ad863..6695058 100644
--- a/src/gpu/ops/GrMeshDrawOp.cpp
+++ b/src/gpu/ops/GrMeshDrawOp.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrGpuCommandBuffer.h"
-#include "GrMeshDrawOp.h"
-#include "GrOpFlushState.h"
-#include "GrResourceProvider.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
 
 GrMeshDrawOp::GrMeshDrawOp(uint32_t classID) : INHERITED(classID) {}
 
diff --git a/src/gpu/ops/GrMeshDrawOp.h b/src/gpu/ops/GrMeshDrawOp.h
index f0c11a4..2140b7d 100644
--- a/src/gpu/ops/GrMeshDrawOp.h
+++ b/src/gpu/ops/GrMeshDrawOp.h
@@ -8,10 +8,10 @@
 #ifndef GrMeshDrawOp_DEFINED
 #define GrMeshDrawOp_DEFINED
 
-#include "GrAppliedClip.h"
-#include "GrDrawOp.h"
-#include "GrGeometryProcessor.h"
-#include "GrMesh.h"
+#include "src/gpu/GrAppliedClip.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrMesh.h"
+#include "src/gpu/ops/GrDrawOp.h"
 #include <type_traits>
 
 class GrAtlasManager;
diff --git a/src/gpu/ops/GrOp.cpp b/src/gpu/ops/GrOp.cpp
index b8a0031..30e2e44 100644
--- a/src/gpu/ops/GrOp.cpp
+++ b/src/gpu/ops/GrOp.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "GrOp.h"
+#include "src/gpu/ops/GrOp.h"
 
 std::atomic<uint32_t> GrOp::gCurrOpClassID {GrOp::kIllegalOpID + 1};
 std::atomic<uint32_t> GrOp::gCurrOpUniqueID{GrOp::kIllegalOpID + 1};
diff --git a/src/gpu/ops/GrOp.h b/src/gpu/ops/GrOp.h
index f3d0db0..c617dc6 100644
--- a/src/gpu/ops/GrOp.h
+++ b/src/gpu/ops/GrOp.h
@@ -8,13 +8,13 @@
 #ifndef GrOp_DEFINED
 #define GrOp_DEFINED
 
-#include "GrGpuResource.h"
-#include "GrNonAtomicRef.h"
-#include "GrTracing.h"
-#include "GrXferProcessor.h"
-#include "SkMatrix.h"
-#include "SkRect.h"
-#include "SkString.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkString.h"
+#include "include/gpu/GrGpuResource.h"
+#include "src/gpu/GrNonAtomicRef.h"
+#include "src/gpu/GrTracing.h"
+#include "src/gpu/GrXferProcessor.h"
 #include <atomic>
 #include <new>
 
diff --git a/src/gpu/ops/GrOvalOpFactory.cpp b/src/gpu/ops/GrOvalOpFactory.cpp
index 532ca0b..f463431 100644
--- a/src/gpu/ops/GrOvalOpFactory.cpp
+++ b/src/gpu/ops/GrOvalOpFactory.cpp
@@ -5,27 +5,27 @@
  * found in the LICENSE file.
  */
 
-#include "GrOvalOpFactory.h"
-#include "GrCaps.h"
-#include "GrDrawOpTest.h"
-#include "GrGeometryProcessor.h"
-#include "GrOpFlushState.h"
-#include "GrProcessor.h"
-#include "GrResourceProvider.h"
-#include "GrShaderCaps.h"
-#include "GrStyle.h"
-#include "GrVertexWriter.h"
-#include "SkRRectPriv.h"
-#include "SkStrokeRec.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
-#include "glsl/GrGLSLUtil.h"
-#include "glsl/GrGLSLVarying.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
-#include "ops/GrMeshDrawOp.h"
-#include "ops/GrSimpleMeshDrawOpHelper.h"
+#include "include/core/SkStrokeRec.h"
+#include "src/core/SkRRectPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrDrawOpTest.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrProcessor.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrStyle.h"
+#include "src/gpu/GrVertexWriter.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/glsl/GrGLSLUtil.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
+#include "src/gpu/ops/GrOvalOpFactory.h"
+#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h"
 
 #include <utility>
 
diff --git a/src/gpu/ops/GrOvalOpFactory.h b/src/gpu/ops/GrOvalOpFactory.h
index b0f0034..281adcf 100644
--- a/src/gpu/ops/GrOvalOpFactory.h
+++ b/src/gpu/ops/GrOvalOpFactory.h
@@ -8,8 +8,8 @@
 #ifndef GrOvalOpFactory_DEFINED
 #define GrOvalOpFactory_DEFINED
 
-#include "GrColor.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/GrColor.h"
 
 class GrDrawOp;
 class GrPaint;
diff --git a/src/gpu/ops/GrPathStencilSettings.h b/src/gpu/ops/GrPathStencilSettings.h
index 10e6ddd..8d22173 100644
--- a/src/gpu/ops/GrPathStencilSettings.h
+++ b/src/gpu/ops/GrPathStencilSettings.h
@@ -8,7 +8,7 @@
 #ifndef GrPathStencilSettings_DEFINED
 #define GrPathStencilSettings_DEFINED
 
-#include "GrUserStencilSettings.h"
+#include "src/gpu/GrUserStencilSettings.h"
 
 ////////////////////////////////////////////////////////////////////////////////
 // Stencil rules for paths
diff --git a/src/gpu/ops/GrQuadPerEdgeAA.cpp b/src/gpu/ops/GrQuadPerEdgeAA.cpp
index b0edaa7..47c2831 100644
--- a/src/gpu/ops/GrQuadPerEdgeAA.cpp
+++ b/src/gpu/ops/GrQuadPerEdgeAA.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "GrQuadPerEdgeAA.h"
-#include "GrQuad.h"
-#include "GrVertexWriter.h"
-#include "glsl/GrGLSLColorSpaceXformHelper.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLPrimitiveProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLVarying.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
-#include "SkGr.h"
-#include "SkNx.h"
+#include "include/private/SkNx.h"
+#include "src/gpu/GrQuad.h"
+#include "src/gpu/GrVertexWriter.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/glsl/GrGLSLColorSpaceXformHelper.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLPrimitiveProcessor.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
+#include "src/gpu/ops/GrQuadPerEdgeAA.h"
 
 #define AI SK_ALWAYS_INLINE
 
diff --git a/src/gpu/ops/GrQuadPerEdgeAA.h b/src/gpu/ops/GrQuadPerEdgeAA.h
index f031dbf..a39535a 100644
--- a/src/gpu/ops/GrQuadPerEdgeAA.h
+++ b/src/gpu/ops/GrQuadPerEdgeAA.h
@@ -8,14 +8,14 @@
 #ifndef GrQuadPerEdgeAA_DEFINED
 #define GrQuadPerEdgeAA_DEFINED
 
-#include "GrColor.h"
-#include "GrGeometryProcessor.h"
-#include "GrMeshDrawOp.h"
-#include "GrQuad.h"
-#include "GrSamplerState.h"
-#include "GrTypesPriv.h"
-#include "SkPoint.h"
-#include "SkPoint3.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkPoint3.h"
+#include "include/gpu/GrSamplerState.h"
+#include "include/private/GrColor.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrQuad.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
 
 class GrCaps;
 class GrColorSpaceXform;
diff --git a/src/gpu/ops/GrRegionOp.cpp b/src/gpu/ops/GrRegionOp.cpp
index e34bb32..da575b6 100644
--- a/src/gpu/ops/GrRegionOp.cpp
+++ b/src/gpu/ops/GrRegionOp.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "GrRegionOp.h"
+#include "src/gpu/ops/GrRegionOp.h"
 
-#include "GrCaps.h"
-#include "GrDefaultGeoProcFactory.h"
-#include "GrDrawOpTest.h"
-#include "GrMeshDrawOp.h"
-#include "GrOpFlushState.h"
-#include "GrResourceProvider.h"
-#include "GrSimpleMeshDrawOpHelper.h"
-#include "GrVertexWriter.h"
-#include "SkMatrixPriv.h"
-#include "SkRegion.h"
+#include "include/core/SkRegion.h"
+#include "src/core/SkMatrixPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrDefaultGeoProcFactory.h"
+#include "src/gpu/GrDrawOpTest.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrVertexWriter.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
+#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h"
 
 static const int kVertsPerInstance = 4;
 static const int kIndicesPerInstance = 6;
diff --git a/src/gpu/ops/GrRegionOp.h b/src/gpu/ops/GrRegionOp.h
index badea79..d7dc17c 100644
--- a/src/gpu/ops/GrRegionOp.h
+++ b/src/gpu/ops/GrRegionOp.h
@@ -8,7 +8,7 @@
 #ifndef GrRegionOp_DEFINED
 #define GrRegionOp_DEFINED
 
-#include "GrTypesPriv.h"
+#include "include/private/GrTypesPriv.h"
 
 class GrDrawOp;
 class GrRecordingContext;
diff --git a/src/gpu/ops/GrSemaphoreOp.cpp b/src/gpu/ops/GrSemaphoreOp.cpp
index 518a460..e13e244 100644
--- a/src/gpu/ops/GrSemaphoreOp.cpp
+++ b/src/gpu/ops/GrSemaphoreOp.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "GrSemaphoreOp.h"
+#include "src/gpu/ops/GrSemaphoreOp.h"
 
-#include "GrGpu.h"
-#include "GrMemoryPool.h"
-#include "GrOpFlushState.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrRecordingContextPriv.h"
 
 class GrWaitSemaphoreOp final : public GrSemaphoreOp {
 public:
diff --git a/src/gpu/ops/GrSemaphoreOp.h b/src/gpu/ops/GrSemaphoreOp.h
index 648749d..4307da4 100644
--- a/src/gpu/ops/GrSemaphoreOp.h
+++ b/src/gpu/ops/GrSemaphoreOp.h
@@ -8,11 +8,11 @@
 #ifndef GrSemaphoreOp_DEFINED
 #define GrSemaphoreOp_DEFINED
 
-#include "GrOp.h"
+#include "src/gpu/ops/GrOp.h"
 
-#include "GrRenderTargetProxy.h"
-#include "GrSemaphore.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/GrRenderTargetProxy.h"
+#include "src/gpu/GrSemaphore.h"
 
 class GrRecordingContext;
 
diff --git a/src/gpu/ops/GrShadowRRectOp.cpp b/src/gpu/ops/GrShadowRRectOp.cpp
index 50ac40f..20b8e09 100644
--- a/src/gpu/ops/GrShadowRRectOp.cpp
+++ b/src/gpu/ops/GrShadowRRectOp.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "GrShadowRRectOp.h"
+#include "src/gpu/ops/GrShadowRRectOp.h"
 
-#include "GrDrawOpTest.h"
-#include "GrMemoryPool.h"
-#include "GrOpFlushState.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "SkRRectPriv.h"
-#include "effects/GrShadowGeoProc.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/core/SkRRectPriv.h"
+#include "src/gpu/GrDrawOpTest.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/effects/GrShadowGeoProc.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 // Circle Data
diff --git a/src/gpu/ops/GrShadowRRectOp.h b/src/gpu/ops/GrShadowRRectOp.h
index 1b2052a..45fbc6c 100644
--- a/src/gpu/ops/GrShadowRRectOp.h
+++ b/src/gpu/ops/GrShadowRRectOp.h
@@ -9,7 +9,7 @@
 #define GrShadowRRectOp_DEFINED
 
 #include <memory>
-#include "GrColor.h"
+#include "include/private/GrColor.h"
 
 class GrDrawOp;
 class GrRecordingContext;
diff --git a/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp b/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp
index e2b14c9..edffc61 100644
--- a/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp
+++ b/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "GrSimpleMeshDrawOpHelper.h"
-#include "GrAppliedClip.h"
-#include "GrProcessorSet.h"
-#include "GrRect.h"
-#include "GrUserStencilSettings.h"
-#include "SkGr.h"
+#include "src/gpu/GrAppliedClip.h"
+#include "src/gpu/GrProcessorSet.h"
+#include "src/gpu/GrRect.h"
+#include "src/gpu/GrUserStencilSettings.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h"
 
 GrSimpleMeshDrawOpHelper::GrSimpleMeshDrawOpHelper(const MakeArgs& args, GrAAType aaType,
                                                    InputFlags inputFlags)
diff --git a/src/gpu/ops/GrSimpleMeshDrawOpHelper.h b/src/gpu/ops/GrSimpleMeshDrawOpHelper.h
index fee013f..9bd3902 100644
--- a/src/gpu/ops/GrSimpleMeshDrawOpHelper.h
+++ b/src/gpu/ops/GrSimpleMeshDrawOpHelper.h
@@ -8,12 +8,12 @@
 #ifndef GrSimpleMeshDrawOpHelper_DEFINED
 #define GrSimpleMeshDrawOpHelper_DEFINED
 
-#include "GrMemoryPool.h" // only here bc of the templated FactoryHelper
-#include "GrMeshDrawOp.h"
-#include "GrOpFlushState.h"
-#include "GrPipeline.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
 #include <new>
 
 struct SkRect;
diff --git a/src/gpu/ops/GrSmallPathRenderer.cpp b/src/gpu/ops/GrSmallPathRenderer.cpp
index 6737ba5..72dbe01 100644
--- a/src/gpu/ops/GrSmallPathRenderer.cpp
+++ b/src/gpu/ops/GrSmallPathRenderer.cpp
@@ -6,27 +6,27 @@
  * found in the LICENSE file.
  */
 
-#include "GrSmallPathRenderer.h"
+#include "src/gpu/ops/GrSmallPathRenderer.h"
 
-#include "GrBuffer.h"
-#include "GrCaps.h"
-#include "GrDistanceFieldGenFromVector.h"
-#include "GrDrawOpTest.h"
-#include "GrQuad.h"
-#include "GrRenderTargetContext.h"
-#include "GrResourceProvider.h"
-#include "GrSimpleMeshDrawOpHelper.h"
-#include "GrVertexWriter.h"
-#include "SkAutoMalloc.h"
-#include "SkAutoPixmapStorage.h"
-#include "SkDistanceFieldGen.h"
-#include "SkDraw.h"
-#include "SkPaint.h"
-#include "SkPointPriv.h"
-#include "SkRasterClip.h"
-#include "effects/GrBitmapTextGeoProc.h"
-#include "effects/GrDistanceFieldGeoProc.h"
-#include "ops/GrMeshDrawOp.h"
+#include "include/core/SkPaint.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkAutoPixmapStorage.h"
+#include "src/core/SkDistanceFieldGen.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkPointPriv.h"
+#include "src/core/SkRasterClip.h"
+#include "src/gpu/GrBuffer.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrDistanceFieldGenFromVector.h"
+#include "src/gpu/GrDrawOpTest.h"
+#include "src/gpu/GrQuad.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrVertexWriter.h"
+#include "src/gpu/effects/GrBitmapTextGeoProc.h"
+#include "src/gpu/effects/GrDistanceFieldGeoProc.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
+#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h"
 
 #define ATLAS_TEXTURE_WIDTH 2048
 #define ATLAS_TEXTURE_HEIGHT 2048
diff --git a/src/gpu/ops/GrSmallPathRenderer.h b/src/gpu/ops/GrSmallPathRenderer.h
index d106fc0..946b9ba 100644
--- a/src/gpu/ops/GrSmallPathRenderer.h
+++ b/src/gpu/ops/GrSmallPathRenderer.h
@@ -8,14 +8,14 @@
 #ifndef GrSmallPathRenderer_DEFINED
 #define GrSmallPathRenderer_DEFINED
 
-#include "GrDrawOpAtlas.h"
-#include "GrOnFlushResourceProvider.h"
-#include "GrPathRenderer.h"
-#include "GrRect.h"
-#include "GrShape.h"
+#include "src/gpu/GrDrawOpAtlas.h"
+#include "src/gpu/GrOnFlushResourceProvider.h"
+#include "src/gpu/GrPathRenderer.h"
+#include "src/gpu/GrRect.h"
+#include "src/gpu/GrShape.h"
 
-#include "SkOpts.h"
-#include "SkTDynamicHash.h"
+#include "src/core/SkOpts.h"
+#include "src/core/SkTDynamicHash.h"
 
 class GrRecordingContext;
 
diff --git a/src/gpu/ops/GrStencilAndCoverPathRenderer.cpp b/src/gpu/ops/GrStencilAndCoverPathRenderer.cpp
index 1da8fa5..b7f78c5 100644
--- a/src/gpu/ops/GrStencilAndCoverPathRenderer.cpp
+++ b/src/gpu/ops/GrStencilAndCoverPathRenderer.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "GrStencilAndCoverPathRenderer.h"
-#include "GrCaps.h"
-#include "GrDrawPathOp.h"
-#include "GrFixedClip.h"
-#include "GrGpu.h"
-#include "GrPath.h"
-#include "GrRecordingContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "GrResourceProvider.h"
-#include "GrShape.h"
-#include "GrStencilClip.h"
-#include "GrStencilPathOp.h"
-#include "GrStyle.h"
-#include "ops/GrFillRectOp.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrFixedClip.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrPath.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/GrStencilClip.h"
+#include "src/gpu/GrStyle.h"
+#include "src/gpu/ops/GrDrawPathOp.h"
+#include "src/gpu/ops/GrFillRectOp.h"
+#include "src/gpu/ops/GrStencilAndCoverPathRenderer.h"
+#include "src/gpu/ops/GrStencilPathOp.h"
 
 GrPathRenderer* GrStencilAndCoverPathRenderer::Create(GrResourceProvider* resourceProvider,
                                                       const GrCaps& caps) {
diff --git a/src/gpu/ops/GrStencilAndCoverPathRenderer.h b/src/gpu/ops/GrStencilAndCoverPathRenderer.h
index ed82cf6..755a1b6 100644
--- a/src/gpu/ops/GrStencilAndCoverPathRenderer.h
+++ b/src/gpu/ops/GrStencilAndCoverPathRenderer.h
@@ -8,7 +8,7 @@
 #ifndef GrBuiltInPathRenderer_DEFINED
 #define GrBuiltInPathRenderer_DEFINED
 
-#include "GrPathRenderer.h"
+#include "src/gpu/GrPathRenderer.h"
 
 class GrGpu;
 class GrResourceProvider;
diff --git a/src/gpu/ops/GrStencilPathOp.cpp b/src/gpu/ops/GrStencilPathOp.cpp
index ac12f5f..f0b9f5a 100644
--- a/src/gpu/ops/GrStencilPathOp.cpp
+++ b/src/gpu/ops/GrStencilPathOp.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrStencilPathOp.h"
+#include "src/gpu/ops/GrStencilPathOp.h"
 
-#include "GrGpu.h"
-#include "GrMemoryPool.h"
-#include "GrOpFlushState.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetPriv.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetPriv.h"
 
 std::unique_ptr<GrOp> GrStencilPathOp::Make(GrRecordingContext* context,
                                             const SkMatrix& viewMatrix,
diff --git a/src/gpu/ops/GrStencilPathOp.h b/src/gpu/ops/GrStencilPathOp.h
index 5b7bf86..f78356b 100644
--- a/src/gpu/ops/GrStencilPathOp.h
+++ b/src/gpu/ops/GrStencilPathOp.h
@@ -8,10 +8,10 @@
 #ifndef GrStencilPathOp_DEFINED
 #define GrStencilPathOp_DEFINED
 
-#include "GrOp.h"
-#include "GrPath.h"
-#include "GrPathRendering.h"
-#include "GrStencilSettings.h"
+#include "src/gpu/GrPath.h"
+#include "src/gpu/GrPathRendering.h"
+#include "src/gpu/GrStencilSettings.h"
+#include "src/gpu/ops/GrOp.h"
 
 class GrOpFlushState;
 class GrRecordingContext;
diff --git a/src/gpu/ops/GrStrokeRectOp.cpp b/src/gpu/ops/GrStrokeRectOp.cpp
index c7b469c..36489a5 100644
--- a/src/gpu/ops/GrStrokeRectOp.cpp
+++ b/src/gpu/ops/GrStrokeRectOp.cpp
@@ -5,21 +5,21 @@
  * found in the LICENSE file.
  */
 
-#include "GrStrokeRectOp.h"
+#include "src/gpu/ops/GrStrokeRectOp.h"
 
-#include "GrCaps.h"
-#include "GrColor.h"
-#include "GrDefaultGeoProcFactory.h"
-#include "GrDrawOpTest.h"
-#include "GrMeshDrawOp.h"
-#include "GrOpFlushState.h"
-#include "GrResourceKey.h"
-#include "GrResourceProvider.h"
-#include "GrSimpleMeshDrawOpHelper.h"
-#include "GrVertexWriter.h"
-#include "ops/GrFillRectOp.h"
-#include "SkRandom.h"
-#include "SkStrokeRec.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/private/GrColor.h"
+#include "include/private/GrResourceKey.h"
+#include "include/utils/SkRandom.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrDefaultGeoProcFactory.h"
+#include "src/gpu/GrDrawOpTest.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrVertexWriter.h"
+#include "src/gpu/ops/GrFillRectOp.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
+#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h"
 
 namespace {
 
@@ -785,7 +785,7 @@
 
 #if GR_TEST_UTILS
 
-#include "GrDrawOpTest.h"
+#include "src/gpu/GrDrawOpTest.h"
 
 GR_DRAW_OP_TEST_DEFINE(NonAAStrokeRectOp) {
     SkMatrix viewMatrix = GrTest::TestMatrix(random);
diff --git a/src/gpu/ops/GrStrokeRectOp.h b/src/gpu/ops/GrStrokeRectOp.h
index 510579e..6f319cc 100644
--- a/src/gpu/ops/GrStrokeRectOp.h
+++ b/src/gpu/ops/GrStrokeRectOp.h
@@ -8,7 +8,7 @@
 #ifndef GrStrokeRectOp_DEFINED
 #define GrStrokeRectOp_DEFINED
 
-#include "GrTypesPriv.h"
+#include "include/private/GrTypesPriv.h"
 
 class GrDrawOp;
 class GrPaint;
diff --git a/src/gpu/ops/GrTessellatingPathRenderer.cpp b/src/gpu/ops/GrTessellatingPathRenderer.cpp
index a091eaf..1539760 100644
--- a/src/gpu/ops/GrTessellatingPathRenderer.cpp
+++ b/src/gpu/ops/GrTessellatingPathRenderer.cpp
@@ -5,24 +5,24 @@
  * found in the LICENSE file.
  */
 
-#include "GrTessellatingPathRenderer.h"
+#include "src/gpu/ops/GrTessellatingPathRenderer.h"
 #include <stdio.h>
-#include "GrAuditTrail.h"
-#include "GrCaps.h"
-#include "GrClip.h"
-#include "GrDefaultGeoProcFactory.h"
-#include "GrDrawOpTest.h"
-#include "GrMesh.h"
-#include "GrOpFlushState.h"
-#include "GrPathUtils.h"
-#include "GrResourceCache.h"
-#include "GrResourceProvider.h"
-#include "GrShape.h"
-#include "GrSimpleMeshDrawOpHelper.h"
-#include "GrStyle.h"
-#include "GrTessellator.h"
-#include "SkGeometry.h"
-#include "ops/GrMeshDrawOp.h"
+#include "include/private/GrAuditTrail.h"
+#include "src/core/SkGeometry.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrDefaultGeoProcFactory.h"
+#include "src/gpu/GrDrawOpTest.h"
+#include "src/gpu/GrMesh.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrPathUtils.h"
+#include "src/gpu/GrResourceCache.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/GrStyle.h"
+#include "src/gpu/GrTessellator.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
+#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h"
 
 #ifndef GR_AA_TESSELLATOR_MAX_VERB_COUNT
 #define GR_AA_TESSELLATOR_MAX_VERB_COUNT 10
diff --git a/src/gpu/ops/GrTessellatingPathRenderer.h b/src/gpu/ops/GrTessellatingPathRenderer.h
index 7dd50fc..d76417e 100644
--- a/src/gpu/ops/GrTessellatingPathRenderer.h
+++ b/src/gpu/ops/GrTessellatingPathRenderer.h
@@ -8,7 +8,7 @@
 #ifndef GrTessellatingPathRenderer_DEFINED
 #define GrTessellatingPathRenderer_DEFINED
 
-#include "GrPathRenderer.h"
+#include "src/gpu/GrPathRenderer.h"
 
 /**
  *  Subclass that renders the path by converting to screen-space trapezoids plus
diff --git a/src/gpu/ops/GrTextureOp.cpp b/src/gpu/ops/GrTextureOp.cpp
index dd6d70c..3b208a2 100644
--- a/src/gpu/ops/GrTextureOp.cpp
+++ b/src/gpu/ops/GrTextureOp.cpp
@@ -5,34 +5,34 @@
  * found in the LICENSE file.
  */
 
-#include "GrTextureOp.h"
+#include "src/gpu/ops/GrTextureOp.h"
 #include <new>
-#include "GrAppliedClip.h"
-#include "GrCaps.h"
-#include "GrDrawOpTest.h"
-#include "GrGeometryProcessor.h"
-#include "GrGpu.h"
-#include "GrMemoryPool.h"
-#include "GrMeshDrawOp.h"
-#include "GrOpFlushState.h"
-#include "GrQuad.h"
-#include "GrQuadPerEdgeAA.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrResourceProvider.h"
-#include "GrResourceProviderPriv.h"
-#include "GrShaderCaps.h"
-#include "GrTexture.h"
-#include "GrTexturePriv.h"
-#include "GrTextureProxy.h"
-#include "SkGr.h"
-#include "SkMathPriv.h"
-#include "SkMatrixPriv.h"
-#include "SkPoint.h"
-#include "SkPoint3.h"
-#include "SkRectPriv.h"
-#include "SkTo.h"
-#include "glsl/GrGLSLVarying.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkPoint3.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkMathPriv.h"
+#include "src/core/SkMatrixPriv.h"
+#include "src/core/SkRectPriv.h"
+#include "src/gpu/GrAppliedClip.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrDrawOpTest.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrQuad.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrResourceProviderPriv.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
+#include "src/gpu/ops/GrQuadPerEdgeAA.h"
 
 namespace {
 
@@ -744,9 +744,9 @@
 }  // namespace GrTextureOp
 
 #if GR_TEST_UTILS
-#include "GrProxyProvider.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
 
 GR_DRAW_OP_TEST_DEFINE(TextureOp) {
     GrSurfaceDesc desc;
diff --git a/src/gpu/ops/GrTextureOp.h b/src/gpu/ops/GrTextureOp.h
index c59f706..5d07d34 100644
--- a/src/gpu/ops/GrTextureOp.h
+++ b/src/gpu/ops/GrTextureOp.h
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "GrColor.h"
-#include "GrRenderTargetContext.h"
-#include "GrSamplerState.h"
-#include "GrTypesPriv.h"
-#include "SkCanvas.h"
-#include "SkRefCnt.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/GrSamplerState.h"
+#include "include/private/GrColor.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
 
 class GrColorSpaceXform;
 class GrDrawOp;
diff --git a/src/gpu/text/GrAtlasManager.cpp b/src/gpu/text/GrAtlasManager.cpp
index 3b597a3..abd0b20 100644
--- a/src/gpu/text/GrAtlasManager.cpp
+++ b/src/gpu/text/GrAtlasManager.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrAtlasManager.h"
+#include "src/gpu/text/GrAtlasManager.h"
 
-#include "GrGlyph.h"
-#include "GrStrikeCache.h"
+#include "src/gpu/GrGlyph.h"
+#include "src/gpu/text/GrStrikeCache.h"
 
 GrAtlasManager::GrAtlasManager(GrProxyProvider* proxyProvider, GrStrikeCache* glyphCache,
                                size_t maxTextureBytes,
@@ -83,14 +83,14 @@
 }
 
 #ifdef SK_DEBUG
-#include "GrContextPriv.h"
-#include "GrSurfaceProxy.h"
-#include "GrSurfaceContext.h"
-#include "GrTextureProxy.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrSurfaceContext.h"
 
-#include "SkBitmap.h"
-#include "SkImageEncoder.h"
-#include "SkStream.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkImageEncoder.h"
+#include "include/core/SkStream.h"
 #include <stdio.h>
 
 /**
diff --git a/src/gpu/text/GrAtlasManager.h b/src/gpu/text/GrAtlasManager.h
index b5639a8..321c86f 100644
--- a/src/gpu/text/GrAtlasManager.h
+++ b/src/gpu/text/GrAtlasManager.h
@@ -8,10 +8,10 @@
 #ifndef GrAtlasManager_DEFINED
 #define GrAtlasManager_DEFINED
 
-#include "GrCaps.h"
-#include "GrDrawOpAtlas.h"
-#include "GrOnFlushResourceProvider.h"
-#include "GrProxyProvider.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrDrawOpAtlas.h"
+#include "src/gpu/GrOnFlushResourceProvider.h"
+#include "src/gpu/GrProxyProvider.h"
 
 struct GrGlyph;
 class GrTextStrike;
diff --git a/src/gpu/text/GrDistanceFieldAdjustTable.cpp b/src/gpu/text/GrDistanceFieldAdjustTable.cpp
index dccf010..a760d6e 100644
--- a/src/gpu/text/GrDistanceFieldAdjustTable.cpp
+++ b/src/gpu/text/GrDistanceFieldAdjustTable.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "GrDistanceFieldAdjustTable.h"
+#include "src/gpu/text/GrDistanceFieldAdjustTable.h"
 
-#include "SkScalerContext.h"
+#include "src/core/SkScalerContext.h"
 
 SkDEBUGCODE(static const int kExpectedDistanceAdjustTableSize = 8;)
 
diff --git a/src/gpu/text/GrDistanceFieldAdjustTable.h b/src/gpu/text/GrDistanceFieldAdjustTable.h
index fca9a8c..3b217b9 100644
--- a/src/gpu/text/GrDistanceFieldAdjustTable.h
+++ b/src/gpu/text/GrDistanceFieldAdjustTable.h
@@ -8,8 +8,8 @@
 #ifndef GrDistanceFieldAdjustTable_DEFINED
 #define GrDistanceFieldAdjustTable_DEFINED
 
-#include "SkRefCnt.h"
-#include "SkScalar.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
 
 // Distance field text needs this table to compute a value for use in the fragment shader.
 // Because the GrTextContext can go out of scope before the final flush, this needs to be
diff --git a/src/gpu/text/GrSDFMaskFilter.cpp b/src/gpu/text/GrSDFMaskFilter.cpp
index 2cac913..85705c1e 100644
--- a/src/gpu/text/GrSDFMaskFilter.cpp
+++ b/src/gpu/text/GrSDFMaskFilter.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "GrSDFMaskFilter.h"
-#include "SkDistanceFieldGen.h"
-#include "SkMaskFilterBase.h"
-#include "SkReadBuffer.h"
-#include "SkSafeMath.h"
-#include "SkWriteBuffer.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "src/core/SkDistanceFieldGen.h"
+#include "src/core/SkMaskFilterBase.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSafeMath.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/gpu/text/GrSDFMaskFilter.h"
 
 class SK_API GrSDFMaskFilterImpl : public SkMaskFilterBase {
 public:
diff --git a/src/gpu/text/GrSDFMaskFilter.h b/src/gpu/text/GrSDFMaskFilter.h
index cc9cf4b..b934a63 100644
--- a/src/gpu/text/GrSDFMaskFilter.h
+++ b/src/gpu/text/GrSDFMaskFilter.h
@@ -8,7 +8,7 @@
 #ifndef GrSDFMaskFilter_DEFINED
 #define GrSDFMaskFilter_DEFINED
 
-#include "SkMaskFilter.h"
+#include "include/core/SkMaskFilter.h"
 
 /** \class GrSDFMaskFilter
 
diff --git a/src/gpu/text/GrStrikeCache.cpp b/src/gpu/text/GrStrikeCache.cpp
index 293ba29..780802f 100644
--- a/src/gpu/text/GrStrikeCache.cpp
+++ b/src/gpu/text/GrStrikeCache.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "GrStrikeCache.h"
-#include "GrAtlasManager.h"
-#include "GrCaps.h"
-#include "GrColor.h"
-#include "GrDistanceFieldGenFromVector.h"
+#include "include/private/GrColor.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrDistanceFieldGenFromVector.h"
+#include "src/gpu/text/GrAtlasManager.h"
+#include "src/gpu/text/GrStrikeCache.h"
 
-#include "SkAutoMalloc.h"
-#include "SkDistanceFieldGen.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkDistanceFieldGen.h"
 
 GrStrikeCache::GrStrikeCache(const GrCaps* caps, size_t maxTextureBytes)
         : fPreserveStrike(nullptr)
diff --git a/src/gpu/text/GrStrikeCache.h b/src/gpu/text/GrStrikeCache.h
index 15fc9c3..831ea71 100644
--- a/src/gpu/text/GrStrikeCache.h
+++ b/src/gpu/text/GrStrikeCache.h
@@ -8,12 +8,12 @@
 #ifndef GrStrikeCache_DEFINED
 #define GrStrikeCache_DEFINED
 
-#include "GrDrawOpAtlas.h"
-#include "GrGlyph.h"
-#include "SkArenaAlloc.h"
-#include "SkMasks.h"
-#include "SkStrike.h"
-#include "SkTDynamicHash.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/codec/SkMasks.h"
+#include "src/core/SkStrike.h"
+#include "src/core/SkTDynamicHash.h"
+#include "src/gpu/GrDrawOpAtlas.h"
+#include "src/gpu/GrGlyph.h"
 
 class GrAtlasManager;
 class GrGpu;
diff --git a/src/gpu/text/GrTextBlob.cpp b/src/gpu/text/GrTextBlob.cpp
index 0ab8f6d..ae15c47 100644
--- a/src/gpu/text/GrTextBlob.cpp
+++ b/src/gpu/text/GrTextBlob.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "GrTextBlob.h"
-#include "GrBlurUtils.h"
-#include "GrClip.h"
-#include "GrContext.h"
-#include "GrShape.h"
-#include "GrStyle.h"
-#include "GrTextTarget.h"
-#include "SkColorFilter.h"
-#include "SkMaskFilterBase.h"
-#include "SkPaintPriv.h"
-#include "ops/GrAtlasTextOp.h"
+#include "include/core/SkColorFilter.h"
+#include "include/gpu/GrContext.h"
+#include "src/core/SkMaskFilterBase.h"
+#include "src/core/SkPaintPriv.h"
+#include "src/gpu/GrBlurUtils.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/GrStyle.h"
+#include "src/gpu/ops/GrAtlasTextOp.h"
+#include "src/gpu/text/GrTextBlob.h"
+#include "src/gpu/text/GrTextTarget.h"
 
 #include <new>
 
diff --git a/src/gpu/text/GrTextBlob.h b/src/gpu/text/GrTextBlob.h
index f0862b5..3a9e2fa 100644
--- a/src/gpu/text/GrTextBlob.h
+++ b/src/gpu/text/GrTextBlob.h
@@ -8,20 +8,20 @@
 #ifndef GrTextBlob_DEFINED
 #define GrTextBlob_DEFINED
 
-#include "GrColor.h"
-#include "GrDrawOpAtlas.h"
-#include "GrStrikeCache.h"
-#include "GrTextTarget.h"
-#include "text/GrTextContext.h"
-#include "SkDescriptor.h"
-#include "SkMaskFilterBase.h"
-#include "SkOpts.h"
-#include "SkPathEffect.h"
-#include "SkPoint3.h"
-#include "SkRectPriv.h"
-#include "SkStrikeCache.h"
-#include "SkSurfaceProps.h"
-#include "SkTInternalLList.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkPoint3.h"
+#include "include/core/SkSurfaceProps.h"
+#include "include/private/GrColor.h"
+#include "include/private/SkTInternalLList.h"
+#include "src/core/SkDescriptor.h"
+#include "src/core/SkMaskFilterBase.h"
+#include "src/core/SkOpts.h"
+#include "src/core/SkRectPriv.h"
+#include "src/core/SkStrikeCache.h"
+#include "src/gpu/GrDrawOpAtlas.h"
+#include "src/gpu/text/GrStrikeCache.h"
+#include "src/gpu/text/GrTextContext.h"
+#include "src/gpu/text/GrTextTarget.h"
 
 class GrAtlasManager;
 struct GrDistanceFieldAdjustTable;
diff --git a/src/gpu/text/GrTextBlobCache.cpp b/src/gpu/text/GrTextBlobCache.cpp
index 3d8120b..c3a6860 100644
--- a/src/gpu/text/GrTextBlobCache.cpp
+++ b/src/gpu/text/GrTextBlobCache.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "GrTextBlobCache.h"
+#include "src/gpu/text/GrTextBlobCache.h"
 
 DECLARE_SKMESSAGEBUS_MESSAGE(GrTextBlobCache::PurgeBlobMessage)
 
diff --git a/src/gpu/text/GrTextBlobCache.h b/src/gpu/text/GrTextBlobCache.h
index 03d48ad..f23ee82 100644
--- a/src/gpu/text/GrTextBlobCache.h
+++ b/src/gpu/text/GrTextBlobCache.h
@@ -8,12 +8,12 @@
 #ifndef GrTextBlobCache_DEFINED
 #define GrTextBlobCache_DEFINED
 
-#include "GrTextBlob.h"
-#include "SkMessageBus.h"
-#include "SkRefCnt.h"
-#include "SkTArray.h"
-#include "SkTextBlobPriv.h"
-#include "SkTHash.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkMessageBus.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTHash.h"
+#include "src/core/SkTextBlobPriv.h"
+#include "src/gpu/text/GrTextBlob.h"
 
 class GrTextBlobCache {
 public:
diff --git a/src/gpu/text/GrTextBlobVertexRegenerator.cpp b/src/gpu/text/GrTextBlobVertexRegenerator.cpp
index 1b2b117..a052852 100644
--- a/src/gpu/text/GrTextBlobVertexRegenerator.cpp
+++ b/src/gpu/text/GrTextBlobVertexRegenerator.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrAtlasManager.h"
-#include "GrTextBlob.h"
-#include "GrTextTarget.h"
-#include "SkDistanceFieldGen.h"
-#include "ops/GrAtlasTextOp.h"
+#include "src/core/SkDistanceFieldGen.h"
+#include "src/gpu/ops/GrAtlasTextOp.h"
+#include "src/gpu/text/GrAtlasManager.h"
+#include "src/gpu/text/GrTextBlob.h"
+#include "src/gpu/text/GrTextTarget.h"
 
 enum RegenMask {
     kNoRegen    = 0x0,
diff --git a/src/gpu/text/GrTextContext.cpp b/src/gpu/text/GrTextContext.cpp
index 5446edd..726e535 100644
--- a/src/gpu/text/GrTextContext.cpp
+++ b/src/gpu/text/GrTextContext.cpp
@@ -5,24 +5,24 @@
  * found in the LICENSE file.
  */
 
-#include "GrTextContext.h"
+#include "src/gpu/text/GrTextContext.h"
 
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrSDFMaskFilter.h"
-#include "GrTextBlobCache.h"
-#include "SkDistanceFieldGen.h"
-#include "SkDraw.h"
-#include "SkDrawProcs.h"
-#include "SkGlyphRun.h"
-#include "SkGr.h"
-#include "SkGraphics.h"
-#include "SkMakeUnique.h"
-#include "SkMaskFilterBase.h"
-#include "SkPaintPriv.h"
-#include "SkTo.h"
-#include "ops/GrMeshDrawOp.h"
+#include "include/core/SkGraphics.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkDistanceFieldGen.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkDrawProcs.h"
+#include "src/core/SkGlyphRun.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkMaskFilterBase.h"
+#include "src/core/SkPaintPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
+#include "src/gpu/text/GrSDFMaskFilter.h"
+#include "src/gpu/text/GrTextBlobCache.h"
 
 // DF sizes and thresholds for usage of the small and medium sizes. For example, above
 // kSmallDFFontLimit we will use the medium size. The large size is used up until the size at
@@ -222,7 +222,7 @@
 
 #if GR_TEST_UTILS
 
-#include "GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetContext.h"
 
 GR_DRAW_OP_TEST_DEFINE(GrAtlasTextOp) {
     static uint32_t gContextID = SK_InvalidGenID;
diff --git a/src/gpu/text/GrTextContext.h b/src/gpu/text/GrTextContext.h
index d4dfd77..cc582db 100644
--- a/src/gpu/text/GrTextContext.h
+++ b/src/gpu/text/GrTextContext.h
@@ -8,13 +8,13 @@
 #ifndef GrTextContext_DEFINED
 #define GrTextContext_DEFINED
 
-#include "GrDistanceFieldAdjustTable.h"
-#include "GrGeometryProcessor.h"
-#include "GrTextTarget.h"
-#include "SkGlyphRun.h"
+#include "src/core/SkGlyphRun.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/text/GrDistanceFieldAdjustTable.h"
+#include "src/gpu/text/GrTextTarget.h"
 
 #if GR_TEST_UTILS
-#include "GrDrawOpTest.h"
+#include "src/gpu/GrDrawOpTest.h"
 #endif
 
 class GrDrawOp;
diff --git a/src/gpu/text/GrTextTarget.h b/src/gpu/text/GrTextTarget.h
index 9ad9a7c..a03b48b 100644
--- a/src/gpu/text/GrTextTarget.h
+++ b/src/gpu/text/GrTextTarget.h
@@ -8,8 +8,8 @@
 #ifndef GrTextTarget_DEFINED
 #define GrTextTarget_DEFINED
 
-#include "GrColorSpaceInfo.h"
-#include "SkPaint.h"
+#include "include/core/SkPaint.h"
+#include "src/gpu/GrColorSpaceInfo.h"
 
 class GrAtlasTextOp;
 class GrClip;
diff --git a/src/gpu/vk/GrVkAMDMemoryAllocator.cpp b/src/gpu/vk/GrVkAMDMemoryAllocator.cpp
index db93e4f..7e3c0c6 100644
--- a/src/gpu/vk/GrVkAMDMemoryAllocator.cpp
+++ b/src/gpu/vk/GrVkAMDMemoryAllocator.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkAMDMemoryAllocator.h"
+#include "src/gpu/vk/GrVkAMDMemoryAllocator.h"
 
-#include "GrVkInterface.h"
-#include "GrVkMemory.h"
-#include "GrVkUtil.h"
+#include "src/gpu/vk/GrVkInterface.h"
+#include "src/gpu/vk/GrVkMemory.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
 GrVkAMDMemoryAllocator::GrVkAMDMemoryAllocator(VkPhysicalDevice physicalDevice,
                                                VkDevice device,
diff --git a/src/gpu/vk/GrVkAMDMemoryAllocator.h b/src/gpu/vk/GrVkAMDMemoryAllocator.h
index 57d6076..5d93dea 100644
--- a/src/gpu/vk/GrVkAMDMemoryAllocator.h
+++ b/src/gpu/vk/GrVkAMDMemoryAllocator.h
@@ -9,7 +9,7 @@
 #define GrVkAMDMemoryAllocator_DEFINED
 
 
-#include "vk/GrVkMemoryAllocator.h"
+#include "include/gpu/vk/GrVkMemoryAllocator.h"
 
 #include "GrVulkanMemoryAllocator.h"
 
diff --git a/src/gpu/vk/GrVkBuffer.cpp b/src/gpu/vk/GrVkBuffer.cpp
index 2bf3320..4b84080 100644
--- a/src/gpu/vk/GrVkBuffer.cpp
+++ b/src/gpu/vk/GrVkBuffer.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkBuffer.h"
-#include "GrVkGpu.h"
-#include "GrVkMemory.h"
-#include "GrVkTransferBuffer.h"
-#include "GrVkUtil.h"
+#include "src/gpu/vk/GrVkBuffer.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkMemory.h"
+#include "src/gpu/vk/GrVkTransferBuffer.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
 #define VK_CALL(GPU, X) GR_VK_CALL(GPU->vkInterface(), X)
 
diff --git a/src/gpu/vk/GrVkBuffer.h b/src/gpu/vk/GrVkBuffer.h
index d65f318..e82613d 100644
--- a/src/gpu/vk/GrVkBuffer.h
+++ b/src/gpu/vk/GrVkBuffer.h
@@ -8,8 +8,8 @@
 #ifndef GrVkBuffer_DEFINED
 #define GrVkBuffer_DEFINED
 
-#include "GrVkResource.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/vk/GrVkResource.h"
 
 class GrVkGpu;
 
diff --git a/src/gpu/vk/GrVkBufferView.cpp b/src/gpu/vk/GrVkBufferView.cpp
index 860cd68..f4ed9ea 100644
--- a/src/gpu/vk/GrVkBufferView.cpp
+++ b/src/gpu/vk/GrVkBufferView.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkBufferView.h"
-#include "GrVkGpu.h"
-#include "GrVkUtil.h"
+#include "src/gpu/vk/GrVkBufferView.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
 const GrVkBufferView* GrVkBufferView::Create(const GrVkGpu* gpu, VkBuffer buffer, VkFormat format,
                                              VkDeviceSize offset, VkDeviceSize range) {
diff --git a/src/gpu/vk/GrVkBufferView.h b/src/gpu/vk/GrVkBufferView.h
index ce3873a..e6adf6b 100644
--- a/src/gpu/vk/GrVkBufferView.h
+++ b/src/gpu/vk/GrVkBufferView.h
@@ -8,9 +8,9 @@
 #ifndef GrVkBufferView_DEFINED
 #define GrVkBufferView_DEFINED
 
-#include "GrTypes.h"
-#include "GrVkResource.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/GrTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/vk/GrVkResource.h"
 
 class GrVkBufferView : public GrVkResource {
 public:
diff --git a/src/gpu/vk/GrVkCaps.cpp b/src/gpu/vk/GrVkCaps.cpp
index 9df7afe..acc4f8f 100644
--- a/src/gpu/vk/GrVkCaps.cpp
+++ b/src/gpu/vk/GrVkCaps.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkCaps.h"
-#include "GrBackendSurface.h"
-#include "GrRenderTargetProxy.h"
-#include "GrRenderTarget.h"
-#include "GrShaderCaps.h"
-#include "GrVkInterface.h"
-#include "GrVkTexture.h"
-#include "GrVkUtil.h"
-#include "SkGr.h"
-#include "vk/GrVkBackendContext.h"
-#include "vk/GrVkExtensions.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "include/gpu/vk/GrVkBackendContext.h"
+#include "include/gpu/vk/GrVkExtensions.h"
+#include "include/private/GrRenderTargetProxy.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/vk/GrVkCaps.h"
+#include "src/gpu/vk/GrVkInterface.h"
+#include "src/gpu/vk/GrVkTexture.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
 GrVkCaps::GrVkCaps(const GrContextOptions& contextOptions, const GrVkInterface* vkInterface,
                    VkPhysicalDevice physDev, const VkPhysicalDeviceFeatures2& features,
diff --git a/src/gpu/vk/GrVkCaps.h b/src/gpu/vk/GrVkCaps.h
index 1d3929c..c7f501c 100644
--- a/src/gpu/vk/GrVkCaps.h
+++ b/src/gpu/vk/GrVkCaps.h
@@ -8,9 +8,9 @@
 #ifndef GrVkCaps_DEFINED
 #define GrVkCaps_DEFINED
 
-#include "GrCaps.h"
-#include "GrVkStencilAttachment.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/vk/GrVkStencilAttachment.h"
 
 class GrShaderCaps;
 class GrVkExtensions;
diff --git a/src/gpu/vk/GrVkCommandBuffer.cpp b/src/gpu/vk/GrVkCommandBuffer.cpp
index 016b657..4cad381 100644
--- a/src/gpu/vk/GrVkCommandBuffer.cpp
+++ b/src/gpu/vk/GrVkCommandBuffer.cpp
@@ -5,24 +5,24 @@
 * found in the LICENSE file.
 */
 
-#include "GrVkCommandBuffer.h"
+#include "src/gpu/vk/GrVkCommandBuffer.h"
 
-#include "GrVkCommandPool.h"
-#include "GrVkGpu.h"
-#include "GrVkFramebuffer.h"
-#include "GrVkImage.h"
-#include "GrVkImageView.h"
-#include "GrVkIndexBuffer.h"
-#include "GrVkPipeline.h"
-#include "GrVkPipelineState.h"
-#include "GrVkRenderPass.h"
-#include "GrVkRenderTarget.h"
-#include "GrVkPipelineLayout.h"
-#include "GrVkPipelineState.h"
-#include "GrVkTransferBuffer.h"
-#include "GrVkUtil.h"
-#include "GrVkVertexBuffer.h"
-#include "SkRect.h"
+#include "include/core/SkRect.h"
+#include "src/gpu/vk/GrVkCommandPool.h"
+#include "src/gpu/vk/GrVkFramebuffer.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkImage.h"
+#include "src/gpu/vk/GrVkImageView.h"
+#include "src/gpu/vk/GrVkIndexBuffer.h"
+#include "src/gpu/vk/GrVkPipeline.h"
+#include "src/gpu/vk/GrVkPipelineLayout.h"
+#include "src/gpu/vk/GrVkPipelineState.h"
+#include "src/gpu/vk/GrVkPipelineState.h"
+#include "src/gpu/vk/GrVkRenderPass.h"
+#include "src/gpu/vk/GrVkRenderTarget.h"
+#include "src/gpu/vk/GrVkTransferBuffer.h"
+#include "src/gpu/vk/GrVkUtil.h"
+#include "src/gpu/vk/GrVkVertexBuffer.h"
 
 void GrVkCommandBuffer::invalidateState() {
     for (auto& boundInputBuffer : fBoundInputBuffers) {
diff --git a/src/gpu/vk/GrVkCommandBuffer.h b/src/gpu/vk/GrVkCommandBuffer.h
index c1c8015..125ce93 100644
--- a/src/gpu/vk/GrVkCommandBuffer.h
+++ b/src/gpu/vk/GrVkCommandBuffer.h
@@ -8,11 +8,11 @@
 #ifndef GrVkCommandBuffer_DEFINED
 #define GrVkCommandBuffer_DEFINED
 
-#include "GrVkGpu.h"
-#include "GrVkResource.h"
-#include "GrVkSemaphore.h"
-#include "GrVkUtil.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkResource.h"
+#include "src/gpu/vk/GrVkSemaphore.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
 class GrVkBuffer;
 class GrVkFramebuffer;
diff --git a/src/gpu/vk/GrVkCommandPool.cpp b/src/gpu/vk/GrVkCommandPool.cpp
index 9d7c17e..22d0fbf 100644
--- a/src/gpu/vk/GrVkCommandPool.cpp
+++ b/src/gpu/vk/GrVkCommandPool.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkCommandPool.h"
+#include "src/gpu/vk/GrVkCommandPool.h"
 
-#include "GrContextPriv.h"
-#include "GrVkCommandBuffer.h"
-#include "GrVkGpu.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/vk/GrVkCommandBuffer.h"
+#include "src/gpu/vk/GrVkGpu.h"
 
 GrVkCommandPool* GrVkCommandPool::Create(const GrVkGpu* gpu) {
     const VkCommandPoolCreateInfo cmdPoolInfo = {
diff --git a/src/gpu/vk/GrVkCommandPool.h b/src/gpu/vk/GrVkCommandPool.h
index f65acfc..88bfd07 100644
--- a/src/gpu/vk/GrVkCommandPool.h
+++ b/src/gpu/vk/GrVkCommandPool.h
@@ -8,10 +8,10 @@
 #ifndef GrVkCommandPool_DEFINED
 #define GrVkCommandPool_DEFINED
 
-#include "GrVkGpuCommandBuffer.h"
-#include "GrVkInterface.h"
-#include "GrVkResource.h"
-#include "GrVkResourceProvider.h"
+#include "src/gpu/vk/GrVkGpuCommandBuffer.h"
+#include "src/gpu/vk/GrVkInterface.h"
+#include "src/gpu/vk/GrVkResource.h"
+#include "src/gpu/vk/GrVkResourceProvider.h"
 
 class GrVkPrimaryCommandBuffer;
 class GrVkSecondaryCommandBuffer;
diff --git a/src/gpu/vk/GrVkCopyManager.cpp b/src/gpu/vk/GrVkCopyManager.cpp
index 6ecd6ba..c25b2da 100644
--- a/src/gpu/vk/GrVkCopyManager.cpp
+++ b/src/gpu/vk/GrVkCopyManager.cpp
@@ -5,29 +5,29 @@
  * found in the LICENSE file.
 */
 
-#include "GrVkCopyManager.h"
+#include "src/gpu/vk/GrVkCopyManager.h"
 
-#include "GrRenderTargetPriv.h"
-#include "GrSamplerState.h"
-#include "GrShaderCaps.h"
-#include "GrSurface.h"
-#include "GrTexturePriv.h"
-#include "GrVkCommandBuffer.h"
-#include "GrVkCommandPool.h"
-#include "GrVkCopyPipeline.h"
-#include "GrVkDescriptorSet.h"
-#include "GrVkGpu.h"
-#include "GrVkImageView.h"
-#include "GrVkPipelineLayout.h"
-#include "GrVkRenderTarget.h"
-#include "GrVkResourceProvider.h"
-#include "GrVkSampler.h"
-#include "GrVkTexture.h"
-#include "GrVkUniformBuffer.h"
-#include "GrVkVertexBuffer.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkTraceEvent.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/gpu/GrSamplerState.h"
+#include "include/gpu/GrSurface.h"
+#include "src/core/SkTraceEvent.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/vk/GrVkCommandBuffer.h"
+#include "src/gpu/vk/GrVkCommandPool.h"
+#include "src/gpu/vk/GrVkCopyPipeline.h"
+#include "src/gpu/vk/GrVkDescriptorSet.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkImageView.h"
+#include "src/gpu/vk/GrVkPipelineLayout.h"
+#include "src/gpu/vk/GrVkRenderTarget.h"
+#include "src/gpu/vk/GrVkResourceProvider.h"
+#include "src/gpu/vk/GrVkSampler.h"
+#include "src/gpu/vk/GrVkTexture.h"
+#include "src/gpu/vk/GrVkUniformBuffer.h"
+#include "src/gpu/vk/GrVkVertexBuffer.h"
 
 GrVkCopyManager::GrVkCopyManager()
     : fVertShaderModule(VK_NULL_HANDLE)
diff --git a/src/gpu/vk/GrVkCopyManager.h b/src/gpu/vk/GrVkCopyManager.h
index 716c87c..e4f02b6 100644
--- a/src/gpu/vk/GrVkCopyManager.h
+++ b/src/gpu/vk/GrVkCopyManager.h
@@ -8,9 +8,9 @@
 #ifndef GrVkCopyManager_DEFINED
 #define GrVkCopyManager_DEFINED
 
-#include "GrTypes.h"
-#include "GrVkDescriptorSetManager.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/GrTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/vk/GrVkDescriptorSetManager.h"
 
 class GrSurface;
 class GrVkCopyPipeline;
diff --git a/src/gpu/vk/GrVkCopyPipeline.cpp b/src/gpu/vk/GrVkCopyPipeline.cpp
index 9672313..3b44f61 100644
--- a/src/gpu/vk/GrVkCopyPipeline.cpp
+++ b/src/gpu/vk/GrVkCopyPipeline.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkCopyPipeline.h"
+#include "src/gpu/vk/GrVkCopyPipeline.h"
 
-#include "GrVkGpu.h"
-#include "GrVkUtil.h"
-#include "SkOnce.h"
+#include "include/private/SkOnce.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
 #if defined(SK_ENABLE_SCOPED_LSAN_SUPPRESSIONS)
 #include <sanitizer/lsan_interface.h>
diff --git a/src/gpu/vk/GrVkCopyPipeline.h b/src/gpu/vk/GrVkCopyPipeline.h
index a5c14ee..9b8d2d2 100644
--- a/src/gpu/vk/GrVkCopyPipeline.h
+++ b/src/gpu/vk/GrVkCopyPipeline.h
@@ -8,7 +8,7 @@
 #ifndef GrVkCopyPipeline_DEFINED
 #define GrVkCopyPipeline_DEFINED
 
-#include "GrVkPipeline.h"
+#include "src/gpu/vk/GrVkPipeline.h"
 
 class GrVkCopyPipeline : public GrVkPipeline {
 public:
diff --git a/src/gpu/vk/GrVkDescriptorPool.cpp b/src/gpu/vk/GrVkDescriptorPool.cpp
index ffb6626..16350bd 100644
--- a/src/gpu/vk/GrVkDescriptorPool.cpp
+++ b/src/gpu/vk/GrVkDescriptorPool.cpp
@@ -5,10 +5,10 @@
 * found in the LICENSE file.
 */
 
-#include "GrVkDescriptorPool.h"
+#include "src/gpu/vk/GrVkDescriptorPool.h"
 
-#include "GrVkGpu.h"
-#include "SkTemplates.h"
+#include "include/private/SkTemplates.h"
+#include "src/gpu/vk/GrVkGpu.h"
 
 
 GrVkDescriptorPool::GrVkDescriptorPool(const GrVkGpu* gpu, VkDescriptorType type, uint32_t count)
diff --git a/src/gpu/vk/GrVkDescriptorPool.h b/src/gpu/vk/GrVkDescriptorPool.h
index 08f7431..db90e61 100644
--- a/src/gpu/vk/GrVkDescriptorPool.h
+++ b/src/gpu/vk/GrVkDescriptorPool.h
@@ -8,8 +8,8 @@
 #ifndef GrVkDescriptorPool_DEFINED
 #define GrVkDescriptorPool_DEFINED
 
-#include "GrVkResource.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/vk/GrVkResource.h"
 
 class GrVkGpu;
 
diff --git a/src/gpu/vk/GrVkDescriptorSet.cpp b/src/gpu/vk/GrVkDescriptorSet.cpp
index 4a662aa..9de9a67 100644
--- a/src/gpu/vk/GrVkDescriptorSet.cpp
+++ b/src/gpu/vk/GrVkDescriptorSet.cpp
@@ -5,11 +5,11 @@
 * found in the LICENSE file.
 */
 
-#include "GrVkDescriptorSet.h"
+#include "src/gpu/vk/GrVkDescriptorSet.h"
 
-#include "GrVkDescriptorPool.h"
-#include "GrVkGpu.h"
-#include "GrVkResourceProvider.h"
+#include "src/gpu/vk/GrVkDescriptorPool.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkResourceProvider.h"
 
 GrVkDescriptorSet::GrVkDescriptorSet(VkDescriptorSet descSet,
                                      GrVkDescriptorPool* pool,
diff --git a/src/gpu/vk/GrVkDescriptorSet.h b/src/gpu/vk/GrVkDescriptorSet.h
index 2931d85..d909511 100644
--- a/src/gpu/vk/GrVkDescriptorSet.h
+++ b/src/gpu/vk/GrVkDescriptorSet.h
@@ -8,9 +8,9 @@
 #ifndef GrVkDescriptorSet_DEFINED
 #define GrVkDescriptorSet_DEFINED
 
-#include "GrVkDescriptorSetManager.h"
-#include "GrVkResource.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/vk/GrVkDescriptorSetManager.h"
+#include "src/gpu/vk/GrVkResource.h"
 
 class GrVkDescriptorPool;
 class GrVkGpu;
diff --git a/src/gpu/vk/GrVkDescriptorSetManager.cpp b/src/gpu/vk/GrVkDescriptorSetManager.cpp
index 120f3a2..e926b10 100644
--- a/src/gpu/vk/GrVkDescriptorSetManager.cpp
+++ b/src/gpu/vk/GrVkDescriptorSetManager.cpp
@@ -5,12 +5,12 @@
 * found in the LICENSE file.
 */
 
-#include "GrVkDescriptorSetManager.h"
+#include "src/gpu/vk/GrVkDescriptorSetManager.h"
 
-#include "GrVkDescriptorPool.h"
-#include "GrVkDescriptorSet.h"
-#include "GrVkGpu.h"
-#include "GrVkUniformHandler.h"
+#include "src/gpu/vk/GrVkDescriptorPool.h"
+#include "src/gpu/vk/GrVkDescriptorSet.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkUniformHandler.h"
 
 #if defined(SK_ENABLE_SCOPED_LSAN_SUPPRESSIONS)
 #include <sanitizer/lsan_interface.h>
diff --git a/src/gpu/vk/GrVkDescriptorSetManager.h b/src/gpu/vk/GrVkDescriptorSetManager.h
index b69fe36..0fff6da 100644
--- a/src/gpu/vk/GrVkDescriptorSetManager.h
+++ b/src/gpu/vk/GrVkDescriptorSetManager.h
@@ -8,12 +8,12 @@
 #ifndef GrVkDescriptorSetManager_DEFINED
 #define GrVkDescriptorSetManager_DEFINED
 
-#include "GrResourceHandle.h"
-#include "GrVkDescriptorPool.h"
-#include "GrVkSampler.h"
-#include "SkRefCnt.h"
-#include "SkTArray.h"
-#include "vk/GrVkTypes.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "include/private/SkTArray.h"
+#include "src/gpu/GrResourceHandle.h"
+#include "src/gpu/vk/GrVkDescriptorPool.h"
+#include "src/gpu/vk/GrVkSampler.h"
 
 class GrVkDescriptorSet;
 class GrVkGpu;
diff --git a/src/gpu/vk/GrVkExtensions.cpp b/src/gpu/vk/GrVkExtensions.cpp
index 4d7fc11..e1151e1 100644
--- a/src/gpu/vk/GrVkExtensions.cpp
+++ b/src/gpu/vk/GrVkExtensions.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "vk/GrVkExtensions.h"
+#include "include/gpu/vk/GrVkExtensions.h"
 
 // Can remove this once we get rid of the extension flags.
-#include "vk/GrVkBackendContext.h"
+#include "include/gpu/vk/GrVkBackendContext.h"
 
-#include "SkTSearch.h"
-#include "SkTSort.h"
+#include "include/private/SkTSearch.h"
+#include "src/core/SkTSort.h"
 
 // finds the index of ext in infos or a negative result if ext is not found.
 static int find_info(const SkTArray<GrVkExtensions::Info>& infos, const char ext[]) {
diff --git a/src/gpu/vk/GrVkFramebuffer.cpp b/src/gpu/vk/GrVkFramebuffer.cpp
index 11d10f95..a06d792 100644
--- a/src/gpu/vk/GrVkFramebuffer.cpp
+++ b/src/gpu/vk/GrVkFramebuffer.cpp
@@ -5,11 +5,11 @@
 * found in the LICENSE file.
 */
 
-#include "GrVkFramebuffer.h"
+#include "src/gpu/vk/GrVkFramebuffer.h"
 
-#include "GrVkGpu.h"
-#include "GrVkImageView.h"
-#include "GrVkRenderPass.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkImageView.h"
+#include "src/gpu/vk/GrVkRenderPass.h"
 
 GrVkFramebuffer* GrVkFramebuffer::Create(GrVkGpu* gpu,
                                          int width, int height,
diff --git a/src/gpu/vk/GrVkFramebuffer.h b/src/gpu/vk/GrVkFramebuffer.h
index 0cb0e63..1a97d57 100644
--- a/src/gpu/vk/GrVkFramebuffer.h
+++ b/src/gpu/vk/GrVkFramebuffer.h
@@ -8,9 +8,9 @@
 #ifndef GrVkFramebuffer_DEFINED
 #define GrVkFramebuffer_DEFINED
 
-#include "GrTypes.h"
-#include "GrVkResource.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/GrTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/vk/GrVkResource.h"
 
 class GrVkGpu;
 class GrVkImageView;
diff --git a/src/gpu/vk/GrVkGpu.cpp b/src/gpu/vk/GrVkGpu.cpp
index 3742fa4..38fd97f 100644
--- a/src/gpu/vk/GrVkGpu.cpp
+++ b/src/gpu/vk/GrVkGpu.cpp
@@ -5,42 +5,42 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkGpu.h"
+#include "src/gpu/vk/GrVkGpu.h"
 
-#include "GrContextPriv.h"
-#include "GrBackendSemaphore.h"
-#include "GrBackendSurface.h"
-#include "GrContextOptions.h"
-#include "GrGeometryProcessor.h"
-#include "GrGpuResourceCacheAccess.h"
-#include "GrMesh.h"
-#include "GrPipeline.h"
-#include "GrRenderTargetPriv.h"
-#include "GrTexturePriv.h"
-#include "GrVkAMDMemoryAllocator.h"
-#include "GrVkCommandBuffer.h"
-#include "GrVkCommandPool.h"
-#include "GrVkGpuCommandBuffer.h"
-#include "GrVkImage.h"
-#include "GrVkIndexBuffer.h"
-#include "GrVkInterface.h"
-#include "GrVkMemory.h"
-#include "GrVkPipeline.h"
-#include "GrVkPipelineState.h"
-#include "GrVkRenderPass.h"
-#include "GrVkResourceProvider.h"
-#include "GrVkSemaphore.h"
-#include "GrVkTexture.h"
-#include "GrVkTextureRenderTarget.h"
-#include "GrVkTransferBuffer.h"
-#include "GrVkVertexBuffer.h"
-#include "SkConvertPixels.h"
-#include "SkMipMap.h"
-#include "SkSLCompiler.h"
-#include "SkTo.h"
+#include "include/gpu/GrBackendSemaphore.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContextOptions.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkConvertPixels.h"
+#include "src/core/SkMipMap.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrGpuResourceCacheAccess.h"
+#include "src/gpu/GrMesh.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/vk/GrVkAMDMemoryAllocator.h"
+#include "src/gpu/vk/GrVkCommandBuffer.h"
+#include "src/gpu/vk/GrVkCommandPool.h"
+#include "src/gpu/vk/GrVkGpuCommandBuffer.h"
+#include "src/gpu/vk/GrVkImage.h"
+#include "src/gpu/vk/GrVkIndexBuffer.h"
+#include "src/gpu/vk/GrVkInterface.h"
+#include "src/gpu/vk/GrVkMemory.h"
+#include "src/gpu/vk/GrVkPipeline.h"
+#include "src/gpu/vk/GrVkPipelineState.h"
+#include "src/gpu/vk/GrVkRenderPass.h"
+#include "src/gpu/vk/GrVkResourceProvider.h"
+#include "src/gpu/vk/GrVkSemaphore.h"
+#include "src/gpu/vk/GrVkTexture.h"
+#include "src/gpu/vk/GrVkTextureRenderTarget.h"
+#include "src/gpu/vk/GrVkTransferBuffer.h"
+#include "src/gpu/vk/GrVkVertexBuffer.h"
+#include "src/sksl/SkSLCompiler.h"
 
-#include "vk/GrVkExtensions.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkExtensions.h"
+#include "include/gpu/vk/GrVkTypes.h"
 
 #include <utility>
 
@@ -49,7 +49,7 @@
 #endif // !defined(SK_BUILD_FOR_WIN)
 
 #if defined(SK_BUILD_FOR_WIN) && defined(SK_DEBUG)
-#include "SkLeanWindows.h"
+#include "include/private/SkLeanWindows.h"
 #endif
 
 #define VK_CALL(X) GR_VK_CALL(this->vkInterface(), X)
diff --git a/src/gpu/vk/GrVkGpu.h b/src/gpu/vk/GrVkGpu.h
index 7ec24ab..233fc61 100644
--- a/src/gpu/vk/GrVkGpu.h
+++ b/src/gpu/vk/GrVkGpu.h
@@ -8,17 +8,17 @@
 #ifndef GrVkGpu_DEFINED
 #define GrVkGpu_DEFINED
 
-#include "GrGpu.h"
-#include "GrVkCaps.h"
-#include "GrVkCopyManager.h"
-#include "GrVkIndexBuffer.h"
-#include "GrVkMemory.h"
-#include "GrVkResourceProvider.h"
-#include "GrVkSemaphore.h"
-#include "GrVkVertexBuffer.h"
-#include "GrVkUtil.h"
-#include "vk/GrVkBackendContext.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkBackendContext.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/vk/GrVkCaps.h"
+#include "src/gpu/vk/GrVkCopyManager.h"
+#include "src/gpu/vk/GrVkIndexBuffer.h"
+#include "src/gpu/vk/GrVkMemory.h"
+#include "src/gpu/vk/GrVkResourceProvider.h"
+#include "src/gpu/vk/GrVkSemaphore.h"
+#include "src/gpu/vk/GrVkUtil.h"
+#include "src/gpu/vk/GrVkVertexBuffer.h"
 
 class GrPipeline;
 
diff --git a/src/gpu/vk/GrVkGpuCommandBuffer.cpp b/src/gpu/vk/GrVkGpuCommandBuffer.cpp
index d78676d..ab2ad06 100644
--- a/src/gpu/vk/GrVkGpuCommandBuffer.cpp
+++ b/src/gpu/vk/GrVkGpuCommandBuffer.cpp
@@ -5,27 +5,27 @@
 * found in the LICENSE file.
 */
 
-#include "GrVkGpuCommandBuffer.h"
+#include "src/gpu/vk/GrVkGpuCommandBuffer.h"
 
-#include "GrBackendDrawableInfo.h"
-#include "GrContextPriv.h"
-#include "GrFixedClip.h"
-#include "GrMesh.h"
-#include "GrOpFlushState.h"
-#include "GrPipeline.h"
-#include "GrRenderTargetPriv.h"
-#include "GrTexturePriv.h"
-#include "GrVkCommandBuffer.h"
-#include "GrVkCommandPool.h"
-#include "GrVkGpu.h"
-#include "GrVkPipeline.h"
-#include "GrVkRenderPass.h"
-#include "GrVkRenderTarget.h"
-#include "GrVkResourceProvider.h"
-#include "GrVkSemaphore.h"
-#include "GrVkTexture.h"
-#include "SkDrawable.h"
-#include "SkRect.h"
+#include "include/core/SkDrawable.h"
+#include "include/core/SkRect.h"
+#include "include/gpu/GrBackendDrawableInfo.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrFixedClip.h"
+#include "src/gpu/GrMesh.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/vk/GrVkCommandBuffer.h"
+#include "src/gpu/vk/GrVkCommandPool.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkPipeline.h"
+#include "src/gpu/vk/GrVkRenderPass.h"
+#include "src/gpu/vk/GrVkRenderTarget.h"
+#include "src/gpu/vk/GrVkResourceProvider.h"
+#include "src/gpu/vk/GrVkSemaphore.h"
+#include "src/gpu/vk/GrVkTexture.h"
 
 GrVkPrimaryCommandBufferTask::~GrVkPrimaryCommandBufferTask() = default;
 GrVkPrimaryCommandBufferTask::GrVkPrimaryCommandBufferTask() = default;
diff --git a/src/gpu/vk/GrVkGpuCommandBuffer.h b/src/gpu/vk/GrVkGpuCommandBuffer.h
index 8998d19..8ab9d7b 100644
--- a/src/gpu/vk/GrVkGpuCommandBuffer.h
+++ b/src/gpu/vk/GrVkGpuCommandBuffer.h
@@ -8,14 +8,14 @@
 #ifndef GrVkGpuCommandBuffer_DEFINED
 #define GrVkGpuCommandBuffer_DEFINED
 
-#include "GrGpuCommandBuffer.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
 
-#include "GrColor.h"
-#include "GrMesh.h"
-#include "GrTRecorder.h"
-#include "GrTypes.h"
-#include "GrVkPipelineState.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/GrTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "include/private/GrColor.h"
+#include "src/gpu/GrMesh.h"
+#include "src/gpu/GrTRecorder.h"
+#include "src/gpu/vk/GrVkPipelineState.h"
 
 class GrVkGpu;
 class GrVkImage;
diff --git a/src/gpu/vk/GrVkImage.cpp b/src/gpu/vk/GrVkImage.cpp
index 1bbb08c..6786b32 100644
--- a/src/gpu/vk/GrVkImage.cpp
+++ b/src/gpu/vk/GrVkImage.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkImage.h"
-#include "GrGpuResourcePriv.h"
-#include "GrVkGpu.h"
-#include "GrVkMemory.h"
-#include "GrVkTexture.h"
-#include "GrVkUtil.h"
+#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkImage.h"
+#include "src/gpu/vk/GrVkMemory.h"
+#include "src/gpu/vk/GrVkTexture.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
 #define VK_CALL(GPU, X) GR_VK_CALL(GPU->vkInterface(), X)
 
diff --git a/src/gpu/vk/GrVkImage.h b/src/gpu/vk/GrVkImage.h
index ec3c15d..35fe357 100644
--- a/src/gpu/vk/GrVkImage.h
+++ b/src/gpu/vk/GrVkImage.h
@@ -8,13 +8,13 @@
 #ifndef GrVkImage_DEFINED
 #define GrVkImage_DEFINED
 
-#include "GrBackendSurface.h"
-#include "GrTexture.h"
-#include "GrTypesPriv.h"
-#include "GrVkImageLayout.h"
-#include "GrVkResource.h"
-#include "SkTypes.h"
-#include "vk/GrVkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrTexture.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/vk/GrVkImageLayout.h"
+#include "src/gpu/vk/GrVkResource.h"
 
 class GrVkGpu;
 class GrVkTexture;
diff --git a/src/gpu/vk/GrVkImageLayout.h b/src/gpu/vk/GrVkImageLayout.h
index 8f21fa8..154c21f 100644
--- a/src/gpu/vk/GrVkImageLayout.h
+++ b/src/gpu/vk/GrVkImageLayout.h
@@ -8,8 +8,8 @@
 #ifndef GrVkImageLayout_DEFINED
 #define GrVkImageLayout_DEFINED
 
-#include "SkRefCnt.h"
-#include "vk/GrVkTypes.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/vk/GrVkTypes.h"
 
 class GrVkImageLayout : public SkRefCnt {
 public:
diff --git a/src/gpu/vk/GrVkImageView.cpp b/src/gpu/vk/GrVkImageView.cpp
index 82c9457..73b54e3 100644
--- a/src/gpu/vk/GrVkImageView.cpp
+++ b/src/gpu/vk/GrVkImageView.cpp
@@ -5,10 +5,10 @@
 * found in the LICENSE file.
 */
 
-#include "GrVkImageView.h"
-#include "GrVkGpu.h"
-#include "GrVkSamplerYcbcrConversion.h"
-#include "GrVkUtil.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkImageView.h"
+#include "src/gpu/vk/GrVkSamplerYcbcrConversion.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
 const GrVkImageView* GrVkImageView::Create(GrVkGpu* gpu, VkImage image, VkFormat format,
                                            Type viewType, uint32_t miplevels,
diff --git a/src/gpu/vk/GrVkImageView.h b/src/gpu/vk/GrVkImageView.h
index a9a8b43..12f3b21 100644
--- a/src/gpu/vk/GrVkImageView.h
+++ b/src/gpu/vk/GrVkImageView.h
@@ -8,9 +8,9 @@
 #ifndef GrVkImageView_DEFINED
 #define GrVkImageView_DEFINED
 
-#include "GrTypes.h"
-#include "GrVkResource.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/GrTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/vk/GrVkResource.h"
 
 class GrVkSamplerYcbcrConversion;
 struct GrVkYcbcrConversionInfo;
diff --git a/src/gpu/vk/GrVkIndexBuffer.cpp b/src/gpu/vk/GrVkIndexBuffer.cpp
index 342262d..a440d4a 100644
--- a/src/gpu/vk/GrVkIndexBuffer.cpp
+++ b/src/gpu/vk/GrVkIndexBuffer.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkIndexBuffer.h"
-#include "GrVkGpu.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkIndexBuffer.h"
 
 GrVkIndexBuffer::GrVkIndexBuffer(GrVkGpu* gpu, const GrVkBuffer::Desc& desc,
                                  const GrVkBuffer::Resource* bufferResource)
diff --git a/src/gpu/vk/GrVkIndexBuffer.h b/src/gpu/vk/GrVkIndexBuffer.h
index c35ef12..bc29d2b 100644
--- a/src/gpu/vk/GrVkIndexBuffer.h
+++ b/src/gpu/vk/GrVkIndexBuffer.h
@@ -8,8 +8,8 @@
 #ifndef GrVkIndexBuffer_DEFINED
 #define GrVkIndexBuffer_DEFINED
 
-#include "GrGpuBuffer.h"
-#include "GrVkBuffer.h"
+#include "src/gpu/GrGpuBuffer.h"
+#include "src/gpu/vk/GrVkBuffer.h"
 
 class GrVkGpu;
 
diff --git a/src/gpu/vk/GrVkInterface.cpp b/src/gpu/vk/GrVkInterface.cpp
index 96cb457..acb7bcb 100644
--- a/src/gpu/vk/GrVkInterface.cpp
+++ b/src/gpu/vk/GrVkInterface.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkInterface.h"
-#include "vk/GrVkBackendContext.h"
-#include "vk/GrVkExtensions.h"
-#include "vk/GrVkUtil.h"
+#include "include/gpu/vk/GrVkBackendContext.h"
+#include "include/gpu/vk/GrVkExtensions.h"
+#include "src/gpu/vk/GrVkInterface.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
 #define ACQUIRE_PROC(name, instance, device) \
     fFunctions.f##name = reinterpret_cast<PFN_vk##name>(getProc("vk" #name, instance, device))
diff --git a/src/gpu/vk/GrVkInterface.h b/src/gpu/vk/GrVkInterface.h
index 5168ab2..53360ba 100644
--- a/src/gpu/vk/GrVkInterface.h
+++ b/src/gpu/vk/GrVkInterface.h
@@ -8,10 +8,10 @@
 #ifndef GrVkInterface_DEFINED
 #define GrVkInterface_DEFINED
 
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
 
-#include "vk/GrVkBackendContext.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkBackendContext.h"
+#include "include/gpu/vk/GrVkTypes.h"
 
 class GrVkExtensions;
 
diff --git a/src/gpu/vk/GrVkMemory.cpp b/src/gpu/vk/GrVkMemory.cpp
index ea6e97c..9e49721 100644
--- a/src/gpu/vk/GrVkMemory.cpp
+++ b/src/gpu/vk/GrVkMemory.cpp
@@ -5,11 +5,11 @@
 * found in the LICENSE file.
 */
 
-#include "GrVkMemory.h"
+#include "src/gpu/vk/GrVkMemory.h"
 
-#include "GrVkGpu.h"
-#include "GrVkUtil.h"
-#include "vk/GrVkMemoryAllocator.h"
+#include "include/gpu/vk/GrVkMemoryAllocator.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
 using AllocationPropertyFlags = GrVkMemoryAllocator::AllocationPropertyFlags;
 using BufferUsage = GrVkMemoryAllocator::BufferUsage;
diff --git a/src/gpu/vk/GrVkMemory.h b/src/gpu/vk/GrVkMemory.h
index a1cdf1c..7244da0 100644
--- a/src/gpu/vk/GrVkMemory.h
+++ b/src/gpu/vk/GrVkMemory.h
@@ -8,9 +8,9 @@
 #ifndef GrVkMemory_DEFINED
 #define GrVkMemory_DEFINED
 
-#include "GrVkBuffer.h"
-#include "SkTArray.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "include/private/SkTArray.h"
+#include "src/gpu/vk/GrVkBuffer.h"
 
 class GrVkGpu;
 
diff --git a/src/gpu/vk/GrVkPipeline.cpp b/src/gpu/vk/GrVkPipeline.cpp
index 05a23e0..f7bdf6d 100644
--- a/src/gpu/vk/GrVkPipeline.cpp
+++ b/src/gpu/vk/GrVkPipeline.cpp
@@ -5,14 +5,14 @@
 * found in the LICENSE file.
 */
 
-#include "GrVkPipeline.h"
-#include "GrGeometryProcessor.h"
-#include "GrPipeline.h"
-#include "GrStencilSettings.h"
-#include "GrVkCommandBuffer.h"
-#include "GrVkGpu.h"
-#include "GrVkRenderTarget.h"
-#include "GrVkUtil.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/GrStencilSettings.h"
+#include "src/gpu/vk/GrVkCommandBuffer.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkPipeline.h"
+#include "src/gpu/vk/GrVkRenderTarget.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
 #if defined(SK_ENABLE_SCOPED_LSAN_SUPPRESSIONS)
 #include <sanitizer/lsan_interface.h>
diff --git a/src/gpu/vk/GrVkPipeline.h b/src/gpu/vk/GrVkPipeline.h
index 25d3dce..04c3472 100644
--- a/src/gpu/vk/GrVkPipeline.h
+++ b/src/gpu/vk/GrVkPipeline.h
@@ -8,9 +8,9 @@
 #ifndef GrVkPipeline_DEFINED
 #define GrVkPipeline_DEFINED
 
-#include "GrTypesPriv.h"
-#include "GrVkResource.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/vk/GrVkResource.h"
 
 class GrPipeline;
 class GrPrimitiveProcessor;
diff --git a/src/gpu/vk/GrVkPipelineLayout.cpp b/src/gpu/vk/GrVkPipelineLayout.cpp
index 220e28b..7c51c5f 100644
--- a/src/gpu/vk/GrVkPipelineLayout.cpp
+++ b/src/gpu/vk/GrVkPipelineLayout.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkPipelineLayout.h"
-#include "GrVkGpu.h"
-#include "GrVkUtil.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkPipelineLayout.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
 void GrVkPipelineLayout::freeGPUData(GrVkGpu* gpu) const {
     GR_VK_CALL(gpu->vkInterface(), DestroyPipelineLayout(gpu->device(), fPipelineLayout, nullptr));
diff --git a/src/gpu/vk/GrVkPipelineLayout.h b/src/gpu/vk/GrVkPipelineLayout.h
index f9722d2..69a9979 100644
--- a/src/gpu/vk/GrVkPipelineLayout.h
+++ b/src/gpu/vk/GrVkPipelineLayout.h
@@ -8,9 +8,9 @@
 #ifndef GrVkPipelineLayout_DEFINED
 #define GrVkPipelineLayout_DEFINED
 
-#include "GrTypes.h"
-#include "GrVkResource.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/GrTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/vk/GrVkResource.h"
 
 class GrVkPipelineLayout : public GrVkResource {
 public:
diff --git a/src/gpu/vk/GrVkPipelineState.cpp b/src/gpu/vk/GrVkPipelineState.cpp
index e705e52..ea14926 100644
--- a/src/gpu/vk/GrVkPipelineState.cpp
+++ b/src/gpu/vk/GrVkPipelineState.cpp
@@ -5,28 +5,28 @@
 * found in the LICENSE file.
 */
 
-#include "GrVkPipelineState.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrPipeline.h"
-#include "GrRenderTarget.h"
-#include "GrTexturePriv.h"
-#include "GrVkBufferView.h"
-#include "GrVkCommandBuffer.h"
-#include "GrVkDescriptorPool.h"
-#include "GrVkDescriptorSet.h"
-#include "GrVkGpu.h"
-#include "GrVkImageView.h"
-#include "GrVkMemory.h"
-#include "GrVkPipeline.h"
-#include "GrVkPipelineLayout.h"
-#include "GrVkSampler.h"
-#include "GrVkTexture.h"
-#include "GrVkUniformBuffer.h"
-#include "SkMipMap.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLXferProcessor.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "src/core/SkMipMap.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLXferProcessor.h"
+#include "src/gpu/vk/GrVkBufferView.h"
+#include "src/gpu/vk/GrVkCommandBuffer.h"
+#include "src/gpu/vk/GrVkDescriptorPool.h"
+#include "src/gpu/vk/GrVkDescriptorSet.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkImageView.h"
+#include "src/gpu/vk/GrVkMemory.h"
+#include "src/gpu/vk/GrVkPipeline.h"
+#include "src/gpu/vk/GrVkPipelineLayout.h"
+#include "src/gpu/vk/GrVkPipelineState.h"
+#include "src/gpu/vk/GrVkSampler.h"
+#include "src/gpu/vk/GrVkTexture.h"
+#include "src/gpu/vk/GrVkUniformBuffer.h"
 
 GrVkPipelineState::GrVkPipelineState(
         GrVkGpu* gpu,
diff --git a/src/gpu/vk/GrVkPipelineState.h b/src/gpu/vk/GrVkPipelineState.h
index 0d9f871..5278ea3 100644
--- a/src/gpu/vk/GrVkPipelineState.h
+++ b/src/gpu/vk/GrVkPipelineState.h
@@ -9,10 +9,10 @@
 #ifndef GrVkPipelineState_DEFINED
 #define GrVkPipelineState_DEFINED
 
-#include "GrVkDescriptorSetManager.h"
-#include "GrVkPipelineStateDataManager.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/vk/GrVkDescriptorSetManager.h"
+#include "src/gpu/vk/GrVkPipelineStateDataManager.h"
 
 class GrPipeline;
 class GrStencilSettings;
diff --git a/src/gpu/vk/GrVkPipelineStateBuilder.cpp b/src/gpu/vk/GrVkPipelineStateBuilder.cpp
index 164091a..7b2a2ef 100644
--- a/src/gpu/vk/GrVkPipelineStateBuilder.cpp
+++ b/src/gpu/vk/GrVkPipelineStateBuilder.cpp
@@ -5,16 +5,16 @@
 * found in the LICENSE file.
 */
 
-#include "vk/GrVkPipelineStateBuilder.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrPersistentCacheUtils.h"
-#include "GrShaderCaps.h"
-#include "GrStencilSettings.h"
-#include "GrVkRenderTarget.h"
-#include "vk/GrVkDescriptorSetManager.h"
-#include "vk/GrVkGpu.h"
-#include "vk/GrVkRenderPass.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrPersistentCacheUtils.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrStencilSettings.h"
+#include "src/gpu/vk/GrVkDescriptorSetManager.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkPipelineStateBuilder.h"
+#include "src/gpu/vk/GrVkRenderPass.h"
+#include "src/gpu/vk/GrVkRenderTarget.h"
 
 typedef size_t shader_size;
 
diff --git a/src/gpu/vk/GrVkPipelineStateBuilder.h b/src/gpu/vk/GrVkPipelineStateBuilder.h
index 2bd61db..9dbb969 100644
--- a/src/gpu/vk/GrVkPipelineStateBuilder.h
+++ b/src/gpu/vk/GrVkPipelineStateBuilder.h
@@ -8,14 +8,14 @@
 #ifndef GrVkPipelineStateBuilder_DEFINED
 #define GrVkPipelineStateBuilder_DEFINED
 
-#include "GrPipeline.h"
-#include "GrProgramDesc.h"
-#include "GrVkPipelineState.h"
-#include "GrVkUniformHandler.h"
-#include "GrVkVaryingHandler.h"
-#include "SkSLCompiler.h"
-#include "glsl/GrGLSLProgramBuilder.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/GrProgramDesc.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/vk/GrVkPipelineState.h"
+#include "src/gpu/vk/GrVkUniformHandler.h"
+#include "src/gpu/vk/GrVkVaryingHandler.h"
+#include "src/sksl/SkSLCompiler.h"
 
 class GrVkGpu;
 class GrVkRenderPass;
diff --git a/src/gpu/vk/GrVkPipelineStateCache.cpp b/src/gpu/vk/GrVkPipelineStateCache.cpp
index fff410e..a167adf 100644
--- a/src/gpu/vk/GrVkPipelineStateCache.cpp
+++ b/src/gpu/vk/GrVkPipelineStateCache.cpp
@@ -6,16 +6,16 @@
  */
 
 
-#include "GrProcessor.h"
-#include "GrRenderTargetPriv.h"  // TODO: remove once refPipelineState gets passed stencil settings.
-#include "GrStencilSettings.h"
-#include "GrVkGpu.h"
-#include "GrVkPipelineState.h"
-#include "GrVkPipelineStateBuilder.h"
-#include "GrVkResourceProvider.h"
-#include "SkOpts.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLProgramDataManager.h"
+#include "src/core/SkOpts.h"
+#include "src/gpu/GrProcessor.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/GrStencilSettings.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkPipelineState.h"
+#include "src/gpu/vk/GrVkPipelineStateBuilder.h"
+#include "src/gpu/vk/GrVkResourceProvider.h"
 
 #ifdef GR_PIPELINE_STATE_CACHE_STATS
 // Display pipeline state cache usage
diff --git a/src/gpu/vk/GrVkPipelineStateDataManager.cpp b/src/gpu/vk/GrVkPipelineStateDataManager.cpp
index 6a47cb5..5e48441 100644
--- a/src/gpu/vk/GrVkPipelineStateDataManager.cpp
+++ b/src/gpu/vk/GrVkPipelineStateDataManager.cpp
@@ -5,10 +5,10 @@
 * found in the LICENSE file.
 */
 
-#include "GrVkPipelineStateDataManager.h"
+#include "src/gpu/vk/GrVkPipelineStateDataManager.h"
 
-#include "GrVkGpu.h"
-#include "GrVkUniformBuffer.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkUniformBuffer.h"
 
 GrVkPipelineStateDataManager::GrVkPipelineStateDataManager(const UniformInfoArray& uniforms,
                                                            uint32_t geometryUniformSize,
diff --git a/src/gpu/vk/GrVkPipelineStateDataManager.h b/src/gpu/vk/GrVkPipelineStateDataManager.h
index f112d9e..6a3b07f 100644
--- a/src/gpu/vk/GrVkPipelineStateDataManager.h
+++ b/src/gpu/vk/GrVkPipelineStateDataManager.h
@@ -8,11 +8,11 @@
 #ifndef GrVkPipelineStateDataManager_DEFINED
 #define GrVkPipelineStateDataManager_DEFINED
 
-#include "glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
 
-#include "SkAutoMalloc.h"
-#include "vk/GrVkTypes.h"
-#include "vk/GrVkUniformHandler.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/gpu/vk/GrVkUniformHandler.h"
 
 class GrVkGpu;
 class GrVkUniformBuffer;
diff --git a/src/gpu/vk/GrVkRenderPass.cpp b/src/gpu/vk/GrVkRenderPass.cpp
index 1a288a3..d73ae61 100644
--- a/src/gpu/vk/GrVkRenderPass.cpp
+++ b/src/gpu/vk/GrVkRenderPass.cpp
@@ -5,13 +5,13 @@
 * found in the LICENSE file.
 */
 
-#include "GrVkRenderPass.h"
+#include "src/gpu/vk/GrVkRenderPass.h"
 
-#include "GrProcessor.h"
-#include "GrVkFramebuffer.h"
-#include "GrVkGpu.h"
-#include "GrVkRenderTarget.h"
-#include "GrVkUtil.h"
+#include "src/gpu/GrProcessor.h"
+#include "src/gpu/vk/GrVkFramebuffer.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkRenderTarget.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
 typedef GrVkRenderPass::AttachmentsDescriptor::AttachmentDesc AttachmentDesc;
 
diff --git a/src/gpu/vk/GrVkRenderPass.h b/src/gpu/vk/GrVkRenderPass.h
index b6e4497..725b196 100644
--- a/src/gpu/vk/GrVkRenderPass.h
+++ b/src/gpu/vk/GrVkRenderPass.h
@@ -8,9 +8,9 @@
 #ifndef GrVkRenderPass_DEFINED
 #define GrVkRenderPass_DEFINED
 
-#include "GrTypes.h"
-#include "GrVkResource.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/GrTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/vk/GrVkResource.h"
 
 class GrProcessorKeyBuilder;
 class GrVkGpu;
diff --git a/src/gpu/vk/GrVkRenderTarget.cpp b/src/gpu/vk/GrVkRenderTarget.cpp
index ab61150..4f6ffe6 100644
--- a/src/gpu/vk/GrVkRenderTarget.cpp
+++ b/src/gpu/vk/GrVkRenderTarget.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkRenderTarget.h"
+#include "src/gpu/vk/GrVkRenderTarget.h"
 
-#include "GrBackendSurface.h"
-#include "GrRenderTargetPriv.h"
-#include "GrVkCommandBuffer.h"
-#include "GrVkFramebuffer.h"
-#include "GrVkGpu.h"
-#include "GrVkImageView.h"
-#include "GrVkResourceProvider.h"
-#include "GrVkUtil.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/vk/GrVkCommandBuffer.h"
+#include "src/gpu/vk/GrVkFramebuffer.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkImageView.h"
+#include "src/gpu/vk/GrVkResourceProvider.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
 
 #define VK_CALL(GPU, X) GR_VK_CALL(GPU->vkInterface(), X)
 
diff --git a/src/gpu/vk/GrVkRenderTarget.h b/src/gpu/vk/GrVkRenderTarget.h
index bcfa823..0c2b897 100644
--- a/src/gpu/vk/GrVkRenderTarget.h
+++ b/src/gpu/vk/GrVkRenderTarget.h
@@ -9,12 +9,12 @@
 #ifndef GrVkRenderTarget_DEFINED
 #define GrVkRenderTarget_DEFINED
 
-#include "GrVkImage.h"
-#include "GrRenderTarget.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "src/gpu/vk/GrVkImage.h"
 
-#include "GrVkRenderPass.h"
-#include "GrVkResourceProvider.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/vk/GrVkRenderPass.h"
+#include "src/gpu/vk/GrVkResourceProvider.h"
 
 class GrVkCommandBuffer;
 class GrVkFramebuffer;
diff --git a/src/gpu/vk/GrVkResource.h b/src/gpu/vk/GrVkResource.h
index 306269b..7b9949b 100644
--- a/src/gpu/vk/GrVkResource.h
+++ b/src/gpu/vk/GrVkResource.h
@@ -9,8 +9,8 @@
 #define GrVkResource_DEFINED
 
 
-#include "SkRandom.h"
-#include "SkTHash.h"
+#include "include/private/SkTHash.h"
+#include "include/utils/SkRandom.h"
 #include <atomic>
 
 class GrVkGpu;
diff --git a/src/gpu/vk/GrVkResourceProvider.cpp b/src/gpu/vk/GrVkResourceProvider.cpp
index bb1fe91..87f653e 100644
--- a/src/gpu/vk/GrVkResourceProvider.cpp
+++ b/src/gpu/vk/GrVkResourceProvider.cpp
@@ -5,19 +5,19 @@
 * found in the LICENSE file.
 */
 
-#include "GrVkResourceProvider.h"
+#include "src/gpu/vk/GrVkResourceProvider.h"
 
-#include "GrContextPriv.h"
-#include "GrSamplerState.h"
-#include "GrVkCommandBuffer.h"
-#include "GrVkCommandPool.h"
-#include "GrVkCopyPipeline.h"
-#include "GrVkGpu.h"
-#include "GrVkPipeline.h"
-#include "GrVkRenderTarget.h"
-#include "GrVkUniformBuffer.h"
-#include "GrVkUtil.h"
-#include "SkTaskGroup.h"
+#include "include/gpu/GrSamplerState.h"
+#include "src/core/SkTaskGroup.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/vk/GrVkCommandBuffer.h"
+#include "src/gpu/vk/GrVkCommandPool.h"
+#include "src/gpu/vk/GrVkCopyPipeline.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkPipeline.h"
+#include "src/gpu/vk/GrVkRenderTarget.h"
+#include "src/gpu/vk/GrVkUniformBuffer.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
 #ifdef SK_TRACE_VK_RESOURCES
 std::atomic<uint32_t> GrVkResource::fKeyCounter{0};
diff --git a/src/gpu/vk/GrVkResourceProvider.h b/src/gpu/vk/GrVkResourceProvider.h
index 29170c1..f9ff2f4 100644
--- a/src/gpu/vk/GrVkResourceProvider.h
+++ b/src/gpu/vk/GrVkResourceProvider.h
@@ -8,20 +8,20 @@
 #ifndef GrVkResourceProvider_DEFINED
 #define GrVkResourceProvider_DEFINED
 
-#include "GrResourceHandle.h"
-#include "GrVkDescriptorPool.h"
-#include "GrVkDescriptorSetManager.h"
-#include "GrVkPipelineStateBuilder.h"
-#include "GrVkRenderPass.h"
-#include "GrVkResource.h"
-#include "GrVkSampler.h"
-#include "GrVkSamplerYcbcrConversion.h"
-#include "GrVkUtil.h"
-#include "SkLRUCache.h"
-#include "SkTArray.h"
-#include "SkTDynamicHash.h"
-#include "SkTInternalLList.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTInternalLList.h"
+#include "src/core/SkLRUCache.h"
+#include "src/core/SkTDynamicHash.h"
+#include "src/gpu/GrResourceHandle.h"
+#include "src/gpu/vk/GrVkDescriptorPool.h"
+#include "src/gpu/vk/GrVkDescriptorSetManager.h"
+#include "src/gpu/vk/GrVkPipelineStateBuilder.h"
+#include "src/gpu/vk/GrVkRenderPass.h"
+#include "src/gpu/vk/GrVkResource.h"
+#include "src/gpu/vk/GrVkSampler.h"
+#include "src/gpu/vk/GrVkSamplerYcbcrConversion.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
 #include <mutex>
 #include <thread>
diff --git a/src/gpu/vk/GrVkSampler.cpp b/src/gpu/vk/GrVkSampler.cpp
index 57bf2d7..4f702c9 100644
--- a/src/gpu/vk/GrVkSampler.cpp
+++ b/src/gpu/vk/GrVkSampler.cpp
@@ -5,10 +5,10 @@
 * found in the LICENSE file.
 */
 
-#include "GrVkSampler.h"
+#include "src/gpu/vk/GrVkSampler.h"
 
-#include "GrVkGpu.h"
-#include "GrVkSamplerYcbcrConversion.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkSamplerYcbcrConversion.h"
 
 static inline VkSamplerAddressMode wrap_mode_to_vk_sampler_address(
         GrSamplerState::WrapMode wrapMode) {
diff --git a/src/gpu/vk/GrVkSampler.h b/src/gpu/vk/GrVkSampler.h
index 9fca6c9..0421171 100644
--- a/src/gpu/vk/GrVkSampler.h
+++ b/src/gpu/vk/GrVkSampler.h
@@ -8,10 +8,10 @@
 #ifndef GrVkSampler_DEFINED
 #define GrVkSampler_DEFINED
 
-#include "GrVkResource.h"
-#include "GrVkSamplerYcbcrConversion.h"
-#include "SkOpts.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/core/SkOpts.h"
+#include "src/gpu/vk/GrVkResource.h"
+#include "src/gpu/vk/GrVkSamplerYcbcrConversion.h"
 #include <atomic>
 
 class GrSamplerState;
diff --git a/src/gpu/vk/GrVkSamplerYcbcrConversion.cpp b/src/gpu/vk/GrVkSamplerYcbcrConversion.cpp
index 1465d09..8757ac5 100644
--- a/src/gpu/vk/GrVkSamplerYcbcrConversion.cpp
+++ b/src/gpu/vk/GrVkSamplerYcbcrConversion.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkSamplerYcbcrConversion.h"
+#include "src/gpu/vk/GrVkSamplerYcbcrConversion.h"
 
-#include "GrVkGpu.h"
+#include "src/gpu/vk/GrVkGpu.h"
 
 GrVkSamplerYcbcrConversion* GrVkSamplerYcbcrConversion::Create(
         const GrVkGpu* gpu, const GrVkYcbcrConversionInfo& info) {
diff --git a/src/gpu/vk/GrVkSamplerYcbcrConversion.h b/src/gpu/vk/GrVkSamplerYcbcrConversion.h
index 4b7b63b..1b57772 100644
--- a/src/gpu/vk/GrVkSamplerYcbcrConversion.h
+++ b/src/gpu/vk/GrVkSamplerYcbcrConversion.h
@@ -8,10 +8,10 @@
 #ifndef GrVkSamplerYcbcrConverison_DEFINED
 #define GrVkSamplerYcbcrConverison_DEFINED
 
-#include "GrVkResource.h"
+#include "src/gpu/vk/GrVkResource.h"
 
-#include "SkOpts.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/core/SkOpts.h"
 
 class GrVkGpu;
 
diff --git a/src/gpu/vk/GrVkSecondaryCBDrawContext.cpp b/src/gpu/vk/GrVkSecondaryCBDrawContext.cpp
index 8083f57..f137be4 100644
--- a/src/gpu/vk/GrVkSecondaryCBDrawContext.cpp
+++ b/src/gpu/vk/GrVkSecondaryCBDrawContext.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "vk/GrVkSecondaryCBDrawContext.h"
+#include "src/gpu/vk/GrVkSecondaryCBDrawContext.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrContextThreadSafeProxyPriv.h"
-#include "GrRenderTargetContext.h"
-#include "SkDeferredDisplayList.h"
-#include "SkGpuDevice.h"
-#include "SkImageInfo.h"
-#include "SkSurfaceCharacterization.h"
-#include "SkSurfacePriv.h"
-#include "vk/GrVkTypes.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkSurfaceCharacterization.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "include/private/SkDeferredDisplayList.h"
+#include "src/core/SkSurfacePriv.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrContextThreadSafeProxyPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/SkGpuDevice.h"
 
 sk_sp<GrVkSecondaryCBDrawContext> GrVkSecondaryCBDrawContext::Make(GrContext* ctx,
                                                                    const SkImageInfo& imageInfo,
diff --git a/src/gpu/vk/GrVkSecondaryCBDrawContext.h b/src/gpu/vk/GrVkSecondaryCBDrawContext.h
index 23d6903..b37f6a6 100644
--- a/src/gpu/vk/GrVkSecondaryCBDrawContext.h
+++ b/src/gpu/vk/GrVkSecondaryCBDrawContext.h
@@ -8,9 +8,9 @@
 #ifndef GrVkSecondaryCBDrawContext_DEFINED
 #define GrVkSecondaryCBDrawContext_DEFINED
 
-#include "SkTypes.h"
-#include "SkRefCnt.h"
-#include "SkSurfaceProps.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSurfaceProps.h"
+#include "include/core/SkTypes.h"
 
 class GrBackendSemaphore;
 class GrContext;
diff --git a/src/gpu/vk/GrVkSemaphore.cpp b/src/gpu/vk/GrVkSemaphore.cpp
index dde435f..dd7796e 100644
--- a/src/gpu/vk/GrVkSemaphore.cpp
+++ b/src/gpu/vk/GrVkSemaphore.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkSemaphore.h"
+#include "src/gpu/vk/GrVkSemaphore.h"
 
-#include "GrBackendSemaphore.h"
-#include "GrVkGpu.h"
-#include "GrVkUtil.h"
+#include "include/gpu/GrBackendSemaphore.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
 #ifdef VK_USE_PLATFORM_WIN32_KHR
 // windows wants to define this as CreateSemaphoreA or CreateSemaphoreW
diff --git a/src/gpu/vk/GrVkSemaphore.h b/src/gpu/vk/GrVkSemaphore.h
index d90a498..4e56be5 100644
--- a/src/gpu/vk/GrVkSemaphore.h
+++ b/src/gpu/vk/GrVkSemaphore.h
@@ -8,11 +8,11 @@
 #ifndef GrVkSemaphore_DEFINED
 #define GrVkSemaphore_DEFINED
 
-#include "GrSemaphore.h"
+#include "src/gpu/GrSemaphore.h"
 
-#include "GrResourceProvider.h"
-#include "GrVkResource.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/vk/GrVkResource.h"
 
 class GrBackendSemaphore;
 class GrVkGpu;
diff --git a/src/gpu/vk/GrVkStencilAttachment.cpp b/src/gpu/vk/GrVkStencilAttachment.cpp
index 22549b4..58c92d8 100644
--- a/src/gpu/vk/GrVkStencilAttachment.cpp
+++ b/src/gpu/vk/GrVkStencilAttachment.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkStencilAttachment.h"
-#include "GrVkGpu.h"
-#include "GrVkImage.h"
-#include "GrVkImageView.h"
-#include "GrVkUtil.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkImage.h"
+#include "src/gpu/vk/GrVkImageView.h"
+#include "src/gpu/vk/GrVkStencilAttachment.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
 #define VK_CALL(GPU, X) GR_VK_CALL(GPU->vkInterface(), X)
 
diff --git a/src/gpu/vk/GrVkStencilAttachment.h b/src/gpu/vk/GrVkStencilAttachment.h
index cb47130..568e0e5 100644
--- a/src/gpu/vk/GrVkStencilAttachment.h
+++ b/src/gpu/vk/GrVkStencilAttachment.h
@@ -8,9 +8,9 @@
 #ifndef GrVkStencil_DEFINED
 #define GrVkStencil_DEFINED
 
-#include "GrStencilAttachment.h"
-#include "GrVkImage.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/GrStencilAttachment.h"
+#include "src/gpu/vk/GrVkImage.h"
 
 class GrVkImageView;
 class GrVkGpu;
diff --git a/src/gpu/vk/GrVkTexture.cpp b/src/gpu/vk/GrVkTexture.cpp
index 8610a86..bd443e4 100644
--- a/src/gpu/vk/GrVkTexture.cpp
+++ b/src/gpu/vk/GrVkTexture.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkTexture.h"
+#include "src/gpu/vk/GrVkTexture.h"
 
-#include "GrTexturePriv.h"
-#include "GrVkGpu.h"
-#include "GrVkImageView.h"
-#include "GrVkTextureRenderTarget.h"
-#include "GrVkUtil.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkImageView.h"
+#include "src/gpu/vk/GrVkTextureRenderTarget.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
 
 #define VK_CALL(GPU, X) GR_VK_CALL(GPU->vkInterface(), X)
 
diff --git a/src/gpu/vk/GrVkTexture.h b/src/gpu/vk/GrVkTexture.h
index 50d4cae..b2c1ba5 100644
--- a/src/gpu/vk/GrVkTexture.h
+++ b/src/gpu/vk/GrVkTexture.h
@@ -8,9 +8,9 @@
 #ifndef GrVkTexture_DEFINED
 #define GrVkTexture_DEFINED
 
-#include "GrTexture.h"
-#include "GrVkImage.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/GrTexture.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/vk/GrVkImage.h"
 
 class GrVkGpu;
 class GrVkImageView;
diff --git a/src/gpu/vk/GrVkTextureRenderTarget.cpp b/src/gpu/vk/GrVkTextureRenderTarget.cpp
index 234c4d1..08d9711 100644
--- a/src/gpu/vk/GrVkTextureRenderTarget.cpp
+++ b/src/gpu/vk/GrVkTextureRenderTarget.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkTextureRenderTarget.h"
+#include "src/gpu/vk/GrVkTextureRenderTarget.h"
 
-#include "GrTexturePriv.h"
-#include "GrVkGpu.h"
-#include "GrVkImageView.h"
-#include "GrVkUtil.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkImageView.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
-#include "SkMipMap.h"
+#include "src/core/SkMipMap.h"
 
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
 
 #define VK_CALL(GPU, X) GR_VK_CALL(GPU->vkInterface(), X)
 
diff --git a/src/gpu/vk/GrVkTextureRenderTarget.h b/src/gpu/vk/GrVkTextureRenderTarget.h
index 8093bac..67d6f0e 100644
--- a/src/gpu/vk/GrVkTextureRenderTarget.h
+++ b/src/gpu/vk/GrVkTextureRenderTarget.h
@@ -9,9 +9,9 @@
 #ifndef GrVkTextureRenderTarget_DEFINED
 #define GrVkTextureRenderTarget_DEFINED
 
-#include "GrVkTexture.h"
-#include "GrVkRenderTarget.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/vk/GrVkRenderTarget.h"
+#include "src/gpu/vk/GrVkTexture.h"
 
 class GrVkGpu;
 
diff --git a/src/gpu/vk/GrVkTransferBuffer.cpp b/src/gpu/vk/GrVkTransferBuffer.cpp
index 7ccf221..38b00e1 100644
--- a/src/gpu/vk/GrVkTransferBuffer.cpp
+++ b/src/gpu/vk/GrVkTransferBuffer.cpp
@@ -5,9 +5,9 @@
 * found in the LICENSE file.
 */
 
-#include "GrVkTransferBuffer.h"
-#include "GrVkGpu.h"
-#include "SkTraceMemoryDump.h"
+#include "include/core/SkTraceMemoryDump.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkTransferBuffer.h"
 
 sk_sp<GrVkTransferBuffer> GrVkTransferBuffer::Make(GrVkGpu* gpu, size_t size,
                                                    GrVkBuffer::Type type) {
diff --git a/src/gpu/vk/GrVkTransferBuffer.h b/src/gpu/vk/GrVkTransferBuffer.h
index 3d46a2f..9bea775 100644
--- a/src/gpu/vk/GrVkTransferBuffer.h
+++ b/src/gpu/vk/GrVkTransferBuffer.h
@@ -8,9 +8,9 @@
 #ifndef GrVkTransferBuffer_DEFINED
 #define GrVkTransferBuffer_DEFINED
 
-#include "GrGpuBuffer.h"
-#include "GrVkBuffer.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/GrGpuBuffer.h"
+#include "src/gpu/vk/GrVkBuffer.h"
 
 class GrVkGpu;
 
diff --git a/src/gpu/vk/GrVkTypesPriv.cpp b/src/gpu/vk/GrVkTypesPriv.cpp
index ec75e58..6f5d0b2 100644
--- a/src/gpu/vk/GrVkTypesPriv.cpp
+++ b/src/gpu/vk/GrVkTypesPriv.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkTypesPriv.h"
+#include "include/private/GrVkTypesPriv.h"
 
-#include "GrVkImageLayout.h"
+#include "src/gpu/vk/GrVkImageLayout.h"
 
 void GrVkBackendSurfaceInfo::cleanup() {
     SkSafeUnref(fLayout);
diff --git a/src/gpu/vk/GrVkUniformBuffer.cpp b/src/gpu/vk/GrVkUniformBuffer.cpp
index ac013f7..d5a4f9d 100644
--- a/src/gpu/vk/GrVkUniformBuffer.cpp
+++ b/src/gpu/vk/GrVkUniformBuffer.cpp
@@ -5,8 +5,8 @@
 * found in the LICENSE file.
 */
 
-#include "GrVkUniformBuffer.h"
-#include "GrVkGpu.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkUniformBuffer.h"
 
 #define VK_CALL(GPU, X) GR_VK_CALL(GPU->vkInterface(), X)
 
diff --git a/src/gpu/vk/GrVkUniformBuffer.h b/src/gpu/vk/GrVkUniformBuffer.h
index 1991f06..9a3ad3c 100644
--- a/src/gpu/vk/GrVkUniformBuffer.h
+++ b/src/gpu/vk/GrVkUniformBuffer.h
@@ -8,8 +8,8 @@
 #ifndef GrVkUniformBuffer_DEFINED
 #define GrVkUniformBuffer_DEFINED
 
-#include "GrVkBuffer.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/vk/GrVkBuffer.h"
 
 class GrVkGpu;
 
diff --git a/src/gpu/vk/GrVkUniformHandler.cpp b/src/gpu/vk/GrVkUniformHandler.cpp
index e286328..639af63 100644
--- a/src/gpu/vk/GrVkUniformHandler.cpp
+++ b/src/gpu/vk/GrVkUniformHandler.cpp
@@ -5,13 +5,13 @@
 * found in the LICENSE file.
 */
 
-#include "GrVkUniformHandler.h"
+#include "src/gpu/vk/GrVkUniformHandler.h"
 
-#include "GrTexturePriv.h"
-#include "GrVkGpu.h"
-#include "GrVkPipelineStateBuilder.h"
-#include "GrVkTexture.h"
-#include "glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkPipelineStateBuilder.h"
+#include "src/gpu/vk/GrVkTexture.h"
 
 // To determine whether a current offset is aligned, we can just 'and' the lowest bits with the
 // alignment mask. A value of 0 means aligned, any other value is how many bytes past alignment we
diff --git a/src/gpu/vk/GrVkUniformHandler.h b/src/gpu/vk/GrVkUniformHandler.h
index 08c3209..e104a09 100644
--- a/src/gpu/vk/GrVkUniformHandler.h
+++ b/src/gpu/vk/GrVkUniformHandler.h
@@ -8,12 +8,12 @@
 #ifndef GrVkUniformHandler_DEFINED
 #define GrVkUniformHandler_DEFINED
 
-#include "GrAllocator.h"
-#include "GrSamplerState.h"
-#include "GrShaderVar.h"
-#include "GrVkSampler.h"
-#include "glsl/GrGLSLUniformHandler.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/GrSamplerState.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/GrAllocator.h"
+#include "src/gpu/GrShaderVar.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
+#include "src/gpu/vk/GrVkSampler.h"
 
 class GrVkUniformHandler : public GrGLSLUniformHandler {
 public:
diff --git a/src/gpu/vk/GrVkUtil.cpp b/src/gpu/vk/GrVkUtil.cpp
index 0fccb86..b8e97cd 100644
--- a/src/gpu/vk/GrVkUtil.cpp
+++ b/src/gpu/vk/GrVkUtil.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkUtil.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
-#include "vk/GrVkGpu.h"
-#include "SkSLCompiler.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/sksl/SkSLCompiler.h"
 
 bool GrPixelConfigToVkFormat(GrPixelConfig config, VkFormat* format) {
     VkFormat dontCare;
diff --git a/src/gpu/vk/GrVkUtil.h b/src/gpu/vk/GrVkUtil.h
index b279546..5e7eff5 100644
--- a/src/gpu/vk/GrVkUtil.h
+++ b/src/gpu/vk/GrVkUtil.h
@@ -8,12 +8,12 @@
 #ifndef GrVkUtil_DEFINED
 #define GrVkUtil_DEFINED
 
-#include "GrColor.h"
-#include "GrTypes.h"
-#include "GrVkInterface.h"
-#include "SkMacros.h"
-#include "ir/SkSLProgram.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/GrTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "include/private/GrColor.h"
+#include "include/private/SkMacros.h"
+#include "src/gpu/vk/GrVkInterface.h"
+#include "src/sksl/ir/SkSLProgram.h"
 
 class GrVkGpu;
 
diff --git a/src/gpu/vk/GrVkVaryingHandler.cpp b/src/gpu/vk/GrVkVaryingHandler.cpp
index 8d6ca69..a4b9350 100644
--- a/src/gpu/vk/GrVkVaryingHandler.cpp
+++ b/src/gpu/vk/GrVkVaryingHandler.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkVaryingHandler.h"
+#include "src/gpu/vk/GrVkVaryingHandler.h"
 
 /** Returns the number of locations take up by a given GrSLType. We assume that all
     scalar values are 32 bits. */
diff --git a/src/gpu/vk/GrVkVaryingHandler.h b/src/gpu/vk/GrVkVaryingHandler.h
index cebf455..523ab6a 100644
--- a/src/gpu/vk/GrVkVaryingHandler.h
+++ b/src/gpu/vk/GrVkVaryingHandler.h
@@ -8,7 +8,7 @@
 #ifndef GrVkVaryingHandler_DEFINED
 #define GrVkVaryingHandler_DEFINED
 
-#include "glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
 
 class GrVkVaryingHandler : public GrGLSLVaryingHandler {
 public:
diff --git a/src/gpu/vk/GrVkVertexBuffer.cpp b/src/gpu/vk/GrVkVertexBuffer.cpp
index af22cc1..5be5463 100644
--- a/src/gpu/vk/GrVkVertexBuffer.cpp
+++ b/src/gpu/vk/GrVkVertexBuffer.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "GrVkVertexBuffer.h"
-#include "GrVkGpu.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkVertexBuffer.h"
 
 GrVkVertexBuffer::GrVkVertexBuffer(GrVkGpu* gpu, const GrVkBuffer::Desc& desc,
                                    const GrVkBuffer::Resource* bufferResource)
diff --git a/src/gpu/vk/GrVkVertexBuffer.h b/src/gpu/vk/GrVkVertexBuffer.h
index 9497fd3..8ddc460 100644
--- a/src/gpu/vk/GrVkVertexBuffer.h
+++ b/src/gpu/vk/GrVkVertexBuffer.h
@@ -8,8 +8,8 @@
 #ifndef GrVkVertexBuffer_DEFINED
 #define GrVkVertexBuffer_DEFINED
 
-#include "GrGpuBuffer.h"
-#include "GrVkBuffer.h"
+#include "src/gpu/GrGpuBuffer.h"
+#include "src/gpu/vk/GrVkBuffer.h"
 
 class GrVkGpu;
 
diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp
index 4ec23a3..cbc8a01 100644
--- a/src/image/SkImage.cpp
+++ b/src/image/SkImage.cpp
@@ -5,32 +5,32 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkBitmapCache.h"
-#include "SkCachedData.h"
-#include "SkCanvas.h"
-#include "SkColorSpacePriv.h"
-#include "SkData.h"
-#include "SkImageEncoder.h"
-#include "SkImageFilter.h"
-#include "SkImageFilterCache.h"
-#include "SkImageGenerator.h"
-#include "SkImagePriv.h"
-#include "SkImageShader.h"
-#include "SkImage_Base.h"
-#include "SkNextID.h"
-#include "SkPicture.h"
-#include "SkReadPixelsRec.h"
-#include "SkSpecialImage.h"
-#include "SkString.h"
-#include "SkSurface.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageEncoder.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkImageGenerator.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkString.h"
+#include "include/core/SkSurface.h"
+#include "src/core/SkBitmapCache.h"
+#include "src/core/SkCachedData.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkImageFilterCache.h"
+#include "src/core/SkImagePriv.h"
+#include "src/core/SkNextID.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/image/SkImage_Base.h"
+#include "src/image/SkReadPixelsRec.h"
+#include "src/shaders/SkImageShader.h"
 
 #if SK_SUPPORT_GPU
-#include "GrContext.h"
-#include "GrTexture.h"
-#include "SkImage_Gpu.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTexture.h"
+#include "src/image/SkImage_Gpu.h"
 #endif
-#include "GrBackendSurface.h"
+#include "include/gpu/GrBackendSurface.h"
 
 SkImage::SkImage(const SkImageInfo& info, uint32_t uniqueID)
         : fInfo(info)
diff --git a/src/image/SkImage_Base.h b/src/image/SkImage_Base.h
index e37a0b5..3b28dd6 100644
--- a/src/image/SkImage_Base.h
+++ b/src/image/SkImage_Base.h
@@ -8,13 +8,13 @@
 #ifndef SkImage_Base_DEFINED
 #define SkImage_Base_DEFINED
 
-#include "SkImage.h"
-#include "SkSurface.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkSurface.h"
 #include <atomic>
 
 #if SK_SUPPORT_GPU
-#include "GrTextureProxy.h"
-#include "SkTDArray.h"
+#include "include/private/GrTextureProxy.h"
+#include "include/private/SkTDArray.h"
 
 class GrRecordingContext;
 class GrTexture;
diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp
index c5f4915..5f77ceb 100644
--- a/src/image/SkImage_Gpu.cpp
+++ b/src/image/SkImage_Gpu.cpp
@@ -9,44 +9,44 @@
 #include <cstring>
 #include <type_traits>
 
-#include "GrAHardwareBufferImageGenerator.h"
-#include "GrAHardwareBufferUtils.h"
-#include "GrBackendSurface.h"
-#include "GrBackendTextureImageGenerator.h"
-#include "GrBitmapTextureMaker.h"
-#include "GrCaps.h"
-#include "GrClip.h"
-#include "GrColorSpaceXform.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrDrawingManager.h"
-#include "GrGpu.h"
-#include "GrImageTextureMaker.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrResourceProvider.h"
-#include "GrResourceProviderPriv.h"
-#include "GrSemaphore.h"
-#include "GrSurfacePriv.h"
-#include "GrTexture.h"
-#include "GrTextureAdjuster.h"
-#include "GrTextureContext.h"
-#include "GrTexturePriv.h"
-#include "GrTextureProxy.h"
-#include "GrTextureProxyPriv.h"
-#include "SkAutoPixmapStorage.h"
-#include "SkBitmapCache.h"
-#include "SkCanvas.h"
-#include "SkGr.h"
-#include "SkImageInfoPriv.h"
-#include "SkImage_Gpu.h"
-#include "SkMipMap.h"
-#include "SkScopeExit.h"
-#include "SkTraceEvent.h"
-#include "effects/GrYUVtoRGBEffect.h"
-#include "gl/GrGLTexture.h"
+#include "include/core/SkCanvas.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "src/core/SkAutoPixmapStorage.h"
+#include "src/core/SkBitmapCache.h"
+#include "src/core/SkMipMap.h"
+#include "src/core/SkScopeExit.h"
+#include "src/core/SkTraceEvent.h"
+#include "src/gpu/GrAHardwareBufferImageGenerator.h"
+#include "src/gpu/GrAHardwareBufferUtils.h"
+#include "src/gpu/GrBackendTextureImageGenerator.h"
+#include "src/gpu/GrBitmapTextureMaker.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrColorSpaceXform.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrDrawingManager.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrImageTextureMaker.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrResourceProviderPriv.h"
+#include "src/gpu/GrSemaphore.h"
+#include "src/gpu/GrSurfacePriv.h"
+#include "src/gpu/GrTextureAdjuster.h"
+#include "src/gpu/GrTextureContext.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/GrTextureProxyPriv.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/effects/GrYUVtoRGBEffect.h"
+#include "src/gpu/gl/GrGLTexture.h"
+#include "src/image/SkImage_Gpu.h"
 
 static SkColorType proxy_color_type(GrTextureProxy* proxy) {
     SkColorType colorType;
diff --git a/src/image/SkImage_Gpu.h b/src/image/SkImage_Gpu.h
index f381f22..8ee0e0f 100644
--- a/src/image/SkImage_Gpu.h
+++ b/src/image/SkImage_Gpu.h
@@ -8,12 +8,12 @@
 #ifndef SkImage_Gpu_DEFINED
 #define SkImage_Gpu_DEFINED
 
-#include "GrContext.h"
-#include "GrGpuResourcePriv.h"
-#include "GrSurfaceProxyPriv.h"
-#include "SkGr.h"
-#include "SkImagePriv.h"
-#include "SkImage_GpuBase.h"
+#include "include/gpu/GrContext.h"
+#include "src/core/SkImagePriv.h"
+#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
+#include "src/gpu/SkGr.h"
+#include "src/image/SkImage_GpuBase.h"
 
 class GrTexture;
 
diff --git a/src/image/SkImage_GpuBase.cpp b/src/image/SkImage_GpuBase.cpp
index 3606547..2a78ff8 100644
--- a/src/image/SkImage_GpuBase.cpp
+++ b/src/image/SkImage_GpuBase.cpp
@@ -5,22 +5,22 @@
  * found in the LICENSE file.
  */
 
-#include "SkImage_GpuBase.h"
-#include "GrBackendSurface.h"
-#include "GrClip.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrTexture.h"
-#include "GrTextureAdjuster.h"
-#include "SkBitmapCache.h"
-#include "SkImage_Gpu.h"
-#include "SkPromiseImageTexture.h"
-#include "SkReadPixelsRec.h"
-#include "SkTLList.h"
-#include "effects/GrYUVtoRGBEffect.h"
+#include "include/core/SkPromiseImageTexture.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/core/SkBitmapCache.h"
+#include "src/core/SkTLList.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrTextureAdjuster.h"
+#include "src/gpu/effects/GrYUVtoRGBEffect.h"
+#include "src/image/SkImage_Gpu.h"
+#include "src/image/SkImage_GpuBase.h"
+#include "src/image/SkReadPixelsRec.h"
 
 SkImage_GpuBase::SkImage_GpuBase(sk_sp<GrContext> context, int width, int height, uint32_t uniqueID,
                                  SkColorType ct, SkAlphaType at, sk_sp<SkColorSpace> cs)
diff --git a/src/image/SkImage_GpuBase.h b/src/image/SkImage_GpuBase.h
index d5a3665..c48c48e 100644
--- a/src/image/SkImage_GpuBase.h
+++ b/src/image/SkImage_GpuBase.h
@@ -8,12 +8,12 @@
 #ifndef SkImage_GpuBase_DEFINED
 #define SkImage_GpuBase_DEFINED
 
-#include "GrBackendSurface.h"
-#include "GrContext.h"
-#include "GrTypesPriv.h"
-#include "SkDeferredDisplayListRecorder.h"
-#include "SkImage_Base.h"
-#include "SkYUVAIndex.h"
+#include "include/core/SkDeferredDisplayListRecorder.h"
+#include "include/core/SkYUVAIndex.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/image/SkImage_Base.h"
 
 class GrColorSpaceXform;
 class SkColorSpace;
diff --git a/src/image/SkImage_GpuYUVA.cpp b/src/image/SkImage_GpuYUVA.cpp
index 17766b0..7f5a7ec 100644
--- a/src/image/SkImage_GpuYUVA.cpp
+++ b/src/image/SkImage_GpuYUVA.cpp
@@ -9,23 +9,23 @@
 #include <cstring>
 #include <type_traits>
 
-#include "GrClip.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrTexture.h"
-#include "GrTextureProducer.h"
-#include "SkAutoPixmapStorage.h"
-#include "SkGr.h"
-#include "SkImage_Gpu.h"
-#include "SkImage_GpuYUVA.h"
-#include "SkMipMap.h"
-#include "SkScopeExit.h"
-#include "SkYUVASizeInfo.h"
-#include "effects/GrYUVtoRGBEffect.h"
+#include "include/core/SkYUVASizeInfo.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/core/SkAutoPixmapStorage.h"
+#include "src/core/SkMipMap.h"
+#include "src/core/SkScopeExit.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrTextureProducer.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/effects/GrYUVtoRGBEffect.h"
+#include "src/image/SkImage_Gpu.h"
+#include "src/image/SkImage_GpuYUVA.h"
 
 static constexpr auto kAssumedColorType = kRGBA_8888_SkColorType;
 
diff --git a/src/image/SkImage_GpuYUVA.h b/src/image/SkImage_GpuYUVA.h
index eb4783f..eee5759 100644
--- a/src/image/SkImage_GpuYUVA.h
+++ b/src/image/SkImage_GpuYUVA.h
@@ -8,10 +8,10 @@
 #ifndef SkImage_GpuYUVA_DEFINED
 #define SkImage_GpuYUVA_DEFINED
 
-#include "GrBackendSurface.h"
-#include "GrContext.h"
-#include "SkCachedData.h"
-#include "SkImage_GpuBase.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "src/core/SkCachedData.h"
+#include "src/image/SkImage_GpuBase.h"
 
 class GrTexture;
 struct SkYUVASizeInfo;
diff --git a/src/image/SkImage_Lazy.cpp b/src/image/SkImage_Lazy.cpp
index d1494c8..9cc2eb9 100644
--- a/src/image/SkImage_Lazy.cpp
+++ b/src/image/SkImage_Lazy.cpp
@@ -5,27 +5,27 @@
  * found in the LICENSE file.
  */
 
-#include "SkImage_Lazy.h"
+#include "src/image/SkImage_Lazy.h"
 
-#include "SkBitmap.h"
-#include "SkBitmapCache.h"
-#include "SkCachedData.h"
-#include "SkData.h"
-#include "SkImageGenerator.h"
-#include "SkImagePriv.h"
-#include "SkNextID.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageGenerator.h"
+#include "src/core/SkBitmapCache.h"
+#include "src/core/SkCachedData.h"
+#include "src/core/SkImagePriv.h"
+#include "src/core/SkNextID.h"
 
 #if SK_SUPPORT_GPU
-#include "GrCaps.h"
-#include "GrGpuResourcePriv.h"
-#include "GrImageTextureMaker.h"
-#include "GrResourceKey.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrSamplerState.h"
-#include "GrYUVProvider.h"
-#include "SkGr.h"
+#include "include/gpu/GrSamplerState.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrResourceKey.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/GrImageTextureMaker.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrYUVProvider.h"
+#include "src/gpu/SkGr.h"
 #endif
 
 // Ref-counted tuple(SkImageGenerator, SkMutex) which allows sharing one generator among N images
diff --git a/src/image/SkImage_Lazy.h b/src/image/SkImage_Lazy.h
index 6c9d2b7..1793df4 100644
--- a/src/image/SkImage_Lazy.h
+++ b/src/image/SkImage_Lazy.h
@@ -8,11 +8,11 @@
 #ifndef SkImage_Lazy_DEFINED
 #define SkImage_Lazy_DEFINED
 
-#include "SkImage_Base.h"
-#include "SkMutex.h"
+#include "include/private/SkMutex.h"
+#include "src/image/SkImage_Base.h"
 
 #if SK_SUPPORT_GPU
-#include "GrTextureMaker.h"
+#include "src/gpu/GrTextureMaker.h"
 #endif
 
 class SharedGenerator;
diff --git a/src/image/SkImage_Raster.cpp b/src/image/SkImage_Raster.cpp
index 8646e38..6dcd116 100644
--- a/src/image/SkImage_Raster.cpp
+++ b/src/image/SkImage_Raster.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "SkImage_Base.h"
-#include "SkBitmap.h"
-#include "SkBitmapProcShader.h"
-#include "SkCanvas.h"
-#include "SkColorTable.h"
-#include "SkConvertPixels.h"
-#include "SkData.h"
-#include "SkImageInfoPriv.h"
-#include "SkImagePriv.h"
-#include "SkPixelRef.h"
-#include "SkSurface.h"
-#include "SkTLazy.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkPixelRef.h"
+#include "include/core/SkSurface.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "src/codec/SkColorTable.h"
+#include "src/core/SkConvertPixels.h"
+#include "src/core/SkImagePriv.h"
+#include "src/core/SkTLazy.h"
+#include "src/image/SkImage_Base.h"
+#include "src/shaders/SkBitmapProcShader.h"
 
 #if SK_SUPPORT_GPU
-#include "GrContext.h"
-#include "GrTextureAdjuster.h"
-#include "SkGr.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrTextureAdjuster.h"
+#include "src/gpu/SkGr.h"
 #endif
 
 // fixes https://bug.skia.org/5096
diff --git a/src/image/SkReadPixelsRec.h b/src/image/SkReadPixelsRec.h
index 6626ef2..2257e5c 100644
--- a/src/image/SkReadPixelsRec.h
+++ b/src/image/SkReadPixelsRec.h
@@ -8,7 +8,7 @@
 #ifndef SkReadPixelsRec_DEFINED
 #define SkReadPixelsRec_DEFINED
 
-#include "SkImageInfo.h"
+#include "include/core/SkImageInfo.h"
 
 /**
  *  Helper class to package and trim the parameters passed to readPixels()
diff --git a/src/image/SkSurface.cpp b/src/image/SkSurface.cpp
index bb6dec9..dd8ac6f 100644
--- a/src/image/SkSurface.cpp
+++ b/src/image/SkSurface.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrBackendSurface.h"
-#include "SkCanvas.h"
-#include "SkFontLCDConfig.h"
-#include "SkImagePriv.h"
-#include "SkSurface_Base.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFontLCDConfig.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "src/core/SkImagePriv.h"
+#include "src/image/SkSurface_Base.h"
 #include <atomic>
 
 static SkPixelGeometry compute_default_geometry() {
@@ -291,7 +291,7 @@
 }
 
 //////////////////////////////////////////////////////////////////////////////////////
-#include "SkNoDrawCanvas.h"
+#include "include/utils/SkNoDrawCanvas.h"
 
 class SkNullSurface : public SkSurface_Base {
 public:
diff --git a/src/image/SkSurface_Base.h b/src/image/SkSurface_Base.h
index 54d58c1..b38169b 100644
--- a/src/image/SkSurface_Base.h
+++ b/src/image/SkSurface_Base.h
@@ -8,10 +8,10 @@
 #ifndef SkSurface_Base_DEFINED
 #define SkSurface_Base_DEFINED
 
-#include "SkCanvas.h"
-#include "SkImagePriv.h"
-#include "SkSurface.h"
-#include "SkSurfacePriv.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "src/core/SkImagePriv.h"
+#include "src/core/SkSurfacePriv.h"
 
 class SkSurface_Base : public SkSurface {
 public:
diff --git a/src/image/SkSurface_Gpu.cpp b/src/image/SkSurface_Gpu.cpp
index 5c3b567..7a3c24a 100644
--- a/src/image/SkSurface_Gpu.cpp
+++ b/src/image/SkSurface_Gpu.cpp
@@ -5,26 +5,26 @@
  * found in the LICENSE file.
  */
 
-#include "SkSurface_Gpu.h"
-#include "GrAHardwareBufferUtils.h"
-#include "GrBackendSurface.h"
-#include "GrCaps.h"
-#include "GrContextPriv.h"
-#include "GrContextThreadSafeProxyPriv.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTarget.h"
-#include "GrRenderTargetContextPriv.h"
-#include "GrRenderTargetProxyPriv.h"
-#include "GrTexture.h"
-#include "SkCanvas.h"
-#include "SkDeferredDisplayList.h"
-#include "SkGpuDevice.h"
-#include "SkImagePriv.h"
-#include "SkImage_Base.h"
-#include "SkImage_Gpu.h"
-#include "SkSurfaceCharacterization.h"
-#include "SkSurface_Base.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurfaceCharacterization.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/SkDeferredDisplayList.h"
+#include "src/core/SkImagePriv.h"
+#include "src/gpu/GrAHardwareBufferUtils.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrContextThreadSafeProxyPriv.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/GrRenderTargetProxyPriv.h"
+#include "src/gpu/SkGpuDevice.h"
+#include "src/image/SkImage_Base.h"
+#include "src/image/SkImage_Gpu.h"
+#include "src/image/SkSurface_Base.h"
+#include "src/image/SkSurface_Gpu.h"
 
 #if SK_SUPPORT_GPU
 
diff --git a/src/image/SkSurface_Gpu.h b/src/image/SkSurface_Gpu.h
index be7532c..799de37 100644
--- a/src/image/SkSurface_Gpu.h
+++ b/src/image/SkSurface_Gpu.h
@@ -8,8 +8,8 @@
 #ifndef SkSurface_Gpu_DEFINED
 #define SkSurface_Gpu_DEFINED
 
-#include "GrTypesPriv.h"
-#include "SkSurface_Base.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/image/SkSurface_Base.h"
 
 #if SK_SUPPORT_GPU
 
diff --git a/src/image/SkSurface_Raster.cpp b/src/image/SkSurface_Raster.cpp
index 7c03378a..2301f0d 100644
--- a/src/image/SkSurface_Raster.cpp
+++ b/src/image/SkSurface_Raster.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkSurface_Base.h"
-#include "SkImageInfoPriv.h"
-#include "SkImagePriv.h"
-#include "SkCanvas.h"
-#include "SkDevice.h"
-#include "SkMallocPixelRef.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMallocPixelRef.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "src/core/SkDevice.h"
+#include "src/core/SkImagePriv.h"
+#include "src/image/SkSurface_Base.h"
 
 class SkSurface_Raster : public SkSurface_Base {
 public:
diff --git a/src/images/SkImageEncoder.cpp b/src/images/SkImageEncoder.cpp
index d5cf2ec..101b34f 100644
--- a/src/images/SkImageEncoder.cpp
+++ b/src/images/SkImageEncoder.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkImageEncoderPriv.h"
-#include "SkJpegEncoder.h"
-#include "SkPngEncoder.h"
-#include "SkWebpEncoder.h"
+#include "include/encode/SkJpegEncoder.h"
+#include "include/encode/SkPngEncoder.h"
+#include "include/encode/SkWebpEncoder.h"
+#include "src/images/SkImageEncoderPriv.h"
 
 #ifndef SK_HAS_JPEG_LIBRARY
 bool SkJpegEncoder::Encode(SkWStream*, const SkPixmap&, const Options&) { return false; }
diff --git a/src/images/SkImageEncoderFns.h b/src/images/SkImageEncoderFns.h
index ea6d8d9..058430b 100644
--- a/src/images/SkImageEncoderFns.h
+++ b/src/images/SkImageEncoderFns.h
@@ -9,10 +9,10 @@
 #define SkImageEncoderFns_DEFINED
 
 #include "skcms.h"
-#include "SkColor.h"
-#include "SkColorData.h"
-#include "SkICC.h"
-#include "SkTypes.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkICC.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkColorData.h"
 
 typedef void (*transform_scanline_proc)(char* dst, const char* src, int width, int bpp);
 
diff --git a/src/images/SkImageEncoderPriv.h b/src/images/SkImageEncoderPriv.h
index a7707fe..67ede54 100644
--- a/src/images/SkImageEncoderPriv.h
+++ b/src/images/SkImageEncoderPriv.h
@@ -8,8 +8,8 @@
 #ifndef SkImageEncoderPriv_DEFINED
 #define SkImageEncoderPriv_DEFINED
 
-#include "SkImageEncoder.h"
-#include "SkImageInfoPriv.h"
+#include "include/core/SkImageEncoder.h"
+#include "include/private/SkImageInfoPriv.h"
 
 static inline bool SkPixmapIsValid(const SkPixmap& src) {
     if (!SkImageInfoIsValid(src.info())) {
diff --git a/src/images/SkJPEGWriteUtility.cpp b/src/images/SkJPEGWriteUtility.cpp
index 29994ba..4536bb4 100644
--- a/src/images/SkJPEGWriteUtility.cpp
+++ b/src/images/SkJPEGWriteUtility.cpp
@@ -6,7 +6,7 @@
  */
 
 
-#include "SkJPEGWriteUtility.h"
+#include "src/images/SkJPEGWriteUtility.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/images/SkJPEGWriteUtility.h b/src/images/SkJPEGWriteUtility.h
index c153459..356b086 100644
--- a/src/images/SkJPEGWriteUtility.h
+++ b/src/images/SkJPEGWriteUtility.h
@@ -9,8 +9,8 @@
 #ifndef SkJpegUtility_DEFINED
 #define SkJpegUtility_DEFINED
 
-#include "SkJpegPriv.h"
-#include "SkStream.h"
+#include "include/core/SkStream.h"
+#include "src/codec/SkJpegPriv.h"
 
 extern "C" {
     #include "jpeglib.h"
diff --git a/src/images/SkJpegEncoder.cpp b/src/images/SkJpegEncoder.cpp
index 37a4911..2b0afb8 100644
--- a/src/images/SkJpegEncoder.cpp
+++ b/src/images/SkJpegEncoder.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "SkImageEncoderPriv.h"
+#include "src/images/SkImageEncoderPriv.h"
 
 #ifdef SK_HAS_JPEG_LIBRARY
 
-#include "SkColorData.h"
-#include "SkImageEncoderFns.h"
-#include "SkImageInfoPriv.h"
-#include "SkJpegEncoder.h"
-#include "SkJPEGWriteUtility.h"
-#include "SkStream.h"
-#include "SkTemplates.h"
+#include "include/core/SkStream.h"
+#include "include/encode/SkJpegEncoder.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "include/private/SkTemplates.h"
+#include "src/images/SkImageEncoderFns.h"
+#include "src/images/SkJPEGWriteUtility.h"
 
 #include <stdio.h>
 
diff --git a/src/images/SkPngEncoder.cpp b/src/images/SkPngEncoder.cpp
index bac6921..884eb03 100644
--- a/src/images/SkPngEncoder.cpp
+++ b/src/images/SkPngEncoder.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "SkImageEncoderPriv.h"
+#include "src/images/SkImageEncoderPriv.h"
 
 #ifdef SK_HAS_PNG_LIBRARY
 
-#include "SkColorTable.h"
-#include "SkImageEncoderFns.h"
-#include "SkImageInfoPriv.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkPngEncoder.h"
-#include "SkPngPriv.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/encode/SkPngEncoder.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "src/codec/SkColorTable.h"
+#include "src/codec/SkPngPriv.h"
+#include "src/images/SkImageEncoderFns.h"
 #include <vector>
 
 #include "png.h"
diff --git a/src/images/SkWebpEncoder.cpp b/src/images/SkWebpEncoder.cpp
index d516511..32801cb 100644
--- a/src/images/SkWebpEncoder.cpp
+++ b/src/images/SkWebpEncoder.cpp
@@ -14,18 +14,18 @@
  * limitations under the License.
  */
 
-#include "SkImageEncoderPriv.h"
+#include "src/images/SkImageEncoderPriv.h"
 
 #ifdef SK_HAS_WEBP_LIBRARY
 
-#include "SkBitmap.h"
-#include "SkColorData.h"
-#include "SkImageEncoderFns.h"
-#include "SkStream.h"
-#include "SkTemplates.h"
-#include "SkUnPreMultiply.h"
-#include "SkUTF.h"
-#include "SkWebpEncoder.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkUnPreMultiply.h"
+#include "include/encode/SkWebpEncoder.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkTemplates.h"
+#include "src/images/SkImageEncoderFns.h"
+#include "src/utils/SkUTF.h"
 
 // A WebP encoder only, on top of (subset of) libwebp
 // For more information on WebP image format, and libwebp library, see:
diff --git a/src/lazy/SkDiscardableMemoryPool.cpp b/src/lazy/SkDiscardableMemoryPool.cpp
index 394e325..8d5b627 100644
--- a/src/lazy/SkDiscardableMemoryPool.cpp
+++ b/src/lazy/SkDiscardableMemoryPool.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkDiscardableMemoryPool.h"
-#include "SkDiscardableMemory.h"
-#include "SkMakeUnique.h"
-#include "SkMalloc.h"
-#include "SkMutex.h"
-#include "SkTInternalLList.h"
-#include "SkTemplates.h"
+#include "include/private/SkMalloc.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkTInternalLList.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkDiscardableMemory.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/lazy/SkDiscardableMemoryPool.h"
 
 // Note:
 // A PoolDiscardableMemory is memory that is counted in a pool.
diff --git a/src/lazy/SkDiscardableMemoryPool.h b/src/lazy/SkDiscardableMemoryPool.h
index facdf3d..46519e3 100644
--- a/src/lazy/SkDiscardableMemoryPool.h
+++ b/src/lazy/SkDiscardableMemoryPool.h
@@ -8,8 +8,8 @@
 #ifndef SkDiscardableMemoryPool_DEFINED
 #define SkDiscardableMemoryPool_DEFINED
 
-#include "SkDiscardableMemory.h"
-#include "SkMutex.h"
+#include "include/private/SkMutex.h"
+#include "src/core/SkDiscardableMemory.h"
 
 #ifndef SK_LAZY_CACHE_STATS
     #ifdef SK_DEBUG
diff --git a/src/opts/Sk4px_none.h b/src/opts/Sk4px_none.h
index edd1609..41e8168 100644
--- a/src/opts/Sk4px_none.h
+++ b/src/opts/Sk4px_none.h
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkUtils.h"
+#include "src/core/SkUtils.h"
 
 namespace {  // NOLINT(google-build-namespaces)
 
diff --git a/src/opts/SkBitmapProcState_opts.h b/src/opts/SkBitmapProcState_opts.h
index 4d6e573..053a47d 100644
--- a/src/opts/SkBitmapProcState_opts.h
+++ b/src/opts/SkBitmapProcState_opts.h
@@ -8,7 +8,7 @@
 #ifndef SkBitmapProcState_opts_DEFINED
 #define SkBitmapProcState_opts_DEFINED
 
-#include "SkBitmapProcState.h"
+#include "src/core/SkBitmapProcState.h"
 
 // SkBitmapProcState optimized Shader, Sample, or Matrix procs.
 //
diff --git a/src/opts/SkBlitMask_opts.h b/src/opts/SkBlitMask_opts.h
index 6c174a2..2dfe5ec 100644
--- a/src/opts/SkBlitMask_opts.h
+++ b/src/opts/SkBlitMask_opts.h
@@ -8,7 +8,7 @@
 #ifndef SkBlitMask_opts_DEFINED
 #define SkBlitMask_opts_DEFINED
 
-#include "Sk4px.h"
+#include "src/core/Sk4px.h"
 
 namespace SK_OPTS_NS {
 
diff --git a/src/opts/SkBlitRow_opts.h b/src/opts/SkBlitRow_opts.h
index 70a1e24..759f464 100644
--- a/src/opts/SkBlitRow_opts.h
+++ b/src/opts/SkBlitRow_opts.h
@@ -8,9 +8,9 @@
 #ifndef SkBlitRow_opts_DEFINED
 #define SkBlitRow_opts_DEFINED
 
-#include "SkVx.h"
-#include "SkColorData.h"
-#include "SkMSAN.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkVx.h"
+#include "src/core/SkMSAN.h"
 
 #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2
     #include <immintrin.h>
diff --git a/src/opts/SkChecksum_opts.h b/src/opts/SkChecksum_opts.h
index 05aefa3..9df4db6 100644
--- a/src/opts/SkChecksum_opts.h
+++ b/src/opts/SkChecksum_opts.h
@@ -8,8 +8,8 @@
 #ifndef SkChecksum_opts_DEFINED
 #define SkChecksum_opts_DEFINED
 
-#include "SkChecksum.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkChecksum.h"
 
 #if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE42
     #include <immintrin.h>
diff --git a/src/opts/SkOpts_avx.cpp b/src/opts/SkOpts_avx.cpp
index 6abe399..0494aec 100644
--- a/src/opts/SkOpts_avx.cpp
+++ b/src/opts/SkOpts_avx.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkOpts.h"
+#include "src/core/SkOpts.h"
 
 #define SK_OPTS_NS avx
-#include "SkRasterPipeline_opts.h"
-#include "SkUtils_opts.h"
+#include "src/opts/SkRasterPipeline_opts.h"
+#include "src/opts/SkUtils_opts.h"
 
 namespace SkOpts {
     void Init_avx() {
diff --git a/src/opts/SkOpts_crc32.cpp b/src/opts/SkOpts_crc32.cpp
index 8fc88aa..205f0eb 100644
--- a/src/opts/SkOpts_crc32.cpp
+++ b/src/opts/SkOpts_crc32.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkOpts.h"
+#include "src/core/SkOpts.h"
 
 #define SK_OPTS_NS crc32
-#include "SkChecksum_opts.h"
+#include "src/opts/SkChecksum_opts.h"
 
 namespace SkOpts {
     void Init_crc32() {
diff --git a/src/opts/SkOpts_hsw.cpp b/src/opts/SkOpts_hsw.cpp
index 0c6d09b..fae5c85 100644
--- a/src/opts/SkOpts_hsw.cpp
+++ b/src/opts/SkOpts_hsw.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkOpts.h"
+#include "src/core/SkOpts.h"
 
 #define SK_OPTS_NS hsw
-#include "SkBlitRow_opts.h"
-#include "SkRasterPipeline_opts.h"
-#include "SkUtils_opts.h"
+#include "src/opts/SkBlitRow_opts.h"
+#include "src/opts/SkRasterPipeline_opts.h"
+#include "src/opts/SkUtils_opts.h"
 
 namespace SkOpts {
     void Init_hsw() {
diff --git a/src/opts/SkOpts_sse41.cpp b/src/opts/SkOpts_sse41.cpp
index 45b0b30..8e52596 100644
--- a/src/opts/SkOpts_sse41.cpp
+++ b/src/opts/SkOpts_sse41.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkOpts.h"
+#include "src/core/SkOpts.h"
 
 #define SK_OPTS_NS sse41
-#include "SkBlitRow_opts.h"
-#include "SkRasterPipeline_opts.h"
+#include "src/opts/SkBlitRow_opts.h"
+#include "src/opts/SkRasterPipeline_opts.h"
 
 namespace SkOpts {
     void Init_sse41() {
diff --git a/src/opts/SkOpts_sse42.cpp b/src/opts/SkOpts_sse42.cpp
index 1883182..8e80fff 100644
--- a/src/opts/SkOpts_sse42.cpp
+++ b/src/opts/SkOpts_sse42.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkOpts.h"
+#include "src/core/SkOpts.h"
 
 #define SK_OPTS_NS sse42
-#include "SkChecksum_opts.h"
+#include "src/opts/SkChecksum_opts.h"
 
 namespace SkOpts {
     void Init_sse42() {
diff --git a/src/opts/SkOpts_ssse3.cpp b/src/opts/SkOpts_ssse3.cpp
index df2fdb1..daa6987 100644
--- a/src/opts/SkOpts_ssse3.cpp
+++ b/src/opts/SkOpts_ssse3.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkOpts.h"
+#include "src/core/SkOpts.h"
 #define SK_OPTS_NS ssse3
-#include "SkBitmapProcState_opts.h"
-#include "SkBlitMask_opts.h"
-#include "SkSwizzler_opts.h"
-#include "SkXfermode_opts.h"
+#include "src/opts/SkBitmapProcState_opts.h"
+#include "src/opts/SkBlitMask_opts.h"
+#include "src/opts/SkSwizzler_opts.h"
+#include "src/opts/SkXfermode_opts.h"
 
 namespace SkOpts {
     void Init_ssse3() {
diff --git a/src/opts/SkRasterPipeline_opts.h b/src/opts/SkRasterPipeline_opts.h
index ce85f45..e581480 100644
--- a/src/opts/SkRasterPipeline_opts.h
+++ b/src/opts/SkRasterPipeline_opts.h
@@ -8,7 +8,7 @@
 #ifndef SkRasterPipeline_opts_DEFINED
 #define SkRasterPipeline_opts_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 // Every function in this file should be marked static and inline using SI.
 #if defined(__clang__)
diff --git a/src/opts/SkSwizzler_opts.h b/src/opts/SkSwizzler_opts.h
index ae1891f..f7f7c25 100644
--- a/src/opts/SkSwizzler_opts.h
+++ b/src/opts/SkSwizzler_opts.h
@@ -8,7 +8,7 @@
 #ifndef SkSwizzler_opts_DEFINED
 #define SkSwizzler_opts_DEFINED
 
-#include "SkColorData.h"
+#include "include/private/SkColorData.h"
 
 #include <utility>
 
diff --git a/src/opts/SkUtils_opts.h b/src/opts/SkUtils_opts.h
index ee35605..3609a8e 100644
--- a/src/opts/SkUtils_opts.h
+++ b/src/opts/SkUtils_opts.h
@@ -9,7 +9,7 @@
 #define SkUtils_opts_DEFINED
 
 #include <stdint.h>
-#include "SkNx.h"
+#include "include/private/SkNx.h"
 
 namespace SK_OPTS_NS {
 
diff --git a/src/opts/SkXfermode_opts.h b/src/opts/SkXfermode_opts.h
index 2178041..577d6e2 100644
--- a/src/opts/SkXfermode_opts.h
+++ b/src/opts/SkXfermode_opts.h
@@ -8,10 +8,10 @@
 #ifndef Sk4pxXfermode_DEFINED
 #define Sk4pxXfermode_DEFINED
 
-#include "Sk4px.h"
-#include "SkMSAN.h"
-#include "SkNx.h"
-#include "SkXfermodePriv.h"
+#include "include/private/SkNx.h"
+#include "src/core/Sk4px.h"
+#include "src/core/SkMSAN.h"
+#include "src/core/SkXfermodePriv.h"
 
 #ifdef SK_FORCE_RASTER_PIPELINE_BLITTER
 
diff --git a/src/pathops/SkAddIntersections.cpp b/src/pathops/SkAddIntersections.cpp
index 1749ca9..75de64e 100644
--- a/src/pathops/SkAddIntersections.cpp
+++ b/src/pathops/SkAddIntersections.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkAddIntersections.h"
-#include "SkOpCoincidence.h"
-#include "SkPathOpsBounds.h"
+#include "src/pathops/SkAddIntersections.h"
+#include "src/pathops/SkOpCoincidence.h"
+#include "src/pathops/SkPathOpsBounds.h"
 
 #include <utility>
 
diff --git a/src/pathops/SkAddIntersections.h b/src/pathops/SkAddIntersections.h
index ca40980..b48493b 100644
--- a/src/pathops/SkAddIntersections.h
+++ b/src/pathops/SkAddIntersections.h
@@ -7,8 +7,8 @@
 #ifndef SkAddIntersections_DEFINED
 #define SkAddIntersections_DEFINED
 
-#include "SkIntersectionHelper.h"
-#include "SkIntersections.h"
+#include "src/pathops/SkIntersectionHelper.h"
+#include "src/pathops/SkIntersections.h"
 
 class SkOpCoincidence;
 
diff --git a/src/pathops/SkDConicLineIntersection.cpp b/src/pathops/SkDConicLineIntersection.cpp
index 102a4c3..6a9eb4b 100644
--- a/src/pathops/SkDConicLineIntersection.cpp
+++ b/src/pathops/SkDConicLineIntersection.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkIntersections.h"
-#include "SkPathOpsConic.h"
-#include "SkPathOpsCurve.h"
-#include "SkPathOpsLine.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCurve.h"
+#include "src/pathops/SkPathOpsLine.h"
 
 class LineConicIntersections {
 public:
diff --git a/src/pathops/SkDCubicLineIntersection.cpp b/src/pathops/SkDCubicLineIntersection.cpp
index ceedce1..98cc03d 100644
--- a/src/pathops/SkDCubicLineIntersection.cpp
+++ b/src/pathops/SkDCubicLineIntersection.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkIntersections.h"
-#include "SkPathOpsCubic.h"
-#include "SkPathOpsCurve.h"
-#include "SkPathOpsLine.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsCurve.h"
+#include "src/pathops/SkPathOpsLine.h"
 
 /*
 Find the interection of a line and cubic by solving for valid t values.
diff --git a/src/pathops/SkDCubicToQuads.cpp b/src/pathops/SkDCubicToQuads.cpp
index 272b997..8f5c6fb 100644
--- a/src/pathops/SkDCubicToQuads.cpp
+++ b/src/pathops/SkDCubicToQuads.cpp
@@ -28,8 +28,8 @@
 P1 = -1/4 Q0 + 3/4 Q1 + 3/4 Q2 - 1/4 Q3
 */
 
-#include "SkPathOpsCubic.h"
-#include "SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsQuad.h"
 
 // used for testing only
 SkDQuad SkDCubic::toQuad() const {
diff --git a/src/pathops/SkDLineIntersection.cpp b/src/pathops/SkDLineIntersection.cpp
index 5dcc067..83fe84c 100644
--- a/src/pathops/SkDLineIntersection.cpp
+++ b/src/pathops/SkDLineIntersection.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkIntersections.h"
-#include "SkPathOpsLine.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsLine.h"
 
 #include <utility>
 
diff --git a/src/pathops/SkDQuadLineIntersection.cpp b/src/pathops/SkDQuadLineIntersection.cpp
index 8d5baf6..95c5613 100644
--- a/src/pathops/SkDQuadLineIntersection.cpp
+++ b/src/pathops/SkDQuadLineIntersection.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkIntersections.h"
-#include "SkPathOpsCurve.h"
-#include "SkPathOpsLine.h"
-#include "SkPathOpsQuad.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsCurve.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsQuad.h"
 
 /*
 Find the interection of a line and quadratic by solving for valid t values.
diff --git a/src/pathops/SkIntersectionHelper.h b/src/pathops/SkIntersectionHelper.h
index 9a8a582..9eb7cbf 100644
--- a/src/pathops/SkIntersectionHelper.h
+++ b/src/pathops/SkIntersectionHelper.h
@@ -7,12 +7,12 @@
 #ifndef SkIntersectionHelper_DEFINED
 #define SkIntersectionHelper_DEFINED
 
-#include "SkOpContour.h"
-#include "SkOpSegment.h"
-#include "SkPath.h"
+#include "include/core/SkPath.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkOpSegment.h"
 
 #ifdef SK_DEBUG
-#include "SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsPoint.h"
 #endif
 
 class SkIntersectionHelper {
diff --git a/src/pathops/SkIntersections.cpp b/src/pathops/SkIntersections.cpp
index 541cfb0..2b1db9a 100644
--- a/src/pathops/SkIntersections.cpp
+++ b/src/pathops/SkIntersections.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkIntersections.h"
+#include "src/pathops/SkIntersections.h"
 
 int SkIntersections::closestTo(double rangeStart, double rangeEnd, const SkDPoint& testPt,
         double* closestDist) const {
diff --git a/src/pathops/SkIntersections.h b/src/pathops/SkIntersections.h
index 9a7cdd0..71d1c80 100644
--- a/src/pathops/SkIntersections.h
+++ b/src/pathops/SkIntersections.h
@@ -7,11 +7,11 @@
 #ifndef SkIntersections_DEFINE
 #define SkIntersections_DEFINE
 
-#include "SkPathOpsConic.h"
-#include "SkPathOpsCubic.h"
-#include "SkPathOpsLine.h"
-#include "SkPathOpsPoint.h"
-#include "SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsQuad.h"
 
 class SkIntersections {
 public:
diff --git a/src/pathops/SkLineParameters.h b/src/pathops/SkLineParameters.h
index 073d036..45d1ed4 100644
--- a/src/pathops/SkLineParameters.h
+++ b/src/pathops/SkLineParameters.h
@@ -8,9 +8,9 @@
 #ifndef SkLineParameters_DEFINED
 #define SkLineParameters_DEFINED
 
-#include "SkPathOpsCubic.h"
-#include "SkPathOpsLine.h"
-#include "SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsQuad.h"
 
 // Sources
 // computer-aided design - volume 22 number 9 november 1990 pp 538 - 549
diff --git a/src/pathops/SkOpAngle.cpp b/src/pathops/SkOpAngle.cpp
index 2aca983..a701d0f 100644
--- a/src/pathops/SkOpAngle.cpp
+++ b/src/pathops/SkOpAngle.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkOpAngle.h"
-#include "SkOpSegment.h"
-#include "SkPathOpsCurve.h"
-#include "SkTSort.h"
+#include "src/core/SkTSort.h"
+#include "src/pathops/SkOpAngle.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkPathOpsCurve.h"
 
 /* Angles are sorted counterclockwise. The smallest angle has a positive x and the smallest
    positive y. The largest angle has a positive x and a zero y. */
diff --git a/src/pathops/SkOpAngle.h b/src/pathops/SkOpAngle.h
index 375844a..73d0e11 100644
--- a/src/pathops/SkOpAngle.h
+++ b/src/pathops/SkOpAngle.h
@@ -7,10 +7,10 @@
 #ifndef SkOpAngle_DEFINED
 #define SkOpAngle_DEFINED
 
-#include "SkLineParameters.h"
-#include "SkPathOpsCurve.h"
+#include "src/pathops/SkLineParameters.h"
+#include "src/pathops/SkPathOpsCurve.h"
 #if DEBUG_ANGLE
-#include "SkString.h"
+#include "include/core/SkString.h"
 #endif
 
 class SkOpContour;
diff --git a/src/pathops/SkOpBuilder.cpp b/src/pathops/SkOpBuilder.cpp
index a7aa92f..38bbf3c 100644
--- a/src/pathops/SkOpBuilder.cpp
+++ b/src/pathops/SkOpBuilder.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkArenaAlloc.h"
-#include "SkMatrix.h"
-#include "SkOpEdgeBuilder.h"
-#include "SkPathPriv.h"
-#include "SkPathOps.h"
-#include "SkPathOpsCommon.h"
+#include "include/core/SkMatrix.h"
+#include "include/pathops/SkPathOps.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkPathPriv.h"
+#include "src/pathops/SkOpEdgeBuilder.h"
+#include "src/pathops/SkPathOpsCommon.h"
 
 static bool one_contour(const SkPath& path) {
     SkSTArenaAlloc<256> allocator;
diff --git a/src/pathops/SkOpCoincidence.cpp b/src/pathops/SkOpCoincidence.cpp
index 182f469..31de4f1 100644
--- a/src/pathops/SkOpCoincidence.cpp
+++ b/src/pathops/SkOpCoincidence.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkOpCoincidence.h"
-#include "SkOpSegment.h"
-#include "SkPathOpsTSect.h"
+#include "src/pathops/SkOpCoincidence.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkPathOpsTSect.h"
 
 #include <utility>
 
diff --git a/src/pathops/SkOpCoincidence.h b/src/pathops/SkOpCoincidence.h
index 37498c2..fe75909 100644
--- a/src/pathops/SkOpCoincidence.h
+++ b/src/pathops/SkOpCoincidence.h
@@ -7,10 +7,10 @@
 #ifndef SkOpCoincidence_DEFINED
 #define SkOpCoincidence_DEFINED
 
-#include "SkArenaAlloc.h"
-#include "SkTDArray.h"
-#include "SkOpSpan.h"
-#include "SkPathOpsTypes.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkTDArray.h"
+#include "src/pathops/SkOpSpan.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 class SkOpPtT;
 class SkOpSpanBase;
diff --git a/src/pathops/SkOpContour.cpp b/src/pathops/SkOpContour.cpp
index f7de7ab..508c324 100644
--- a/src/pathops/SkOpContour.cpp
+++ b/src/pathops/SkOpContour.cpp
@@ -4,10 +4,10 @@
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */
-#include "SkOpContour.h"
-#include "SkPathWriter.h"
-#include "SkReduceOrder.h"
-#include "SkTSort.h"
+#include "src/core/SkTSort.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkPathWriter.h"
+#include "src/pathops/SkReduceOrder.h"
 
 void SkOpContour::toPath(SkPathWriter* path) const {
     if (!this->count()) {
diff --git a/src/pathops/SkOpContour.h b/src/pathops/SkOpContour.h
index 17effc6..628ff19 100644
--- a/src/pathops/SkOpContour.h
+++ b/src/pathops/SkOpContour.h
@@ -7,9 +7,9 @@
 #ifndef SkOpContour_DEFINED
 #define SkOpContour_DEFINED
 
-#include "SkOpSegment.h"
-#include "SkTDArray.h"
-#include "SkTSort.h"
+#include "include/private/SkTDArray.h"
+#include "src/core/SkTSort.h"
+#include "src/pathops/SkOpSegment.h"
 
 enum class SkOpRayDir;
 struct SkOpRayHit;
diff --git a/src/pathops/SkOpCubicHull.cpp b/src/pathops/SkOpCubicHull.cpp
index a733138..61e4963 100644
--- a/src/pathops/SkOpCubicHull.cpp
+++ b/src/pathops/SkOpCubicHull.cpp
@@ -4,7 +4,7 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsCubic.h"
 
 static bool rotate(const SkDCubic& cubic, int zero, int index, SkDCubic& rotPath) {
     double dy = cubic[index].fY - cubic[zero].fY;
diff --git a/src/pathops/SkOpEdgeBuilder.cpp b/src/pathops/SkOpEdgeBuilder.cpp
index 2be3fdd..3efb0e0 100644
--- a/src/pathops/SkOpEdgeBuilder.cpp
+++ b/src/pathops/SkOpEdgeBuilder.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkGeometry.h"
-#include "SkOpEdgeBuilder.h"
-#include "SkReduceOrder.h"
+#include "src/core/SkGeometry.h"
+#include "src/pathops/SkOpEdgeBuilder.h"
+#include "src/pathops/SkReduceOrder.h"
 
 void SkOpEdgeBuilder::init() {
     fOperand = false;
diff --git a/src/pathops/SkOpEdgeBuilder.h b/src/pathops/SkOpEdgeBuilder.h
index a71001f..67dff91 100644
--- a/src/pathops/SkOpEdgeBuilder.h
+++ b/src/pathops/SkOpEdgeBuilder.h
@@ -7,8 +7,8 @@
 #ifndef SkOpEdgeBuilder_DEFINED
 #define SkOpEdgeBuilder_DEFINED
 
-#include "SkOpContour.h"
-#include "SkPathWriter.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkPathWriter.h"
 
 class SkOpEdgeBuilder {
 public:
diff --git a/src/pathops/SkOpSegment.cpp b/src/pathops/SkOpSegment.cpp
index ff21828..66fa6ee 100644
--- a/src/pathops/SkOpSegment.cpp
+++ b/src/pathops/SkOpSegment.cpp
@@ -4,11 +4,11 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkOpCoincidence.h"
-#include "SkOpContour.h"
-#include "SkOpSegment.h"
-#include "SkPathWriter.h"
-#include "SkPointPriv.h"
+#include "src/core/SkPointPriv.h"
+#include "src/pathops/SkOpCoincidence.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkPathWriter.h"
 
 #include <utility>
 
diff --git a/src/pathops/SkOpSegment.h b/src/pathops/SkOpSegment.h
index bd40fab..a6366ae 100644
--- a/src/pathops/SkOpSegment.h
+++ b/src/pathops/SkOpSegment.h
@@ -7,12 +7,12 @@
 #ifndef SkOpSegment_DEFINE
 #define SkOpSegment_DEFINE
 
-#include "SkArenaAlloc.h"
-#include "SkOpAngle.h"
-#include "SkOpSpan.h"
-#include "SkPathOpsBounds.h"
-#include "SkPathOpsCubic.h"
-#include "SkPathOpsCurve.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/pathops/SkOpAngle.h"
+#include "src/pathops/SkOpSpan.h"
+#include "src/pathops/SkPathOpsBounds.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsCurve.h"
 
 struct SkDCurve;
 class SkOpCoincidence;
diff --git a/src/pathops/SkOpSpan.cpp b/src/pathops/SkOpSpan.cpp
index 3dc9c0e..ea57756 100644
--- a/src/pathops/SkOpSpan.cpp
+++ b/src/pathops/SkOpSpan.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkOpCoincidence.h"
-#include "SkOpContour.h"
-#include "SkOpSegment.h"
-#include "SkPathWriter.h"
+#include "src/pathops/SkOpCoincidence.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkPathWriter.h"
 
 bool SkOpPtT::alias() const {
     return this->span()->ptT() != this;
diff --git a/src/pathops/SkOpSpan.h b/src/pathops/SkOpSpan.h
index b3cd54c..d04ae50 100644
--- a/src/pathops/SkOpSpan.h
+++ b/src/pathops/SkOpSpan.h
@@ -7,9 +7,9 @@
 #ifndef SkOpSpan_DEFINED
 #define SkOpSpan_DEFINED
 
-#include "SkPathOpsDebug.h"
-#include "SkPathOpsTypes.h"
-#include "SkPoint.h"
+#include "include/core/SkPoint.h"
+#include "src/pathops/SkPathOpsDebug.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 class SkArenaAlloc;
 class SkOpAngle;
diff --git a/src/pathops/SkPathOpsAsWinding.cpp b/src/pathops/SkPathOpsAsWinding.cpp
index 4bd0fd6..5726550 100644
--- a/src/pathops/SkPathOpsAsWinding.cpp
+++ b/src/pathops/SkPathOpsAsWinding.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkOpEdgeBuilder.h"
-#include "SkPathOpsCommon.h"
-#include "SkRect.h"
+#include "include/core/SkRect.h"
+#include "src/pathops/SkOpEdgeBuilder.h"
+#include "src/pathops/SkPathOpsCommon.h"
 #include <algorithm>
 #include <vector>
 
diff --git a/src/pathops/SkPathOpsBounds.h b/src/pathops/SkPathOpsBounds.h
index 610d723..1ebd46f 100644
--- a/src/pathops/SkPathOpsBounds.h
+++ b/src/pathops/SkPathOpsBounds.h
@@ -7,8 +7,8 @@
 #ifndef SkPathOpBounds_DEFINED
 #define SkPathOpBounds_DEFINED
 
-#include "SkPathOpsRect.h"
-#include "SkRect.h"
+#include "include/core/SkRect.h"
+#include "src/pathops/SkPathOpsRect.h"
 
 // SkPathOpsBounds, unlike SkRect, does not consider a line to be empty.
 struct SkPathOpsBounds : public SkRect {
diff --git a/src/pathops/SkPathOpsCommon.cpp b/src/pathops/SkPathOpsCommon.cpp
index df01b44..a4d0fcd 100644
--- a/src/pathops/SkPathOpsCommon.cpp
+++ b/src/pathops/SkPathOpsCommon.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkAddIntersections.h"
-#include "SkOpCoincidence.h"
-#include "SkOpEdgeBuilder.h"
-#include "SkMacros.h"
-#include "SkPathOpsCommon.h"
-#include "SkPathWriter.h"
-#include "SkTSort.h"
+#include "include/private/SkMacros.h"
+#include "src/core/SkTSort.h"
+#include "src/pathops/SkAddIntersections.h"
+#include "src/pathops/SkOpCoincidence.h"
+#include "src/pathops/SkOpEdgeBuilder.h"
+#include "src/pathops/SkPathOpsCommon.h"
+#include "src/pathops/SkPathWriter.h"
 
 const SkOpAngle* AngleWinding(SkOpSpanBase* start, SkOpSpanBase* end, int* windingPtr,
         bool* sortablePtr) {
diff --git a/src/pathops/SkPathOpsCommon.h b/src/pathops/SkPathOpsCommon.h
index 2eff14f..af27f2e 100644
--- a/src/pathops/SkPathOpsCommon.h
+++ b/src/pathops/SkPathOpsCommon.h
@@ -7,8 +7,8 @@
 #ifndef SkPathOpsCommon_DEFINED
 #define SkPathOpsCommon_DEFINED
 
-#include "SkOpAngle.h"
-#include "SkTDArray.h"
+#include "include/private/SkTDArray.h"
+#include "src/pathops/SkOpAngle.h"
 
 class SkOpCoincidence;
 class SkOpContour;
diff --git a/src/pathops/SkPathOpsConic.cpp b/src/pathops/SkPathOpsConic.cpp
index ffcaaa7..c0bbda8 100644
--- a/src/pathops/SkPathOpsConic.cpp
+++ b/src/pathops/SkPathOpsConic.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkIntersections.h"
-#include "SkLineParameters.h"
-#include "SkPathOpsConic.h"
-#include "SkPathOpsCubic.h"
-#include "SkPathOpsQuad.h"
-#include "SkPathOpsRect.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkLineParameters.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsRect.h"
 
 // cribbed from the float version in SkGeometry.cpp
 static void conic_deriv_coeff(const double src[],
diff --git a/src/pathops/SkPathOpsConic.h b/src/pathops/SkPathOpsConic.h
index 277f997..27893ee 100644
--- a/src/pathops/SkPathOpsConic.h
+++ b/src/pathops/SkPathOpsConic.h
@@ -8,7 +8,7 @@
 #ifndef SkPathOpsConic_DEFINED
 #define SkPathOpsConic_DEFINED
 
-#include "SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsQuad.h"
 
 struct SkDConic {
     static const int kPointCount = 3;
diff --git a/src/pathops/SkPathOpsCubic.cpp b/src/pathops/SkPathOpsCubic.cpp
index 0156b8c..bb5261f 100644
--- a/src/pathops/SkPathOpsCubic.cpp
+++ b/src/pathops/SkPathOpsCubic.cpp
@@ -4,15 +4,15 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkGeometry.h"
-#include "SkLineParameters.h"
-#include "SkPathOpsConic.h"
-#include "SkPathOpsCubic.h"
-#include "SkPathOpsCurve.h"
-#include "SkPathOpsLine.h"
-#include "SkPathOpsQuad.h"
-#include "SkPathOpsRect.h"
-#include "SkTSort.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkTSort.h"
+#include "src/pathops/SkLineParameters.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsCurve.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsRect.h"
 
 const int SkDCubic::gPrecisionUnit = 256;  // FIXME: test different values in test framework
 
diff --git a/src/pathops/SkPathOpsCubic.h b/src/pathops/SkPathOpsCubic.h
index bc45677..f774359 100644
--- a/src/pathops/SkPathOpsCubic.h
+++ b/src/pathops/SkPathOpsCubic.h
@@ -8,9 +8,9 @@
 #ifndef SkPathOpsCubic_DEFINED
 #define SkPathOpsCubic_DEFINED
 
-#include "SkArenaAlloc.h"
-#include "SkPath.h"
-#include "SkPathOpsTCurve.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/pathops/SkPathOpsTCurve.h"
 
 struct SkDCubicPair;
 
diff --git a/src/pathops/SkPathOpsCurve.cpp b/src/pathops/SkPathOpsCurve.cpp
index 503c140..58137b6 100644
--- a/src/pathops/SkPathOpsCurve.cpp
+++ b/src/pathops/SkPathOpsCurve.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkPathOpsBounds.h"
-#include "SkPathOpsRect.h"
-#include "SkPathOpsCurve.h"
+#include "src/pathops/SkPathOpsBounds.h"
+#include "src/pathops/SkPathOpsCurve.h"
+#include "src/pathops/SkPathOpsRect.h"
 
  // this cheats and assumes that the perpendicular to the point is the closest ray to the curve
  // this case (where the line and the curve are nearly coincident) may be the only case that counts
diff --git a/src/pathops/SkPathOpsCurve.h b/src/pathops/SkPathOpsCurve.h
index 7823146..50511c8 100644
--- a/src/pathops/SkPathOpsCurve.h
+++ b/src/pathops/SkPathOpsCurve.h
@@ -7,10 +7,10 @@
 #ifndef SkPathOpsCurve_DEFINE
 #define SkPathOpsCurve_DEFINE
 
-#include "SkIntersections.h"
+#include "src/pathops/SkIntersections.h"
 
 #ifndef SK_RELEASE
-#include "SkPath.h"
+#include "include/core/SkPath.h"
 #endif
 
 struct SkPathOpsBounds;
diff --git a/src/pathops/SkPathOpsDebug.cpp b/src/pathops/SkPathOpsDebug.cpp
index 3471ec0..9d497c9 100644
--- a/src/pathops/SkPathOpsDebug.cpp
+++ b/src/pathops/SkPathOpsDebug.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkMutex.h"
-#include "SkOpCoincidence.h"
-#include "SkOpContour.h"
-#include "SkOSFile.h"
-#include "SkPath.h"
-#include "SkPathOpsDebug.h"
-#include "SkString.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkString.h"
+#include "include/private/SkMutex.h"
+#include "src/core/SkOSFile.h"
+#include "src/pathops/SkOpCoincidence.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkPathOpsDebug.h"
 
 #include <utility>
 
@@ -568,9 +568,9 @@
     show_op(shapeOp, "path", "pathB");
 }
 
-#include "SkPathOpsTypes.h"
-#include "SkIntersectionHelper.h"
-#include "SkIntersections.h"
+#include "src/pathops/SkIntersectionHelper.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 #if DEBUG_COIN
 
@@ -705,8 +705,8 @@
 }
 #endif
 
-#include "SkPathOpsConic.h"
-#include "SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCubic.h"
 
 SkDCubic SkDQuad::debugToCubic() const {
     SkDCubic cubic;
@@ -739,8 +739,8 @@
     fLeft = fTop = fRight = fBottom = SK_ScalarNaN;
 }
 
-#include "SkOpAngle.h"
-#include "SkOpSegment.h"
+#include "src/pathops/SkOpAngle.h"
+#include "src/pathops/SkOpSegment.h"
 
 #if DEBUG_COIN
 // commented-out lines keep this in sync with addT()
@@ -2717,7 +2717,7 @@
     return count;
 }
 
-#include "SkOpContour.h"
+#include "src/pathops/SkOpContour.h"
 
 // Commented-out lines keep this in sync with addOpp()
 void SkOpPtT::debugAddOpp(const SkOpPtT* opp, const SkOpPtT* oppPrev) const {
@@ -2939,8 +2939,8 @@
 }
 
 #if DEBUG_DUMP_VERIFY
-#include "SkData.h"
-#include "SkStream.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
 
 static void dump_path(FILE* file, const SkPath& path, bool force, bool dumpAsHex) {
     SkDynamicMemoryWStream wStream;
@@ -2994,9 +2994,9 @@
     fclose(file);
 }
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
 
 const int bitWidth = 64;
 const int bitHeight = 64;
diff --git a/src/pathops/SkPathOpsDebug.h b/src/pathops/SkPathOpsDebug.h
index 6825daa..dca0102 100644
--- a/src/pathops/SkPathOpsDebug.h
+++ b/src/pathops/SkPathOpsDebug.h
@@ -7,9 +7,9 @@
 #ifndef SkPathOpsDebug_DEFINED
 #define SkPathOpsDebug_DEFINED
 
-#include "SkPathOps.h"
-#include "SkString.h"
-#include "SkTypes.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "include/pathops/SkPathOps.h"
 
 #include <stdlib.h>
 #include <stdio.h>
@@ -247,7 +247,7 @@
 #endif
 
 #if DEBUG_SHOW_TEST_NAME
-#include "SkTLS.h"
+#include "src/core/SkTLS.h"
 #endif
 
 // Tests with extreme numbers may fail, but all other tests should never fail.
diff --git a/src/pathops/SkPathOpsLine.cpp b/src/pathops/SkPathOpsLine.cpp
index 6fa091d..9003547 100644
--- a/src/pathops/SkPathOpsLine.cpp
+++ b/src/pathops/SkPathOpsLine.cpp
@@ -4,7 +4,7 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsLine.h"
 
 SkDPoint SkDLine::ptAtT(double t) const {
     if (0 == t) {
diff --git a/src/pathops/SkPathOpsLine.h b/src/pathops/SkPathOpsLine.h
index 882dadc..0c6c7ea 100644
--- a/src/pathops/SkPathOpsLine.h
+++ b/src/pathops/SkPathOpsLine.h
@@ -7,7 +7,7 @@
 #ifndef SkPathOpsLine_DEFINED
 #define SkPathOpsLine_DEFINED
 
-#include "SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsPoint.h"
 
 struct SkDLine {
     SkDPoint fPts[2];
diff --git a/src/pathops/SkPathOpsOp.cpp b/src/pathops/SkPathOpsOp.cpp
index 3ef0949..4421a51 100644
--- a/src/pathops/SkPathOpsOp.cpp
+++ b/src/pathops/SkPathOpsOp.cpp
@@ -4,11 +4,11 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkAddIntersections.h"
-#include "SkOpCoincidence.h"
-#include "SkOpEdgeBuilder.h"
-#include "SkPathOpsCommon.h"
-#include "SkPathWriter.h"
+#include "src/pathops/SkAddIntersections.h"
+#include "src/pathops/SkOpCoincidence.h"
+#include "src/pathops/SkOpEdgeBuilder.h"
+#include "src/pathops/SkPathOpsCommon.h"
+#include "src/pathops/SkPathWriter.h"
 
 #include <utility>
 
@@ -224,7 +224,7 @@
 
 #if DEBUG_T_SECT_LOOP_COUNT
 
-#include "SkMutex.h"
+#include "include/private/SkMutex.h"
 
 SK_DECLARE_STATIC_MUTEX(debugWorstLoop);
 
diff --git a/src/pathops/SkPathOpsPoint.h b/src/pathops/SkPathOpsPoint.h
index 6cd2984..86515a4 100644
--- a/src/pathops/SkPathOpsPoint.h
+++ b/src/pathops/SkPathOpsPoint.h
@@ -7,8 +7,8 @@
 #ifndef SkPathOpsPoint_DEFINED
 #define SkPathOpsPoint_DEFINED
 
-#include "SkPathOpsTypes.h"
-#include "SkPoint.h"
+#include "include/core/SkPoint.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 inline bool AlmostEqualUlps(const SkPoint& pt1, const SkPoint& pt2) {
     return AlmostEqualUlps(pt1.fX, pt2.fX) && AlmostEqualUlps(pt1.fY, pt2.fY);
diff --git a/src/pathops/SkPathOpsQuad.cpp b/src/pathops/SkPathOpsQuad.cpp
index af842fb..45cd78b 100644
--- a/src/pathops/SkPathOpsQuad.cpp
+++ b/src/pathops/SkPathOpsQuad.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkIntersections.h"
-#include "SkLineParameters.h"
-#include "SkPathOpsCubic.h"
-#include "SkPathOpsCurve.h"
-#include "SkPathOpsQuad.h"
-#include "SkPathOpsRect.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkLineParameters.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsCurve.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsRect.h"
 
 // from blackpawn.com/texts/pointinpoly
 static bool pointInTriangle(const SkDPoint fPts[3], const SkDPoint& test) {
diff --git a/src/pathops/SkPathOpsQuad.h b/src/pathops/SkPathOpsQuad.h
index 94d1b38..0e8cd27 100644
--- a/src/pathops/SkPathOpsQuad.h
+++ b/src/pathops/SkPathOpsQuad.h
@@ -8,8 +8,8 @@
 #ifndef SkPathOpsQuad_DEFINED
 #define SkPathOpsQuad_DEFINED
 
-#include "SkArenaAlloc.h"
-#include "SkPathOpsTCurve.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/pathops/SkPathOpsTCurve.h"
 
 struct SkOpCurve;
 
diff --git a/src/pathops/SkPathOpsRect.cpp b/src/pathops/SkPathOpsRect.cpp
index f691af5..c2a0014 100644
--- a/src/pathops/SkPathOpsRect.cpp
+++ b/src/pathops/SkPathOpsRect.cpp
@@ -4,11 +4,11 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkPathOpsConic.h"
-#include "SkPathOpsCubic.h"
-#include "SkPathOpsLine.h"
-#include "SkPathOpsQuad.h"
-#include "SkPathOpsRect.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsRect.h"
 
 void SkDRect::setBounds(const SkDQuad& curve, const SkDQuad& sub, double startT, double endT) {
     set(sub[0]);
diff --git a/src/pathops/SkPathOpsRect.h b/src/pathops/SkPathOpsRect.h
index a429273..2f2a9f0 100644
--- a/src/pathops/SkPathOpsRect.h
+++ b/src/pathops/SkPathOpsRect.h
@@ -7,7 +7,7 @@
 #ifndef SkPathOpsRect_DEFINED
 #define SkPathOpsRect_DEFINED
 
-#include "SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsPoint.h"
 
 class SkTCurve;
 
diff --git a/src/pathops/SkPathOpsSimplify.cpp b/src/pathops/SkPathOpsSimplify.cpp
index 0c7a2e4..f079b50 100644
--- a/src/pathops/SkPathOpsSimplify.cpp
+++ b/src/pathops/SkPathOpsSimplify.cpp
@@ -4,11 +4,11 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkAddIntersections.h"
-#include "SkOpCoincidence.h"
-#include "SkOpEdgeBuilder.h"
-#include "SkPathOpsCommon.h"
-#include "SkPathWriter.h"
+#include "src/pathops/SkAddIntersections.h"
+#include "src/pathops/SkOpCoincidence.h"
+#include "src/pathops/SkOpEdgeBuilder.h"
+#include "src/pathops/SkPathOpsCommon.h"
+#include "src/pathops/SkPathWriter.h"
 
 static bool bridgeWinding(SkOpContourHead* contourList, SkPathWriter* writer) {
     bool unsortable = false;
diff --git a/src/pathops/SkPathOpsTCurve.h b/src/pathops/SkPathOpsTCurve.h
index 4637cb6..f905348 100644
--- a/src/pathops/SkPathOpsTCurve.h
+++ b/src/pathops/SkPathOpsTCurve.h
@@ -8,7 +8,7 @@
 #ifndef SkPathOpsTCurve_DEFINED
 #define SkPathOpsTCurve_DEFINED
 
-#include "SkPathOpsPoint.h"
+#include "src/pathops/SkPathOpsPoint.h"
 
 class SkArenaAlloc;
 class SkIntersections;
diff --git a/src/pathops/SkPathOpsTSect.cpp b/src/pathops/SkPathOpsTSect.cpp
index 8c438cc..f24d4b5 100644
--- a/src/pathops/SkPathOpsTSect.cpp
+++ b/src/pathops/SkPathOpsTSect.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkPathOpsTSect.h"
+#include "src/pathops/SkPathOpsTSect.h"
 
 #define COINCIDENT_SPAN_COUNT 9
 
diff --git a/src/pathops/SkPathOpsTSect.h b/src/pathops/SkPathOpsTSect.h
index 6b7a2f9..59ddcc3 100644
--- a/src/pathops/SkPathOpsTSect.h
+++ b/src/pathops/SkPathOpsTSect.h
@@ -7,13 +7,13 @@
 #ifndef SkPathOpsTSect_DEFINED
 #define SkPathOpsTSect_DEFINED
 
-#include "SkArenaAlloc.h"
-#include "SkIntersections.h"
-#include "SkMacros.h"
-#include "SkPathOpsBounds.h"
-#include "SkPathOpsRect.h"
-#include "SkPathOpsTCurve.h"
-#include "SkTSort.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkMacros.h"
+#include "src/core/SkTSort.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsBounds.h"
+#include "src/pathops/SkPathOpsRect.h"
+#include "src/pathops/SkPathOpsTCurve.h"
 
 #include <utility>
 
diff --git a/src/pathops/SkPathOpsTightBounds.cpp b/src/pathops/SkPathOpsTightBounds.cpp
index a0959d2..ff1d177 100644
--- a/src/pathops/SkPathOpsTightBounds.cpp
+++ b/src/pathops/SkPathOpsTightBounds.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkOpEdgeBuilder.h"
-#include "SkPathOpsCommon.h"
+#include "src/pathops/SkOpEdgeBuilder.h"
+#include "src/pathops/SkPathOpsCommon.h"
 
 bool TightBounds(const SkPath& path, SkRect* result) {
     SkPath::RawIter iter(path);
diff --git a/src/pathops/SkPathOpsTypes.cpp b/src/pathops/SkPathOpsTypes.cpp
index df46c20..ac57bc4 100644
--- a/src/pathops/SkPathOpsTypes.cpp
+++ b/src/pathops/SkPathOpsTypes.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkArenaAlloc.h"
-#include "SkFloatBits.h"
-#include "SkOpCoincidence.h"
-#include "SkPathOpsTypes.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkFloatBits.h"
+#include "src/pathops/SkOpCoincidence.h"
+#include "src/pathops/SkPathOpsTypes.h"
 
 static bool arguments_denormalized(float a, float b, int epsilon) {
     float denormalizedCheck = FLT_EPSILON * epsilon / 2;
diff --git a/src/pathops/SkPathOpsTypes.h b/src/pathops/SkPathOpsTypes.h
index 2fef826..0edd1ba 100644
--- a/src/pathops/SkPathOpsTypes.h
+++ b/src/pathops/SkPathOpsTypes.h
@@ -9,12 +9,12 @@
 
 #include <float.h>  // for FLT_EPSILON
 
-#include "SkFloatingPoint.h"
-#include "SkPath.h"
-#include "SkPathOps.h"
-#include "SkPathOpsDebug.h"
-#include "SkSafe_math.h"  // for fabs, sqrt
-#include "SkScalar.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkScalar.h"
+#include "include/pathops/SkPathOps.h"
+#include "include/private/SkFloatingPoint.h"
+#include "include/private/SkSafe_math.h"
+#include "src/pathops/SkPathOpsDebug.h"
 
 enum SkPathOpsMask {
     kWinding_PathOpsMask = -1,
diff --git a/src/pathops/SkPathOpsWinding.cpp b/src/pathops/SkPathOpsWinding.cpp
index 12cb112..4eb7298 100644
--- a/src/pathops/SkPathOpsWinding.cpp
+++ b/src/pathops/SkPathOpsWinding.cpp
@@ -21,9 +21,9 @@
 
 // bestXY is initialized by caller with basePt
 
-#include "SkOpContour.h"
-#include "SkOpSegment.h"
-#include "SkPathOpsCurve.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkPathOpsCurve.h"
 
 #include <utility>
 
diff --git a/src/pathops/SkPathWriter.cpp b/src/pathops/SkPathWriter.cpp
index 459c731..6c2faab 100644
--- a/src/pathops/SkPathWriter.cpp
+++ b/src/pathops/SkPathWriter.cpp
@@ -4,11 +4,11 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkOpSegment.h"
-#include "SkOpSpan.h"
-#include "SkPathOpsPoint.h"
-#include "SkPathWriter.h"
-#include "SkTSort.h"
+#include "src/core/SkTSort.h"
+#include "src/pathops/SkOpSegment.h"
+#include "src/pathops/SkOpSpan.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "src/pathops/SkPathWriter.h"
 
 // wrap path to keep track of whether the contour is initialized and non-empty
 SkPathWriter::SkPathWriter(SkPath& path)
diff --git a/src/pathops/SkPathWriter.h b/src/pathops/SkPathWriter.h
index b3a26b4..3963710 100644
--- a/src/pathops/SkPathWriter.h
+++ b/src/pathops/SkPathWriter.h
@@ -7,9 +7,9 @@
 #ifndef SkPathWriter_DEFINED
 #define SkPathWriter_DEFINED
 
-#include "SkPath.h"
-#include "SkTArray.h"
-#include "SkTDArray.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTDArray.h"
 
 class SkOpPtT;
 
diff --git a/src/pathops/SkReduceOrder.cpp b/src/pathops/SkReduceOrder.cpp
index 7f7ea11..72a6168 100644
--- a/src/pathops/SkReduceOrder.cpp
+++ b/src/pathops/SkReduceOrder.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkGeometry.h"
-#include "SkReduceOrder.h"
+#include "src/core/SkGeometry.h"
+#include "src/pathops/SkReduceOrder.h"
 
 int SkReduceOrder::reduce(const SkDLine& line) {
     fLine[0] = line[0];
diff --git a/src/pathops/SkReduceOrder.h b/src/pathops/SkReduceOrder.h
index 7efb71d..69ea0ad 100644
--- a/src/pathops/SkReduceOrder.h
+++ b/src/pathops/SkReduceOrder.h
@@ -7,9 +7,9 @@
 #ifndef SkReduceOrder_DEFINED
 #define SkReduceOrder_DEFINED
 
-#include "SkPathOpsCubic.h"
-#include "SkPathOpsLine.h"
-#include "SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsQuad.h"
 
 struct SkConic;
 
diff --git a/src/pdf/SkBitmapKey.h b/src/pdf/SkBitmapKey.h
index 99d88a3..72df0c7 100644
--- a/src/pdf/SkBitmapKey.h
+++ b/src/pdf/SkBitmapKey.h
@@ -7,7 +7,7 @@
 #ifndef SkBitmapKey_DEFINED
 #define SkBitmapKey_DEFINED
 
-#include "SkRect.h"
+#include "include/core/SkRect.h"
 
 struct SkBitmapKey {
     SkIRect fSubset;
diff --git a/src/pdf/SkClusterator.cpp b/src/pdf/SkClusterator.cpp
index 6a75015..ab2fceb 100644
--- a/src/pdf/SkClusterator.cpp
+++ b/src/pdf/SkClusterator.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkClusterator.h"
+#include "src/pdf/SkClusterator.h"
 
-#include "SkGlyphRun.h"
-#include "SkTo.h"
-#include "SkUTF.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkGlyphRun.h"
+#include "src/utils/SkUTF.h"
 
 static bool is_reversed(const uint32_t* clusters, uint32_t count) {
     // "ReversedChars" is how PDF deals with RTL text.
diff --git a/src/pdf/SkDeflate.cpp b/src/pdf/SkDeflate.cpp
index be3e182..f803c17 100644
--- a/src/pdf/SkDeflate.cpp
+++ b/src/pdf/SkDeflate.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkDeflate.h"
+#include "src/pdf/SkDeflate.h"
 
-#include "SkData.h"
-#include "SkMakeUnique.h"
-#include "SkMalloc.h"
-#include "SkTo.h"
-#include "SkTraceEvent.h"
+#include "include/core/SkData.h"
+#include "include/private/SkMalloc.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkTraceEvent.h"
 
 #include "zlib.h"
 
diff --git a/src/pdf/SkDeflate.h b/src/pdf/SkDeflate.h
index b109ab6..46e24a5 100644
--- a/src/pdf/SkDeflate.h
+++ b/src/pdf/SkDeflate.h
@@ -9,7 +9,7 @@
 #ifndef SkFlate_DEFINED
 #define SkFlate_DEFINED
 
-#include "SkStream.h"
+#include "include/core/SkStream.h"
 
 /**
   * Wrap a stream in this class to compress the information written to
diff --git a/src/pdf/SkDocument_PDF_None.cpp b/src/pdf/SkDocument_PDF_None.cpp
index 5756788..2dc580c 100644
--- a/src/pdf/SkDocument_PDF_None.cpp
+++ b/src/pdf/SkDocument_PDF_None.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkPDFDocument.h"
+#include "include/core/SkCanvas.h"
+#include "include/docs/SkPDFDocument.h"
 
 sk_sp<SkDocument> SkPDF::MakeDocument(SkWStream*, const SkPDF::Metadata&) { return nullptr; }
 
diff --git a/src/pdf/SkJpegInfo.cpp b/src/pdf/SkJpegInfo.cpp
index 72e659e..f2c3a5d 100644
--- a/src/pdf/SkJpegInfo.cpp
+++ b/src/pdf/SkJpegInfo.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkJpegInfo.h"
+#include "src/pdf/SkJpegInfo.h"
 
-#include "SkTo.h"
+#include "include/private/SkTo.h"
 
 #ifndef SK_HAS_JPEG_LIBRARY
 
diff --git a/src/pdf/SkJpegInfo.h b/src/pdf/SkJpegInfo.h
index 2f0eb6f..82a8a73 100644
--- a/src/pdf/SkJpegInfo.h
+++ b/src/pdf/SkJpegInfo.h
@@ -7,9 +7,9 @@
 #ifndef SkJpegInfo_DEFINED
 #define SkJpegInfo_DEFINED
 
-#include "SkEncodedInfo.h"
-#include "SkEncodedOrigin.h"
-#include "SkSize.h"
+#include "include/codec/SkEncodedOrigin.h"
+#include "include/core/SkSize.h"
+#include "include/private/SkEncodedInfo.h"
 
 /** Returns true if the data seems to be a valid JPEG image with a known colorType.
 
diff --git a/src/pdf/SkKeyedImage.cpp b/src/pdf/SkKeyedImage.cpp
index bcf7d70..901cfff 100644
--- a/src/pdf/SkKeyedImage.cpp
+++ b/src/pdf/SkKeyedImage.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkKeyedImage.h"
+#include "src/pdf/SkKeyedImage.h"
 
-#include "SkImage_Base.h"
+#include "src/image/SkImage_Base.h"
 
 SkBitmapKey SkBitmapKeyFromImage(const SkImage* image) {
     if (!image) {
diff --git a/src/pdf/SkKeyedImage.h b/src/pdf/SkKeyedImage.h
index 792e802..db7b09d 100644
--- a/src/pdf/SkKeyedImage.h
+++ b/src/pdf/SkKeyedImage.h
@@ -7,9 +7,9 @@
 #ifndef SkKeyedImage_DEFINED
 #define SkKeyedImage_DEFINED
 
-#include "SkBitmap.h"
-#include "SkBitmapKey.h"
-#include "SkImage.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkImage.h"
+#include "src/pdf/SkBitmapKey.h"
 
 /**
    This class has all the advantages of SkBitmaps and SkImages.
diff --git a/src/pdf/SkPDFBitmap.cpp b/src/pdf/SkPDFBitmap.cpp
index e254156..beaf088 100644
--- a/src/pdf/SkPDFBitmap.cpp
+++ b/src/pdf/SkPDFBitmap.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "SkPDFBitmap.h"
+#include "src/pdf/SkPDFBitmap.h"
 
-#include "SkColorData.h"
-#include "SkData.h"
-#include "SkDeflate.h"
-#include "SkExecutor.h"
-#include "SkImage.h"
-#include "SkImageInfoPriv.h"
-#include "SkJpegInfo.h"
-#include "SkPDFDocumentPriv.h"
-#include "SkPDFTypes.h"
-#include "SkPDFUtils.h"
-#include "SkStream.h"
-#include "SkTo.h"
+#include "include/core/SkData.h"
+#include "include/core/SkExecutor.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "include/private/SkTo.h"
+#include "src/pdf/SkDeflate.h"
+#include "src/pdf/SkJpegInfo.h"
+#include "src/pdf/SkPDFDocumentPriv.h"
+#include "src/pdf/SkPDFTypes.h"
+#include "src/pdf/SkPDFUtils.h"
 
 ////////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/pdf/SkPDFDevice.cpp b/src/pdf/SkPDFDevice.cpp
index a4998e1..99adcb2 100644
--- a/src/pdf/SkPDFDevice.cpp
+++ b/src/pdf/SkPDFDevice.cpp
@@ -5,48 +5,48 @@
  * found in the LICENSE file.
  */
 
-#include "SkPDFDevice.h"
+#include "src/pdf/SkPDFDevice.h"
 
-#include "SkAdvancedTypefaceMetrics.h"
-#include "SkAnnotationKeys.h"
-#include "SkBitmapDevice.h"
-#include "SkBitmapKey.h"
-#include "SkCanvas.h"
-#include "SkClipOpPriv.h"
-#include "SkClusterator.h"
-#include "SkColor.h"
-#include "SkColorFilter.h"
-#include "SkDraw.h"
-#include "SkGlyphRun.h"
-#include "SkImageFilterCache.h"
-#include "SkJpegEncoder.h"
-#include "SkMakeUnique.h"
-#include "SkMaskFilterBase.h"
-#include "SkPDFBitmap.h"
-#include "SkPDFDocument.h"
-#include "SkPDFDocumentPriv.h"
-#include "SkPDFFont.h"
-#include "SkPDFFormXObject.h"
-#include "SkPDFGraphicState.h"
-#include "SkPDFResourceDict.h"
-#include "SkPDFShader.h"
-#include "SkPDFTypes.h"
-#include "SkPDFUtils.h"
-#include "SkPath.h"
-#include "SkPathEffect.h"
-#include "SkPathOps.h"
-#include "SkRRect.h"
-#include "SkRasterClip.h"
-#include "SkScopeExit.h"
-#include "SkStrike.h"
-#include "SkString.h"
-#include "SkSurface.h"
-#include "SkTemplates.h"
-#include "SkTextBlob.h"
-#include "SkTextFormatParams.h"
-#include "SkTo.h"
-#include "SkUTF.h"
-#include "SkXfermodeInterpretation.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkString.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTextBlob.h"
+#include "include/docs/SkPDFDocument.h"
+#include "include/encode/SkJpegEncoder.h"
+#include "include/pathops/SkPathOps.h"
+#include "include/private/SkTemplates.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkAdvancedTypefaceMetrics.h"
+#include "src/core/SkAnnotationKeys.h"
+#include "src/core/SkBitmapDevice.h"
+#include "src/core/SkClipOpPriv.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkGlyphRun.h"
+#include "src/core/SkImageFilterCache.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkMaskFilterBase.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkScopeExit.h"
+#include "src/core/SkStrike.h"
+#include "src/core/SkTextFormatParams.h"
+#include "src/core/SkXfermodeInterpretation.h"
+#include "src/pdf/SkBitmapKey.h"
+#include "src/pdf/SkClusterator.h"
+#include "src/pdf/SkPDFBitmap.h"
+#include "src/pdf/SkPDFDocumentPriv.h"
+#include "src/pdf/SkPDFFont.h"
+#include "src/pdf/SkPDFFormXObject.h"
+#include "src/pdf/SkPDFGraphicState.h"
+#include "src/pdf/SkPDFResourceDict.h"
+#include "src/pdf/SkPDFShader.h"
+#include "src/pdf/SkPDFTypes.h"
+#include "src/pdf/SkPDFUtils.h"
+#include "src/utils/SkUTF.h"
 
 #include <vector>
 
@@ -1705,8 +1705,8 @@
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-#include "SkSpecialImage.h"
-#include "SkImageFilter.h"
+#include "include/core/SkImageFilter.h"
+#include "src/core/SkSpecialImage.h"
 
 void SkPDFDevice::drawSpecial(SkSpecialImage* srcImg, int x, int y, const SkPaint& paint,
                               SkImage* clipImage, const SkMatrix& clipMatrix) {
diff --git a/src/pdf/SkPDFDevice.h b/src/pdf/SkPDFDevice.h
index 354840f..5984c1c 100644
--- a/src/pdf/SkPDFDevice.h
+++ b/src/pdf/SkPDFDevice.h
@@ -8,20 +8,20 @@
 #ifndef SkPDFDevice_DEFINED
 #define SkPDFDevice_DEFINED
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkClipStack.h"
-#include "SkClipStackDevice.h"
-#include "SkData.h"
-#include "SkKeyedImage.h"
-#include "SkPDFGraphicStackState.h"
-#include "SkPDFTypes.h"
-#include "SkPaint.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkStream.h"
-#include "SkTHash.h"
-#include "SkTextBlobPriv.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkTHash.h"
+#include "src/core/SkClipStack.h"
+#include "src/core/SkClipStackDevice.h"
+#include "src/core/SkTextBlobPriv.h"
+#include "src/pdf/SkKeyedImage.h"
+#include "src/pdf/SkPDFGraphicStackState.h"
+#include "src/pdf/SkPDFTypes.h"
 
 #include <vector>
 
diff --git a/src/pdf/SkPDFDocument.cpp b/src/pdf/SkPDFDocument.cpp
index f2de46f..377dc59 100644
--- a/src/pdf/SkPDFDocument.cpp
+++ b/src/pdf/SkPDFDocument.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "SkPDFDocument.h"
-#include "SkPDFDocumentPriv.h"
+#include "include/docs/SkPDFDocument.h"
+#include "src/pdf/SkPDFDocumentPriv.h"
 
-#include "SkMakeUnique.h"
-#include "SkPDFDevice.h"
-#include "SkPDFDocument.h"
-#include "SkPDFFont.h"
-#include "SkPDFGradientShader.h"
-#include "SkPDFGraphicState.h"
-#include "SkPDFShader.h"
-#include "SkPDFTag.h"
-#include "SkPDFUtils.h"
-#include "SkStream.h"
-#include "SkTo.h"
+#include "include/core/SkStream.h"
+#include "include/docs/SkPDFDocument.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/pdf/SkPDFDevice.h"
+#include "src/pdf/SkPDFFont.h"
+#include "src/pdf/SkPDFGradientShader.h"
+#include "src/pdf/SkPDFGraphicState.h"
+#include "src/pdf/SkPDFShader.h"
+#include "src/pdf/SkPDFTag.h"
+#include "src/pdf/SkPDFUtils.h"
 
 #include <utility>
 
diff --git a/src/pdf/SkPDFDocumentPriv.h b/src/pdf/SkPDFDocumentPriv.h
index 50485f4..9ab2fab 100644
--- a/src/pdf/SkPDFDocumentPriv.h
+++ b/src/pdf/SkPDFDocumentPriv.h
@@ -7,13 +7,13 @@
 #ifndef SkPDFDocumentPriv_DEFINED
 #define SkPDFDocumentPriv_DEFINED
 
-#include "SkCanvas.h"
-#include "SkMutex.h"
-#include "SkPDFDocument.h"
-#include "SkPDFMetadata.h"
-#include "SkPDFTag.h"
-#include "SkStream.h"
-#include "SkTHash.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkStream.h"
+#include "include/docs/SkPDFDocument.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkTHash.h"
+#include "src/pdf/SkPDFMetadata.h"
+#include "src/pdf/SkPDFTag.h"
 
 #include <atomic>
 #include <vector>
diff --git a/src/pdf/SkPDFFont.cpp b/src/pdf/SkPDFFont.cpp
index 3e7d354..bb45465 100644
--- a/src/pdf/SkPDFFont.cpp
+++ b/src/pdf/SkPDFFont.cpp
@@ -5,30 +5,30 @@
  * found in the LICENSE file.
  */
 
-#include "SkPDFFont.h"
+#include "src/pdf/SkPDFFont.h"
 
-#include "SkData.h"
-#include "SkFont.h"
-#include "SkImagePriv.h"
-#include "SkMacros.h"
-#include "SkMakeUnique.h"
-#include "SkPDFBitmap.h"
-#include "SkPDFDocument.h"
-#include "SkPDFDevice.h"
-#include "SkPDFDocumentPriv.h"
-#include "SkPDFMakeCIDGlyphWidthsArray.h"
-#include "SkPDFMakeToUnicodeCmap.h"
-#include "SkPDFResourceDict.h"
-#include "SkPDFSubsetFont.h"
-#include "SkPDFUtils.h"
-#include "SkPaint.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkStream.h"
-#include "SkStrike.h"
-#include "SkTo.h"
-#include "SkTypes.h"
-#include "SkUTF.h"
+#include "include/core/SkData.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypes.h"
+#include "include/docs/SkPDFDocument.h"
+#include "include/private/SkMacros.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkImagePriv.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkStrike.h"
+#include "src/pdf/SkPDFBitmap.h"
+#include "src/pdf/SkPDFDevice.h"
+#include "src/pdf/SkPDFDocumentPriv.h"
+#include "src/pdf/SkPDFMakeCIDGlyphWidthsArray.h"
+#include "src/pdf/SkPDFMakeToUnicodeCmap.h"
+#include "src/pdf/SkPDFResourceDict.h"
+#include "src/pdf/SkPDFSubsetFont.h"
+#include "src/pdf/SkPDFUtils.h"
+#include "src/utils/SkUTF.h"
 
 SkExclusiveStrikePtr SkPDFFont::MakeVectorCache(SkTypeface* face, int* size) {
     SkFont font;
diff --git a/src/pdf/SkPDFFont.h b/src/pdf/SkPDFFont.h
index ec44732..b58d2fb 100644
--- a/src/pdf/SkPDFFont.h
+++ b/src/pdf/SkPDFFont.h
@@ -7,13 +7,13 @@
 #ifndef SkPDFFont_DEFINED
 #define SkPDFFont_DEFINED
 
-#include "SkAdvancedTypefaceMetrics.h"
-#include "SkPDFDocument.h"
-#include "SkPDFGlyphUse.h"
-#include "SkPDFType1Font.h"
-#include "SkPDFTypes.h"
-#include "SkStrikeCache.h"
-#include "SkTypeface.h"
+#include "include/core/SkTypeface.h"
+#include "include/docs/SkPDFDocument.h"
+#include "src/core/SkAdvancedTypefaceMetrics.h"
+#include "src/core/SkStrikeCache.h"
+#include "src/pdf/SkPDFGlyphUse.h"
+#include "src/pdf/SkPDFType1Font.h"
+#include "src/pdf/SkPDFTypes.h"
 
 /** \class SkPDFFont
     A PDF Object class representing a font.  The font may have resources
diff --git a/src/pdf/SkPDFFormXObject.cpp b/src/pdf/SkPDFFormXObject.cpp
index 1586063..cc07e2a 100644
--- a/src/pdf/SkPDFFormXObject.cpp
+++ b/src/pdf/SkPDFFormXObject.cpp
@@ -6,8 +6,8 @@
  */
 
 
-#include "SkPDFFormXObject.h"
-#include "SkPDFUtils.h"
+#include "src/pdf/SkPDFFormXObject.h"
+#include "src/pdf/SkPDFUtils.h"
 
 SkPDFIndirectReference SkPDFMakeFormXObject(SkPDFDocument* doc,
                                             std::unique_ptr<SkStreamAsset> content,
diff --git a/src/pdf/SkPDFFormXObject.h b/src/pdf/SkPDFFormXObject.h
index 1304960..b12c8b2 100644
--- a/src/pdf/SkPDFFormXObject.h
+++ b/src/pdf/SkPDFFormXObject.h
@@ -9,8 +9,8 @@
 #ifndef SkPDFFormXObject_DEFINED
 #define SkPDFFormXObject_DEFINED
 
-#include "SkPDFDevice.h"
-#include "SkPDFTypes.h"
+#include "src/pdf/SkPDFDevice.h"
+#include "src/pdf/SkPDFTypes.h"
 
 class SkPDFDocument;
 
diff --git a/src/pdf/SkPDFGlyphUse.h b/src/pdf/SkPDFGlyphUse.h
index 5ee76e8..e4afa72 100644
--- a/src/pdf/SkPDFGlyphUse.h
+++ b/src/pdf/SkPDFGlyphUse.h
@@ -3,8 +3,8 @@
 #ifndef SkPDFGlyphUse_DEFINED
 #define SkPDFGlyphUse_DEFINED
 
-#include "SkBitSet.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "src/utils/SkBitSet.h"
 
 class SkPDFGlyphUse {
 public:
diff --git a/src/pdf/SkPDFGradientShader.cpp b/src/pdf/SkPDFGradientShader.cpp
index 83320ad..919c07a5 100644
--- a/src/pdf/SkPDFGradientShader.cpp
+++ b/src/pdf/SkPDFGradientShader.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkPDFGradientShader.h"
+#include "src/pdf/SkPDFGradientShader.h"
 
-#include "SkOpts.h"
-#include "SkPDFDocument.h"
-#include "SkPDFDocumentPriv.h"
-#include "SkPDFFormXObject.h"
-#include "SkPDFGraphicState.h"
-#include "SkPDFResourceDict.h"
-#include "SkPDFTypes.h"
-#include "SkPDFUtils.h"
+#include "include/docs/SkPDFDocument.h"
+#include "src/core/SkOpts.h"
+#include "src/pdf/SkPDFDocumentPriv.h"
+#include "src/pdf/SkPDFFormXObject.h"
+#include "src/pdf/SkPDFGraphicState.h"
+#include "src/pdf/SkPDFResourceDict.h"
+#include "src/pdf/SkPDFTypes.h"
+#include "src/pdf/SkPDFUtils.h"
 
 static uint32_t hash(const SkShader::GradientInfo& v) {
     uint32_t buffer[] = {
diff --git a/src/pdf/SkPDFGradientShader.h b/src/pdf/SkPDFGradientShader.h
index bde7fc4..63876a7 100644
--- a/src/pdf/SkPDFGradientShader.h
+++ b/src/pdf/SkPDFGradientShader.h
@@ -7,9 +7,9 @@
 #ifndef SkPDFGradientShader_DEFINED
 #define SkPDFGradientShader_DEFINED
 
-#include "SkPDFTypes.h"
-#include "SkPDFUtils.h"
-#include "SkShader.h"
+#include "include/core/SkShader.h"
+#include "src/pdf/SkPDFTypes.h"
+#include "src/pdf/SkPDFUtils.h"
 
 class SkMatrix;
 class SkPDFDocument;
diff --git a/src/pdf/SkPDFGraphicStackState.cpp b/src/pdf/SkPDFGraphicStackState.cpp
index b324a88..a27170b 100644
--- a/src/pdf/SkPDFGraphicStackState.cpp
+++ b/src/pdf/SkPDFGraphicStackState.cpp
@@ -1,11 +1,11 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 
-#include "SkPDFGraphicStackState.h"
+#include "src/pdf/SkPDFGraphicStackState.h"
 
-#include "SkStream.h"
-#include "SkPDFUtils.h"
-#include "SkPathOps.h"
+#include "include/core/SkStream.h"
+#include "include/pathops/SkPathOps.h"
+#include "src/pdf/SkPDFUtils.h"
 
 static SkPath to_path(const SkRect& r) {
     SkPath p;
diff --git a/src/pdf/SkPDFGraphicStackState.h b/src/pdf/SkPDFGraphicStackState.h
index acaebc8..593e9b1 100644
--- a/src/pdf/SkPDFGraphicStackState.h
+++ b/src/pdf/SkPDFGraphicStackState.h
@@ -3,10 +3,10 @@
 #ifndef SkPDFGraphicStackState_DEFINED
 #define SkPDFGraphicStackState_DEFINED
 
-#include "SkClipStack.h"
-#include "SkColor.h"
-#include "SkMatrix.h"
-#include "SkScalar.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkScalar.h"
+#include "src/core/SkClipStack.h"
 
 class SkDynamicMemoryWStream;
 
diff --git a/src/pdf/SkPDFGraphicState.cpp b/src/pdf/SkPDFGraphicState.cpp
index 3426878..5817c11 100644
--- a/src/pdf/SkPDFGraphicState.cpp
+++ b/src/pdf/SkPDFGraphicState.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkPDFGraphicState.h"
+#include "src/pdf/SkPDFGraphicState.h"
 
-#include "SkData.h"
-#include "SkPDFDocument.h"
-#include "SkPDFDocumentPriv.h"
-#include "SkPDFFormXObject.h"
-#include "SkPDFUtils.h"
-#include "SkPaint.h"
-#include "SkTo.h"
+#include "include/core/SkData.h"
+#include "include/core/SkPaint.h"
+#include "include/docs/SkPDFDocument.h"
+#include "include/private/SkTo.h"
+#include "src/pdf/SkPDFDocumentPriv.h"
+#include "src/pdf/SkPDFFormXObject.h"
+#include "src/pdf/SkPDFUtils.h"
 
 static const char* as_pdf_blend_mode_name(SkBlendMode mode) {
     const char* name = SkPDFUtils::BlendModeName(mode);
diff --git a/src/pdf/SkPDFGraphicState.h b/src/pdf/SkPDFGraphicState.h
index 7dcdc43..e5dd192 100644
--- a/src/pdf/SkPDFGraphicState.h
+++ b/src/pdf/SkPDFGraphicState.h
@@ -9,9 +9,9 @@
 #ifndef SkPDFGraphicState_DEFINED
 #define SkPDFGraphicState_DEFINED
 
-#include "SkMacros.h"
-#include "SkOpts.h"
-#include "SkPDFTypes.h"
+#include "include/private/SkMacros.h"
+#include "src/core/SkOpts.h"
+#include "src/pdf/SkPDFTypes.h"
 
 class SkPaint;
 
diff --git a/src/pdf/SkPDFMakeCIDGlyphWidthsArray.cpp b/src/pdf/SkPDFMakeCIDGlyphWidthsArray.cpp
index a4fc64d..9a709f8 100644
--- a/src/pdf/SkPDFMakeCIDGlyphWidthsArray.cpp
+++ b/src/pdf/SkPDFMakeCIDGlyphWidthsArray.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkPDFMakeCIDGlyphWidthsArray.h"
+#include "src/pdf/SkPDFMakeCIDGlyphWidthsArray.h"
 
-#include "SkPDFGlyphUse.h"
-#include "SkPaint.h"
-#include "SkStrike.h"
-#include "SkTo.h"
+#include "include/core/SkPaint.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkStrike.h"
+#include "src/pdf/SkPDFGlyphUse.h"
 
 #include <vector>
 
diff --git a/src/pdf/SkPDFMakeCIDGlyphWidthsArray.h b/src/pdf/SkPDFMakeCIDGlyphWidthsArray.h
index 795d7910..57b529c 100644
--- a/src/pdf/SkPDFMakeCIDGlyphWidthsArray.h
+++ b/src/pdf/SkPDFMakeCIDGlyphWidthsArray.h
@@ -7,7 +7,7 @@
 #ifndef SkPDFMakeCIDGlyphWidthsArray_DEFINED
 #define SkPDFMakeCIDGlyphWidthsArray_DEFINED
 
-#include "SkPDFTypes.h"
+#include "src/pdf/SkPDFTypes.h"
 
 class SkStrike;
 class SkPDFGlyphUse;
diff --git a/src/pdf/SkPDFMakeToUnicodeCmap.cpp b/src/pdf/SkPDFMakeToUnicodeCmap.cpp
index 709f322..edcaa65 100644
--- a/src/pdf/SkPDFMakeToUnicodeCmap.cpp
+++ b/src/pdf/SkPDFMakeToUnicodeCmap.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkPDFMakeToUnicodeCmap.h"
+#include "src/pdf/SkPDFMakeToUnicodeCmap.h"
 
-#include "SkPDFUtils.h"
-#include "SkTo.h"
-#include "SkUTF.h"
+#include "include/private/SkTo.h"
+#include "src/pdf/SkPDFUtils.h"
+#include "src/utils/SkUTF.h"
 
 static void append_tounicode_header(SkDynamicMemoryWStream* cmap,
                                     bool multibyte) {
diff --git a/src/pdf/SkPDFMakeToUnicodeCmap.h b/src/pdf/SkPDFMakeToUnicodeCmap.h
index 6614c01..b77f23d 100644
--- a/src/pdf/SkPDFMakeToUnicodeCmap.h
+++ b/src/pdf/SkPDFMakeToUnicodeCmap.h
@@ -7,8 +7,8 @@
 #ifndef SkPDFMakeToUnicodeCmap_DEFINED
 #define SkPDFMakeToUnicodeCmap_DEFINED
 
-#include "SkPDFFont.h"
-#include "SkStream.h"
+#include "include/core/SkStream.h"
+#include "src/pdf/SkPDFFont.h"
 
 std::unique_ptr<SkStreamAsset> SkPDFMakeToUnicodeCmap(
         const SkUnichar* glyphToUnicode,
diff --git a/src/pdf/SkPDFMetadata.cpp b/src/pdf/SkPDFMetadata.cpp
index a5dbddd..d7c0604 100644
--- a/src/pdf/SkPDFMetadata.cpp
+++ b/src/pdf/SkPDFMetadata.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkPDFMetadata.h"
+#include "src/pdf/SkPDFMetadata.h"
 
-#include "SkMD5.h"
-#include "SkMilestone.h"
-#include "SkPDFTypes.h"
-#include "SkTo.h"
-#include "SkUtils.h"
+#include "include/core/SkMilestone.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkMD5.h"
+#include "src/core/SkUtils.h"
+#include "src/pdf/SkPDFTypes.h"
 
 #include <utility>
 
diff --git a/src/pdf/SkPDFMetadata.h b/src/pdf/SkPDFMetadata.h
index 323a222..590caff 100644
--- a/src/pdf/SkPDFMetadata.h
+++ b/src/pdf/SkPDFMetadata.h
@@ -8,9 +8,9 @@
 #ifndef SkPDFMetadata_DEFINED
 #define SkPDFMetadata_DEFINED
 
-#include "SkPDFDocument.h"
-#include "SkPDFTypes.h"
-#include "SkUUID.h"
+#include "include/docs/SkPDFDocument.h"
+#include "src/pdf/SkPDFTypes.h"
+#include "src/pdf/SkUUID.h"
 
 class SkPDFObject;
 
diff --git a/src/pdf/SkPDFResourceDict.cpp b/src/pdf/SkPDFResourceDict.cpp
index 0754219..6a35624 100644
--- a/src/pdf/SkPDFResourceDict.cpp
+++ b/src/pdf/SkPDFResourceDict.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkPDFResourceDict.h"
-#include "SkPDFTypes.h"
-#include "SkStream.h"
+#include "include/core/SkStream.h"
+#include "src/pdf/SkPDFResourceDict.h"
+#include "src/pdf/SkPDFTypes.h"
 
 // Sanity check that the values of enum ResourceType correspond to the
 // expected values as defined in the arrays below.
diff --git a/src/pdf/SkPDFResourceDict.h b/src/pdf/SkPDFResourceDict.h
index 5cce6a8..4cd9dfa 100644
--- a/src/pdf/SkPDFResourceDict.h
+++ b/src/pdf/SkPDFResourceDict.h
@@ -8,7 +8,7 @@
 #ifndef SkPDFResourceDict_DEFINED
 #define SkPDFResourceDict_DEFINED
 
-#include "SkPDFFont.h"
+#include "src/pdf/SkPDFFont.h"
 
 #include <vector>
 
diff --git a/src/pdf/SkPDFShader.cpp b/src/pdf/SkPDFShader.cpp
index 263d95d..252e5b0 100644
--- a/src/pdf/SkPDFShader.cpp
+++ b/src/pdf/SkPDFShader.cpp
@@ -6,21 +6,21 @@
  */
 
 
-#include "SkPDFShader.h"
+#include "src/pdf/SkPDFShader.h"
 
-#include "SkData.h"
-#include "SkPDFDocument.h"
-#include "SkPDFDevice.h"
-#include "SkPDFDocumentPriv.h"
-#include "SkPDFFormXObject.h"
-#include "SkPDFGradientShader.h"
-#include "SkPDFGraphicState.h"
-#include "SkPDFResourceDict.h"
-#include "SkPDFUtils.h"
-#include "SkScalar.h"
-#include "SkStream.h"
-#include "SkSurface.h"
-#include "SkTemplates.h"
+#include "include/core/SkData.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkSurface.h"
+#include "include/docs/SkPDFDocument.h"
+#include "include/private/SkTemplates.h"
+#include "src/pdf/SkPDFDevice.h"
+#include "src/pdf/SkPDFDocumentPriv.h"
+#include "src/pdf/SkPDFFormXObject.h"
+#include "src/pdf/SkPDFGradientShader.h"
+#include "src/pdf/SkPDFGraphicState.h"
+#include "src/pdf/SkPDFResourceDict.h"
+#include "src/pdf/SkPDFUtils.h"
 
 
 static void draw_image_matrix(SkCanvas* canvas, const SkImage* img,
diff --git a/src/pdf/SkPDFShader.h b/src/pdf/SkPDFShader.h
index 7220395..f022e94 100644
--- a/src/pdf/SkPDFShader.h
+++ b/src/pdf/SkPDFShader.h
@@ -9,10 +9,10 @@
 #ifndef SkPDFShader_DEFINED
 #define SkPDFShader_DEFINED
 
-#include "SkBitmapKey.h"
-#include "SkMacros.h"
-#include "SkPDFTypes.h"
-#include "SkShader.h"
+#include "include/core/SkShader.h"
+#include "include/private/SkMacros.h"
+#include "src/pdf/SkBitmapKey.h"
+#include "src/pdf/SkPDFTypes.h"
 
 
 class SkPDFDocument;
diff --git a/src/pdf/SkPDFSubsetFont.cpp b/src/pdf/SkPDFSubsetFont.cpp
index 0f87ad9..0931071 100644
--- a/src/pdf/SkPDFSubsetFont.cpp
+++ b/src/pdf/SkPDFSubsetFont.cpp
@@ -1,7 +1,7 @@
 // Copyright 2018 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 
-#include "SkPDFSubsetFont.h"
+#include "src/pdf/SkPDFSubsetFont.h"
 
 #if defined(SK_USING_THIRD_PARTY_ICU)
 #include "SkLoadICU.h"
@@ -9,8 +9,8 @@
 
 #if defined(SK_PDF_USE_HARFBUZZ_SUBSET)
 
-#include "SkTo.h"
-#include "SkTemplates.h"
+#include "include/private/SkTemplates.h"
+#include "include/private/SkTo.h"
 
 #include "hb.h"
 #include "hb-subset.h"
diff --git a/src/pdf/SkPDFSubsetFont.h b/src/pdf/SkPDFSubsetFont.h
index d41b14a..b812c52 100644
--- a/src/pdf/SkPDFSubsetFont.h
+++ b/src/pdf/SkPDFSubsetFont.h
@@ -3,9 +3,9 @@
 #ifndef SkPDFSubsetFont_DEFINED
 #define SkPDFSubsetFont_DEFINED
 
-#include "SkData.h"
-#include "SkPDFDocument.h"
-#include "SkPDFGlyphUse.h"
+#include "include/core/SkData.h"
+#include "include/docs/SkPDFDocument.h"
+#include "src/pdf/SkPDFGlyphUse.h"
 
 sk_sp<SkData> SkPDFSubsetFont(sk_sp<SkData> fontData,
                               const SkPDFGlyphUse& glyphUsage,
diff --git a/src/pdf/SkPDFTag.cpp b/src/pdf/SkPDFTag.cpp
index 24366ab..0407e02 100644
--- a/src/pdf/SkPDFTag.cpp
+++ b/src/pdf/SkPDFTag.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkPDFDocumentPriv.h"
-#include "SkPDFTag.h"
+#include "src/pdf/SkPDFDocumentPriv.h"
+#include "src/pdf/SkPDFTag.h"
 
 // Table 333 in PDF 32000-1:2008
 static const char* tag_name_from_type(SkPDF::DocumentStructureType type) {
diff --git a/src/pdf/SkPDFTag.h b/src/pdf/SkPDFTag.h
index 771e065..11158b0 100644
--- a/src/pdf/SkPDFTag.h
+++ b/src/pdf/SkPDFTag.h
@@ -8,10 +8,10 @@
 #ifndef SkPDFTag_DEFINED
 #define SkPDFTag_DEFINED
 
-#include "SkPDFDocument.h"
-#include "SkTArray.h"
-#include "SkArenaAlloc.h"
-#include "SkTHash.h"
+#include "include/docs/SkPDFDocument.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTHash.h"
 
 class SkPDFDocument;
 struct SkPDFTagNode;
diff --git a/src/pdf/SkPDFType1Font.cpp b/src/pdf/SkPDFType1Font.cpp
index 5f4c997..b5e1fad 100644
--- a/src/pdf/SkPDFType1Font.cpp
+++ b/src/pdf/SkPDFType1Font.cpp
@@ -1,10 +1,10 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 
-#include "SkPDFType1Font.h"
+#include "src/pdf/SkPDFType1Font.h"
 
-#include "SkTemplates.h"
-#include "SkTo.h"
+#include "include/private/SkTemplates.h"
+#include "include/private/SkTo.h"
 
 #include <ctype.h>
 
diff --git a/src/pdf/SkPDFType1Font.h b/src/pdf/SkPDFType1Font.h
index 8f8778a..7f9d972 100644
--- a/src/pdf/SkPDFType1Font.h
+++ b/src/pdf/SkPDFType1Font.h
@@ -3,8 +3,8 @@
 #ifndef SkPDFType1Font_DEFINED
 #define SkPDFType1Font_DEFINED
 
-#include "SkPDFDocumentPriv.h"
-#include "SkPDFFont.h"
+#include "src/pdf/SkPDFDocumentPriv.h"
+#include "src/pdf/SkPDFFont.h"
 
 void SkPDFEmitType1Font(const SkPDFFont&, SkPDFDocument*);
 
diff --git a/src/pdf/SkPDFTypes.cpp b/src/pdf/SkPDFTypes.cpp
index 90ed4ab..9a74fd2 100644
--- a/src/pdf/SkPDFTypes.cpp
+++ b/src/pdf/SkPDFTypes.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "SkPDFTypes.h"
+#include "src/pdf/SkPDFTypes.h"
 
-#include "SkData.h"
-#include "SkDeflate.h"
-#include "SkExecutor.h"
-#include "SkMakeUnique.h"
-#include "SkPDFDocumentPriv.h"
-#include "SkPDFUnion.h"
-#include "SkPDFUtils.h"
-#include "SkStream.h"
-#include "SkStreamPriv.h"
-#include "SkTo.h"
+#include "include/core/SkData.h"
+#include "include/core/SkExecutor.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkStreamPriv.h"
+#include "src/pdf/SkDeflate.h"
+#include "src/pdf/SkPDFDocumentPriv.h"
+#include "src/pdf/SkPDFUnion.h"
+#include "src/pdf/SkPDFUtils.h"
 
 #include <new>
 
diff --git a/src/pdf/SkPDFTypes.h b/src/pdf/SkPDFTypes.h
index 7be009a..06c90e2 100644
--- a/src/pdf/SkPDFTypes.h
+++ b/src/pdf/SkPDFTypes.h
@@ -8,12 +8,12 @@
 #ifndef SkPDFTypes_DEFINED
 #define SkPDFTypes_DEFINED
 
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkTHash.h"
-#include "SkTo.h"
-#include "SkTypes.h"
-#include "SkMakeUnique.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTHash.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkMakeUnique.h"
 
 #include <new>
 #include <type_traits>
diff --git a/src/pdf/SkPDFUnion.h b/src/pdf/SkPDFUnion.h
index e8a222f..9eeec20 100644
--- a/src/pdf/SkPDFUnion.h
+++ b/src/pdf/SkPDFUnion.h
@@ -3,7 +3,7 @@
 #ifndef SkPDFUnion_DEFINED
 #define SkPDFUnion_DEFINED
 
-#include "SkPDFTypes.h"
+#include "src/pdf/SkPDFTypes.h"
 
 template <class T>
 class SkStorageFor {
diff --git a/src/pdf/SkPDFUtils.cpp b/src/pdf/SkPDFUtils.cpp
index 28471af..cc6db75 100644
--- a/src/pdf/SkPDFUtils.cpp
+++ b/src/pdf/SkPDFUtils.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkPDFUtils.h"
+#include "src/pdf/SkPDFUtils.h"
 
-#include "SkData.h"
-#include "SkFixed.h"
-#include "SkGeometry.h"
-#include "SkImage_Base.h"
-#include "SkPDFResourceDict.h"
-#include "SkPDFTypes.h"
-#include "SkStream.h"
-#include "SkString.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/private/SkFixed.h"
+#include "src/core/SkGeometry.h"
+#include "src/image/SkImage_Base.h"
+#include "src/pdf/SkPDFResourceDict.h"
+#include "src/pdf/SkPDFTypes.h"
 
 #include <cmath>
 
diff --git a/src/pdf/SkPDFUtils.h b/src/pdf/SkPDFUtils.h
index a506f68..90b1c57 100644
--- a/src/pdf/SkPDFUtils.h
+++ b/src/pdf/SkPDFUtils.h
@@ -7,14 +7,14 @@
 #ifndef SkPDFUtils_DEFINED
 #define SkPDFUtils_DEFINED
 
-#include "SkFloatToDecimal.h"
-#include "SkPDFTypes.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkShader.h"
-#include "SkShaderBase.h"
-#include "SkStream.h"
-#include "SkUtils.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkStream.h"
+#include "src/core/SkUtils.h"
+#include "src/pdf/SkPDFTypes.h"
+#include "src/shaders/SkShaderBase.h"
+#include "src/utils/SkFloatToDecimal.h"
 
 class SkMatrix;
 class SkPDFArray;
diff --git a/src/ports/SkDebug_android.cpp b/src/ports/SkDebug_android.cpp
index 6821834..5e32174 100644
--- a/src/ports/SkDebug_android.cpp
+++ b/src/ports/SkDebug_android.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_ANDROID)
 
 #include <stdio.h>
diff --git a/src/ports/SkDebug_stdio.cpp b/src/ports/SkDebug_stdio.cpp
index ec4e3fe..1bba63c 100644
--- a/src/ports/SkDebug_stdio.cpp
+++ b/src/ports/SkDebug_stdio.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if !defined(SK_BUILD_FOR_WIN) && !defined(SK_BUILD_FOR_ANDROID)
 
 #include <stdarg.h>
diff --git a/src/ports/SkDebug_win.cpp b/src/ports/SkDebug_win.cpp
index 7a611cf..2ee665c 100644
--- a/src/ports/SkDebug_win.cpp
+++ b/src/ports/SkDebug_win.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if defined(SK_BUILD_FOR_WIN)
 
-#include "SkLeanWindows.h"
+#include "include/private/SkLeanWindows.h"
 
 #include <stdarg.h>
 #include <stdio.h>
diff --git a/src/ports/SkDiscardableMemory_none.cpp b/src/ports/SkDiscardableMemory_none.cpp
index 7e5c0ae..794775a0 100644
--- a/src/ports/SkDiscardableMemory_none.cpp
+++ b/src/ports/SkDiscardableMemory_none.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkDiscardableMemory.h"
-#include "SkDiscardableMemoryPool.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "src/core/SkDiscardableMemory.h"
+#include "src/lazy/SkDiscardableMemoryPool.h"
 
 SkDiscardableMemory* SkDiscardableMemory::Create(size_t bytes) {
     return SkGetGlobalDiscardableMemoryPool()->create(bytes);
diff --git a/src/ports/SkFontConfigInterface.cpp b/src/ports/SkFontConfigInterface.cpp
index f81c487..5569c69 100644
--- a/src/ports/SkFontConfigInterface.cpp
+++ b/src/ports/SkFontConfigInterface.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontConfigInterface.h"
-#include "SkFontMgr.h"
-#include "SkMutex.h"
-#include "SkRefCnt.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkRefCnt.h"
+#include "include/ports/SkFontConfigInterface.h"
+#include "include/private/SkMutex.h"
 
 SK_DECLARE_STATIC_MUTEX(gFontConfigInterfaceMutex);
 static SkFontConfigInterface* gFontConfigInterface;
diff --git a/src/ports/SkFontConfigInterface_direct.cpp b/src/ports/SkFontConfigInterface_direct.cpp
index bbfcfdf..b471692 100644
--- a/src/ports/SkFontConfigInterface_direct.cpp
+++ b/src/ports/SkFontConfigInterface_direct.cpp
@@ -7,24 +7,24 @@
 
 /* migrated from chrome/src/skia/ext/SkFontHost_fontconfig_direct.cpp */
 
-#include "SkAutoMalloc.h"
-#include "SkBuffer.h"
-#include "SkFixed.h"
-#include "SkFontConfigInterface_direct.h"
-#include "SkFontStyle.h"
-#include "SkMutex.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkTArray.h"
-#include "SkTDArray.h"
-#include "SkTemplates.h"
-#include "SkTypeface.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkFixed.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTDArray.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkBuffer.h"
+#include "src/ports/SkFontConfigInterface_direct.h"
 
 #include <fontconfig/fontconfig.h>
 #include <unistd.h>
 
 #ifdef SK_DEBUG
-#    include "SkTLS.h"
+#    include "src/core/SkTLS.h"
 #endif
 
 namespace {
diff --git a/src/ports/SkFontConfigInterface_direct.h b/src/ports/SkFontConfigInterface_direct.h
index ac81cff..f31047f 100644
--- a/src/ports/SkFontConfigInterface_direct.h
+++ b/src/ports/SkFontConfigInterface_direct.h
@@ -9,7 +9,7 @@
 #ifndef SKFONTCONFIGINTERFACE_DIRECT_H_
 #define SKFONTCONFIGINTERFACE_DIRECT_H_
 
-#include "SkFontConfigInterface.h"
+#include "include/ports/SkFontConfigInterface.h"
 
 #include <fontconfig/fontconfig.h>
 
diff --git a/src/ports/SkFontConfigInterface_direct_factory.cpp b/src/ports/SkFontConfigInterface_direct_factory.cpp
index 116ba83..7b70b64 100644
--- a/src/ports/SkFontConfigInterface_direct_factory.cpp
+++ b/src/ports/SkFontConfigInterface_direct_factory.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontConfigInterface_direct.h"
-#include "SkOnce.h"
+#include "include/private/SkOnce.h"
+#include "src/ports/SkFontConfigInterface_direct.h"
 
 SkFontConfigInterface* SkFontConfigInterface::GetSingletonDirectInterface() {
     static SkFontConfigInterface* singleton;
diff --git a/src/ports/SkFontConfigTypeface.h b/src/ports/SkFontConfigTypeface.h
index 49f9853..269486d 100644
--- a/src/ports/SkFontConfigTypeface.h
+++ b/src/ports/SkFontConfigTypeface.h
@@ -8,11 +8,11 @@
 #ifndef SkFontConfigTypeface_DEFINED
 #define SkFontConfigTypeface_DEFINED
 
-#include "SkFontConfigInterface.h"
-#include "SkFontDescriptor.h"
-#include "SkFontHost_FreeType_common.h"
-#include "SkRefCnt.h"
-#include "SkStream.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkStream.h"
+#include "include/ports/SkFontConfigInterface.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/ports/SkFontHost_FreeType_common.h"
 
 class SkFontDescriptor;
 
diff --git a/src/ports/SkFontHost_FreeType.cpp b/src/ports/SkFontHost_FreeType.cpp
index eed67ee..8d8b45a 100644
--- a/src/ports/SkFontHost_FreeType.cpp
+++ b/src/ports/SkFontHost_FreeType.cpp
@@ -5,30 +5,30 @@
  * found in the LICENSE file.
  */
 
-#include "SkAdvancedTypefaceMetrics.h"
-#include "SkBitmap.h"
-#include "SkCallableTraits.h"
-#include "SkCanvas.h"
-#include "SkColorData.h"
-#include "SkDescriptor.h"
-#include "SkFDot6.h"
-#include "SkFontDescriptor.h"
-#include "SkFontHost_FreeType_common.h"
-#include "SkFontMetrics.h"
-#include "SkGlyph.h"
-#include "SkMakeUnique.h"
-#include "SkMalloc.h"
-#include "SkMask.h"
-#include "SkMaskGamma.h"
-#include "SkMatrix22.h"
-#include "SkMutex.h"
-#include "SkOTUtils.h"
-#include "SkPath.h"
-#include "SkScalerContext.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkTemplates.h"
-#include "SkTo.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkMalloc.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkTemplates.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkAdvancedTypefaceMetrics.h"
+#include "src/core/SkDescriptor.h"
+#include "src/core/SkFDot6.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/core/SkGlyph.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkMask.h"
+#include "src/core/SkMaskGamma.h"
+#include "src/core/SkScalerContext.h"
+#include "src/ports/SkFontHost_FreeType_common.h"
+#include "src/sfnt/SkOTUtils.h"
+#include "src/utils/SkCallableTraits.h"
+#include "src/utils/SkMatrix22.h"
 
 #include <memory>
 
@@ -1549,7 +1549,7 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkUtils.h"
+#include "src/core/SkUtils.h"
 
 // Just made up, so we don't end up storing 1000s of entries
 constexpr int kMaxC2GCacheCount = 512;
@@ -1822,7 +1822,7 @@
     return true;
 }
 
-#include "SkTSearch.h"
+#include "include/private/SkTSearch.h"
 bool SkTypeface_FreeType::Scanner::scanFont(
     SkStreamAsset* stream, int ttcIndex,
     SkString* name, SkFontStyle* style, bool* isFixedPitch, AxisDefinitions* axes) const
diff --git a/src/ports/SkFontHost_FreeType_common.cpp b/src/ports/SkFontHost_FreeType_common.cpp
index 83ae594..7954d8b 100644
--- a/src/ports/SkFontHost_FreeType_common.cpp
+++ b/src/ports/SkFontHost_FreeType_common.cpp
@@ -6,14 +6,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkColorData.h"
-#include "SkFDot6.h"
-#include "SkFontHost_FreeType_common.h"
-#include "SkPath.h"
-#include "SkTo.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkFDot6.h"
+#include "src/ports/SkFontHost_FreeType_common.h"
 
 #include <utility>
 
diff --git a/src/ports/SkFontHost_FreeType_common.h b/src/ports/SkFontHost_FreeType_common.h
index 00b359e..d225d87 100644
--- a/src/ports/SkFontHost_FreeType_common.h
+++ b/src/ports/SkFontHost_FreeType_common.h
@@ -9,14 +9,14 @@
 #ifndef SKFONTHOST_FREETYPE_COMMON_H_
 #define SKFONTHOST_FREETYPE_COMMON_H_
 
-#include "SkCharToGlyphCache.h"
-#include "SkGlyph.h"
-#include "SkMutex.h"
-#include "SkScalerContext.h"
-#include "SkTypeface.h"
-#include "SkTypes.h"
+#include "include/core/SkTypeface.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkMutex.h"
+#include "src/core/SkGlyph.h"
+#include "src/core/SkScalerContext.h"
+#include "src/utils/SkCharToGlyphCache.h"
 
-#include "SkFontMgr.h"
+#include "include/core/SkFontMgr.h"
 
 // These are forward declared to avoid pimpl but also hide the FreeType implementation.
 typedef struct FT_LibraryRec_* FT_Library;
diff --git a/src/ports/SkFontHost_mac.cpp b/src/ports/SkFontHost_mac.cpp
index 5d60fa7..c9be0e8 100644
--- a/src/ports/SkFontHost_mac.cpp
+++ b/src/ports/SkFontHost_mac.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"  // Keep this before any #ifdef ...
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
 
 #ifdef SK_BUILD_FOR_MAC
@@ -19,36 +19,36 @@
 #include <CoreFoundation/CoreFoundation.h>
 #endif
 
-#include "mac/SkUniqueCFRef.h"
-#include "SkAdvancedTypefaceMetrics.h"
-#include "SkAutoMalloc.h"
-#include "SkCGUtils.h"
-#include "SkColorData.h"
-#include "SkDescriptor.h"
-#include "SkEndian.h"
-#include "SkFloatingPoint.h"
-#include "SkFontDescriptor.h"
-#include "SkFontMetrics.h"
-#include "SkFontMgr.h"
-#include "SkGlyph.h"
-#include "SkMakeUnique.h"
-#include "SkMaskGamma.h"
-#include "SkMathPriv.h"
-#include "SkMutex.h"
-#include "SkOTTable_OS_2.h"
-#include "SkOTUtils.h"
-#include "SkOnce.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkSFNTHeader.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkTemplates.h"
-#include "SkTo.h"
-#include "SkTypefaceCache.h"
-#include "SkTypeface_mac.h"
-#include "SkUTF.h"
-#include "SkUtils.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/ports/SkTypeface_mac.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkFloatingPoint.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkOnce.h"
+#include "include/private/SkTemplates.h"
+#include "include/private/SkTo.h"
+#include "include/utils/mac/SkCGUtils.h"
+#include "src/core/SkAdvancedTypefaceMetrics.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkDescriptor.h"
+#include "src/core/SkEndian.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/core/SkGlyph.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkMaskGamma.h"
+#include "src/core/SkMathPriv.h"
+#include "src/core/SkTypefaceCache.h"
+#include "src/core/SkUtils.h"
+#include "src/sfnt/SkOTTable_OS_2.h"
+#include "src/sfnt/SkOTUtils.h"
+#include "src/sfnt/SkSFNTHeader.h"
+#include "src/utils/SkUTF.h"
+#include "src/utils/mac/SkUniqueCFRef.h"
 
 #include <dlfcn.h>
 
@@ -1217,7 +1217,7 @@
     glyph->fHeight = SkToU16(skIBounds.height());
 }
 
-#include "SkColorData.h"
+#include "include/private/SkColorData.h"
 
 static constexpr uint8_t sk_pow2_table(size_t i) {
     return SkToU8(((i * i + 128) / 255));
@@ -2399,7 +2399,7 @@
     return true;
 }
 
-#include "SkFontMgr.h"
+#include "include/core/SkFontMgr.h"
 
 static inline int sqr(int value) {
     SkASSERT(SkAbs32(value) < 0x7FFF);  // check for overflow
diff --git a/src/ports/SkFontHost_win.cpp b/src/ports/SkFontHost_win.cpp
index d3efc61..e2f0f31 100644
--- a/src/ports/SkFontHost_win.cpp
+++ b/src/ports/SkFontHost_win.cpp
@@ -5,36 +5,36 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_WIN)
 
-#include "SkAdvancedTypefaceMetrics.h"
-#include "SkBase64.h"
-#include "SkColorData.h"
-#include "SkData.h"
-#include "SkDescriptor.h"
-#include "SkFontDescriptor.h"
-#include "SkFontMetrics.h"
-#include "SkGlyph.h"
-#include "SkHRESULT.h"
-#include "SkMacros.h"
-#include "SkMakeUnique.h"
-#include "SkMaskGamma.h"
-#include "SkMatrix22.h"
-#include "SkOTTable_OS_2.h"
-#include "SkOTTable_maxp.h"
-#include "SkOTTable_name.h"
-#include "SkOTUtils.h"
-#include "SkOnce.h"
-#include "SkPath.h"
-#include "SkSFNTHeader.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkTemplates.h"
-#include "SkTo.h"
-#include "SkTypefaceCache.h"
-#include "SkTypeface_win.h"
-#include "SkUtils.h"
+#include "include/core/SkData.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/ports/SkTypeface_win.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkMacros.h"
+#include "include/private/SkOnce.h"
+#include "include/private/SkTemplates.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkBase64.h"
+#include "src/core/SkAdvancedTypefaceMetrics.h"
+#include "src/core/SkDescriptor.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/core/SkGlyph.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkMaskGamma.h"
+#include "src/core/SkTypefaceCache.h"
+#include "src/core/SkUtils.h"
+#include "src/sfnt/SkOTTable_OS_2.h"
+#include "src/sfnt/SkOTTable_maxp.h"
+#include "src/sfnt/SkOTTable_name.h"
+#include "src/sfnt/SkOTUtils.h"
+#include "src/sfnt/SkSFNTHeader.h"
+#include "src/utils/SkMatrix22.h"
+#include "src/utils/win/SkHRESULT.h"
 
 #include <tchar.h>
 #include <usp10.h>
@@ -1023,7 +1023,7 @@
     return gTableClearType;
 }
 
-#include "SkColorData.h"
+#include "include/private/SkColorData.h"
 
 //Cannot assume that the input rgb is gray due to possible setting of kGenA8FromLCD_Flag.
 template<bool APPLY_PREBLEND>
@@ -2117,8 +2117,8 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkFontMgr.h"
-#include "SkDataTable.h"
+#include "include/core/SkDataTable.h"
+#include "include/core/SkFontMgr.h"
 
 static bool valid_logfont_for_enum(const LOGFONT& lf) {
     // TODO: Vector FON is unsupported and should not be listed.
diff --git a/src/ports/SkFontMgr_FontConfigInterface.cpp b/src/ports/SkFontMgr_FontConfigInterface.cpp
index 7cdd12c..52dba25 100644
--- a/src/ports/SkFontMgr_FontConfigInterface.cpp
+++ b/src/ports/SkFontMgr_FontConfigInterface.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontConfigInterface.h"
-#include "SkFontConfigTypeface.h"
-#include "SkFontDescriptor.h"
-#include "SkFontMgr.h"
-#include "SkFontMgr_FontConfigInterface.h"
-#include "SkFontStyle.h"
-#include "SkMakeUnique.h"
-#include "SkMutex.h"
-#include "SkString.h"
-#include "SkTypeface.h"
-#include "SkTypefaceCache.h"
-#include "SkResourceCache.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypeface.h"
+#include "include/ports/SkFontConfigInterface.h"
+#include "include/ports/SkFontMgr_FontConfigInterface.h"
+#include "include/private/SkMutex.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkResourceCache.h"
+#include "src/core/SkTypefaceCache.h"
+#include "src/ports/SkFontConfigTypeface.h"
 #include <new>
 
 std::unique_ptr<SkStreamAsset> SkTypeface_FCI::onOpenStream(int* ttcIndex) const {
diff --git a/src/ports/SkFontMgr_FontConfigInterface_factory.cpp b/src/ports/SkFontMgr_FontConfigInterface_factory.cpp
index a4ee138..cb64ec1 100644
--- a/src/ports/SkFontMgr_FontConfigInterface_factory.cpp
+++ b/src/ports/SkFontMgr_FontConfigInterface_factory.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontConfigInterface.h"
-#include "SkFontMgr.h"
-#include "SkFontMgr_FontConfigInterface.h"
+#include "include/core/SkFontMgr.h"
+#include "include/ports/SkFontConfigInterface.h"
+#include "include/ports/SkFontMgr_FontConfigInterface.h"
 
 sk_sp<SkFontMgr> SkFontMgr::Factory() {
     sk_sp<SkFontConfigInterface> fci(SkFontConfigInterface::RefGlobal());
diff --git a/src/ports/SkFontMgr_android.cpp b/src/ports/SkFontMgr_android.cpp
index fdce4f9..34072f7 100644
--- a/src/ports/SkFontMgr_android.cpp
+++ b/src/ports/SkFontMgr_android.cpp
@@ -5,27 +5,27 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "SkData.h"
-#include "SkFixed.h"
-#include "SkFontDescriptor.h"
-#include "SkFontHost_FreeType_common.h"
-#include "SkFontMgr.h"
-#include "SkFontMgr_android.h"
-#include "SkFontMgr_android_parser.h"
-#include "SkFontStyle.h"
-#include "SkMakeUnique.h"
-#include "SkOSFile.h"
-#include "SkPaint.h"
-#include "SkRefCnt.h"
-#include "SkString.h"
-#include "SkStream.h"
-#include "SkTArray.h"
-#include "SkTDArray.h"
-#include "SkTSearch.h"
-#include "SkTemplates.h"
-#include "SkTypefaceCache.h"
+#include "include/core/SkData.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/ports/SkFontMgr_android.h"
+#include "include/private/SkFixed.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTDArray.h"
+#include "include/private/SkTSearch.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkOSFile.h"
+#include "src/core/SkTypefaceCache.h"
+#include "src/ports/SkFontHost_FreeType_common.h"
+#include "src/ports/SkFontMgr_android_parser.h"
 
 #include <algorithm>
 #include <limits>
diff --git a/src/ports/SkFontMgr_android_factory.cpp b/src/ports/SkFontMgr_android_factory.cpp
index 88e0558..9ec10a9 100644
--- a/src/ports/SkFontMgr_android_factory.cpp
+++ b/src/ports/SkFontMgr_android_factory.cpp
@@ -4,11 +4,11 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_ANDROID)
 
-#include "SkFontMgr.h"
-#include "SkFontMgr_android.h"
+#include "include/core/SkFontMgr.h"
+#include "include/ports/SkFontMgr_android.h"
 
 sk_sp<SkFontMgr> SkFontMgr::Factory() {
     return SkFontMgr_New_Android(nullptr);
diff --git a/src/ports/SkFontMgr_android_parser.cpp b/src/ports/SkFontMgr_android_parser.cpp
index 75710b0..8a026c6 100644
--- a/src/ports/SkFontMgr_android_parser.cpp
+++ b/src/ports/SkFontMgr_android_parser.cpp
@@ -7,16 +7,16 @@
 
 // Despite the name and location, this is portable code.
 
-#include "SkFixed.h"
-#include "SkFontMgr.h"
-#include "SkFontMgr_android_parser.h"
-#include "SkMalloc.h"
-#include "SkOSFile.h"
-#include "SkStream.h"
-#include "SkTDArray.h"
-#include "SkTSearch.h"
-#include "SkTemplates.h"
-#include "SkTLogic.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkFixed.h"
+#include "include/private/SkMalloc.h"
+#include "include/private/SkTDArray.h"
+#include "include/private/SkTLogic.h"
+#include "include/private/SkTSearch.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkOSFile.h"
+#include "src/ports/SkFontMgr_android_parser.h"
 
 #include <expat.h>
 
diff --git a/src/ports/SkFontMgr_android_parser.h b/src/ports/SkFontMgr_android_parser.h
index b1f9892..7a33f30 100644
--- a/src/ports/SkFontMgr_android_parser.h
+++ b/src/ports/SkFontMgr_android_parser.h
@@ -8,12 +8,12 @@
 #ifndef SkFontMgr_android_parser_DEFINED
 #define SkFontMgr_android_parser_DEFINED
 
-#include "SkFontMgr.h"
-#include "SkString.h"
-#include "SkTArray.h"
-#include "SkTDArray.h"
-#include "SkTHash.h"
-#include "SkTypes.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTDArray.h"
+#include "include/private/SkTHash.h"
 
 #include <climits>
 #include <limits>
diff --git a/src/ports/SkFontMgr_custom.cpp b/src/ports/SkFontMgr_custom.cpp
index 7e1c668..6ee4e54 100644
--- a/src/ports/SkFontMgr_custom.cpp
+++ b/src/ports/SkFontMgr_custom.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontArguments.h"
-#include "SkFontDescriptor.h"
-#include "SkFontHost_FreeType_common.h"
-#include "SkFontMgr.h"
-#include "SkFontMgr_custom.h"
-#include "SkFontStyle.h"
-#include "SkMakeUnique.h"
-#include "SkRefCnt.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkTArray.h"
-#include "SkTemplates.h"
-#include "SkTypeface.h"
-#include "SkTypes.h"
+#include "include/core/SkFontArguments.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypeface.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/ports/SkFontHost_FreeType_common.h"
+#include "src/ports/SkFontMgr_custom.h"
 
 #include <limits>
 #include <memory>
diff --git a/src/ports/SkFontMgr_custom.h b/src/ports/SkFontMgr_custom.h
index c9dea3f..9f6e8b6 100644
--- a/src/ports/SkFontMgr_custom.h
+++ b/src/ports/SkFontMgr_custom.h
@@ -8,13 +8,13 @@
 #ifndef SkFontMgr_custom_DEFINED
 #define SkFontMgr_custom_DEFINED
 
-#include "SkFontHost_FreeType_common.h"
-#include "SkFontMgr.h"
-#include "SkFontStyle.h"
-#include "SkRefCnt.h"
-#include "SkString.h"
-#include "SkTArray.h"
-#include "SkTypes.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTArray.h"
+#include "src/ports/SkFontHost_FreeType_common.h"
 
 class SkData;
 class SkFontDescriptor;
diff --git a/src/ports/SkFontMgr_custom_directory.cpp b/src/ports/SkFontMgr_custom_directory.cpp
index 4ff685f..c4c1c35 100644
--- a/src/ports/SkFontMgr_custom_directory.cpp
+++ b/src/ports/SkFontMgr_custom_directory.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontMgr_custom.h"
-#include "SkFontMgr_directory.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkStream.h"
+#include "include/core/SkStream.h"
+#include "include/ports/SkFontMgr_directory.h"
+#include "src/core/SkOSFile.h"
+#include "src/ports/SkFontMgr_custom.h"
+#include "src/utils/SkOSPath.h"
 
 class DirectorySystemFontLoader : public SkFontMgr_Custom::SystemFontLoader {
 public:
diff --git a/src/ports/SkFontMgr_custom_directory_factory.cpp b/src/ports/SkFontMgr_custom_directory_factory.cpp
index e8d4bb3..3bb52eb 100644
--- a/src/ports/SkFontMgr_custom_directory_factory.cpp
+++ b/src/ports/SkFontMgr_custom_directory_factory.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontMgr.h"
-#include "SkFontMgr_directory.h"
+#include "include/core/SkFontMgr.h"
+#include "include/ports/SkFontMgr_directory.h"
 
 #ifndef SK_FONT_FILE_PREFIX
 #    define SK_FONT_FILE_PREFIX "/usr/share/fonts/"
diff --git a/src/ports/SkFontMgr_custom_embedded.cpp b/src/ports/SkFontMgr_custom_embedded.cpp
index bb8d9f2..758976a 100644
--- a/src/ports/SkFontMgr_custom_embedded.cpp
+++ b/src/ports/SkFontMgr_custom_embedded.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontDescriptor.h"
-#include "SkFontMgr_custom.h"
-#include "SkMakeUnique.h"
-#include "SkStream.h"
+#include "include/core/SkStream.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/ports/SkFontMgr_custom.h"
 
 struct SkEmbeddedResource { const uint8_t* data; size_t size; };
 struct SkEmbeddedResourceHeader { const SkEmbeddedResource* entries; int count; };
diff --git a/src/ports/SkFontMgr_custom_embedded_factory.cpp b/src/ports/SkFontMgr_custom_embedded_factory.cpp
index 7a6df43..82e1b84 100644
--- a/src/ports/SkFontMgr_custom_embedded_factory.cpp
+++ b/src/ports/SkFontMgr_custom_embedded_factory.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontMgr.h"
+#include "include/core/SkFontMgr.h"
 
 struct SkEmbeddedResource { const uint8_t* data; size_t size; };
 struct SkEmbeddedResourceHeader { const SkEmbeddedResource* entries; int count; };
diff --git a/src/ports/SkFontMgr_custom_empty.cpp b/src/ports/SkFontMgr_custom_empty.cpp
index 8732bc3..0e3e18a 100644
--- a/src/ports/SkFontMgr_custom_empty.cpp
+++ b/src/ports/SkFontMgr_custom_empty.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontMgr_custom.h"
-#include "SkFontMgr_empty.h"
+#include "include/ports/SkFontMgr_empty.h"
+#include "src/ports/SkFontMgr_custom.h"
 
 class EmptyFontLoader : public SkFontMgr_Custom::SystemFontLoader {
 public:
diff --git a/src/ports/SkFontMgr_custom_empty_factory.cpp b/src/ports/SkFontMgr_custom_empty_factory.cpp
index da36500..b97c199 100644
--- a/src/ports/SkFontMgr_custom_empty_factory.cpp
+++ b/src/ports/SkFontMgr_custom_empty_factory.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontMgr.h"
-#include "SkFontMgr_empty.h"
+#include "include/core/SkFontMgr.h"
+#include "include/ports/SkFontMgr_empty.h"
 
 sk_sp<SkFontMgr> SkFontMgr::Factory() {
     return SkFontMgr_New_Custom_Empty();
diff --git a/src/ports/SkFontMgr_empty_factory.cpp b/src/ports/SkFontMgr_empty_factory.cpp
index 9ca9e65..69410c5 100644
--- a/src/ports/SkFontMgr_empty_factory.cpp
+++ b/src/ports/SkFontMgr_empty_factory.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontMgr.h"
+#include "include/core/SkFontMgr.h"
 
 sk_sp<SkFontMgr> SkFontMgr::Factory() {
     // Always return nullptr, an empty SkFontMgr will be used.
diff --git a/src/ports/SkFontMgr_fontconfig.cpp b/src/ports/SkFontMgr_fontconfig.cpp
index c78e400..3355e5c 100644
--- a/src/ports/SkFontMgr_fontconfig.cpp
+++ b/src/ports/SkFontMgr_fontconfig.cpp
@@ -5,25 +5,25 @@
  * found in the LICENSE file.
  */
 
-#include "SkAdvancedTypefaceMetrics.h"
-#include "SkDataTable.h"
-#include "SkFixed.h"
-#include "SkFontDescriptor.h"
-#include "SkFontHost_FreeType_common.h"
-#include "SkFontMgr.h"
-#include "SkFontStyle.h"
-#include "SkMakeUnique.h"
-#include "SkMath.h"
-#include "SkMutex.h"
-#include "SkOSFile.h"
-#include "SkRefCnt.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkTDArray.h"
-#include "SkTemplates.h"
-#include "SkTypeface.h"
-#include "SkTypefaceCache.h"
-#include "SkTypes.h"
+#include "include/core/SkDataTable.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkMath.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypeface.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkFixed.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkTDArray.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkAdvancedTypefaceMetrics.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkOSFile.h"
+#include "src/core/SkTypefaceCache.h"
+#include "src/ports/SkFontHost_FreeType_common.h"
 
 #include <fontconfig/fontconfig.h>
 #include <string.h>
@@ -40,7 +40,7 @@
 #endif
 
 #ifdef SK_DEBUG
-#    include "SkTLS.h"
+#    include "src/core/SkTLS.h"
 #endif
 
 /** Since FontConfig is poorly documented, this gives a high level overview:
diff --git a/src/ports/SkFontMgr_fontconfig_factory.cpp b/src/ports/SkFontMgr_fontconfig_factory.cpp
index 2f5ffb4..a011ec5 100644
--- a/src/ports/SkFontMgr_fontconfig_factory.cpp
+++ b/src/ports/SkFontMgr_fontconfig_factory.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontMgr.h"
-#include "SkFontMgr_fontconfig.h"
-#include "SkTypes.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkTypes.h"
+#include "include/ports/SkFontMgr_fontconfig.h"
 
 sk_sp<SkFontMgr> SkFontMgr::Factory() {
     return SkFontMgr_New_FontConfig(nullptr);
diff --git a/src/ports/SkFontMgr_fuchsia.cpp b/src/ports/SkFontMgr_fuchsia.cpp
index 885f528..e3edbc5 100644
--- a/src/ports/SkFontMgr_fuchsia.cpp
+++ b/src/ports/SkFontMgr_fuchsia.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontMgr_fuchsia.h"
+#include "include/ports/SkFontMgr_fuchsia.h"
 
 #include <fuchsia/fonts/cpp/fidl.h>
 #include <lib/zx/vmar.h>
@@ -13,13 +13,13 @@
 #include <memory>
 #include <unordered_map>
 
-#include "third_party/skia/src/core/SkFontDescriptor.h"
-#include "third_party/skia/src/ports/SkFontMgr_custom.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/ports/SkFontMgr_custom.h"
 
-#include "SkFontMgr.h"
-#include "SkStream.h"
-#include "SkTypeface.h"
-#include "SkTypefaceCache.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
+#include "src/core/SkTypefaceCache.h"
 
 void UnmapMemory(const void* buffer, uint64_t size) {
     static_assert(sizeof(void*) == sizeof(uint64_t), "pointers aren't 64-bit");
diff --git a/src/ports/SkFontMgr_win_dw.cpp b/src/ports/SkFontMgr_win_dw.cpp
index 60e3e28..33d7e5d 100644
--- a/src/ports/SkFontMgr_win_dw.cpp
+++ b/src/ports/SkFontMgr_win_dw.cpp
@@ -4,25 +4,25 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkDWriteNTDDI_VERSION.h"
+#include "src/utils/win/SkDWriteNTDDI_VERSION.h"
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_WIN)
 
-#include "SkDWrite.h"
-#include "SkDWriteFontFileStream.h"
-#include "SkEndian.h"
-#include "SkFontMgr.h"
-#include "SkHRESULT.h"
-#include "SkMakeUnique.h"
-#include "SkMutex.h"
-#include "SkStream.h"
-#include "SkTScopedComPtr.h"
-#include "SkTypeface.h"
-#include "SkTypefaceCache.h"
-#include "SkTypeface_win_dw.h"
-#include "SkTypes.h"
-#include "SkUTF.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkMutex.h"
+#include "src/core/SkEndian.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkTypefaceCache.h"
+#include "src/ports/SkTypeface_win_dw.h"
+#include "src/utils/SkUTF.h"
+#include "src/utils/win/SkDWrite.h"
+#include "src/utils/win/SkDWriteFontFileStream.h"
+#include "src/utils/win/SkHRESULT.h"
+#include "src/utils/win/SkTScopedComPtr.h"
 
 #include <dwrite.h>
 #include <dwrite_2.h>
@@ -1125,7 +1125,7 @@
 }
 
 ////////////////////////////////////////////////////////////////////////////////
-#include "SkTypeface_win.h"
+#include "include/ports/SkTypeface_win.h"
 
 SK_API sk_sp<SkFontMgr> SkFontMgr_New_DirectWrite(IDWriteFactory* factory,
                                                   IDWriteFontCollection* collection) {
@@ -1169,7 +1169,7 @@
                                              localeName, localeNameLen);
 }
 
-#include "SkFontMgr_indirect.h"
+#include "include/ports/SkFontMgr_indirect.h"
 SK_API sk_sp<SkFontMgr> SkFontMgr_New_DirectWriteRenderer(sk_sp<SkRemotableFontMgr> proxy) {
     sk_sp<SkFontMgr> impl(SkFontMgr_New_DirectWrite());
     if (!impl) {
diff --git a/src/ports/SkFontMgr_win_dw_factory.cpp b/src/ports/SkFontMgr_win_dw_factory.cpp
index b1c010d..08195c5 100644
--- a/src/ports/SkFontMgr_win_dw_factory.cpp
+++ b/src/ports/SkFontMgr_win_dw_factory.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_WIN)  // And !SKIA_GDI?
 
-#include "SkFontMgr.h"
-#include "SkTypeface_win.h"
+#include "include/core/SkFontMgr.h"
+#include "include/ports/SkTypeface_win.h"
 
 sk_sp<SkFontMgr> SkFontMgr::Factory() {
     return SkFontMgr_New_DirectWrite();
diff --git a/src/ports/SkGlobalInitialization_default.cpp b/src/ports/SkGlobalInitialization_default.cpp
index 76bda6a..fac29ff 100644
--- a/src/ports/SkGlobalInitialization_default.cpp
+++ b/src/ports/SkGlobalInitialization_default.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkFlattenable.h"
+#include "include/core/SkFlattenable.h"
 
 #if defined(SK_DISABLE_EFFECT_DESERIALIZATION)
 
@@ -14,57 +14,57 @@
 
 #else
 
-    #include "../../src/effects/SkDashImpl.h"
-    #include "../../src/effects/SkEmbossMaskFilter.h"
-    #include "../../src/effects/SkOpPE.h"
-    #include "../../src/effects/SkTrimPE.h"
-    #include "Sk1DPathEffect.h"
-    #include "Sk2DPathEffect.h"
-    #include "SkBitmapProcShader.h"
-    #include "SkColorFilter.h"
-    #include "SkColorFilterShader.h"
-    #include "SkColorFilter_Matrix.h"
-    #include "SkColorShader.h"
-    #include "SkComposeShader.h"
-    #include "SkCornerPathEffect.h"
-    #include "SkDiscretePathEffect.h"
-    #include "SkEmptyShader.h"
-    #include "SkGradientShader.h"
-    #include "SkHighContrastFilter.h"
-    #include "SkImageShader.h"
-    #include "SkLayerDrawLooper.h"
-    #include "SkLightingShader.h"
-    #include "SkLocalMatrixShader.h"
-    #include "SkLumaColorFilter.h"
-    #include "SkNormalSource.h"
-    #include "SkOverdrawColorFilter.h"
-    #include "SkPathEffect.h"
-    #include "SkPerlinNoiseShader.h"
-    #include "SkPictureShader.h"
-    #include "SkRecordedDrawable.h"
-    #include "SkShaderBase.h"
-    #include "SkShaderMaskFilter.h"
-    #include "SkTableColorFilter.h"
+    #include "include/core/SkColorFilter.h"
+    #include "include/core/SkPathEffect.h"
+    #include "include/effects/Sk1DPathEffect.h"
+    #include "include/effects/Sk2DPathEffect.h"
+    #include "include/effects/SkCornerPathEffect.h"
+    #include "include/effects/SkDiscretePathEffect.h"
+    #include "include/effects/SkGradientShader.h"
+    #include "include/effects/SkHighContrastFilter.h"
+    #include "include/effects/SkLayerDrawLooper.h"
+    #include "include/effects/SkLumaColorFilter.h"
+    #include "include/effects/SkOverdrawColorFilter.h"
+    #include "include/effects/SkPerlinNoiseShader.h"
+    #include "include/effects/SkShaderMaskFilter.h"
+    #include "include/effects/SkTableColorFilter.h"
+    #include "src/core/SkColorFilter_Matrix.h"
+    #include "src/core/SkNormalSource.h"
+    #include "src/core/SkRecordedDrawable.h"
+    #include "src/effects/SkDashImpl.h"
+    #include "src/effects/SkEmbossMaskFilter.h"
+    #include "src/effects/SkOpPE.h"
+    #include "src/effects/SkTrimPE.h"
+    #include "src/shaders/SkBitmapProcShader.h"
+    #include "src/shaders/SkColorFilterShader.h"
+    #include "src/shaders/SkColorShader.h"
+    #include "src/shaders/SkComposeShader.h"
+    #include "src/shaders/SkEmptyShader.h"
+    #include "src/shaders/SkImageShader.h"
+    #include "src/shaders/SkLightingShader.h"
+    #include "src/shaders/SkLocalMatrixShader.h"
+    #include "src/shaders/SkPictureShader.h"
+    #include "src/shaders/SkShaderBase.h"
 
-    #include "SkAlphaThresholdFilter.h"
-    #include "SkBlurImageFilter.h"
-    #include "SkColorFilterImageFilter.h"
-    #include "SkComposeImageFilter.h"
-    #include "SkDisplacementMapEffect.h"
-    #include "SkDropShadowImageFilter.h"
-    #include "SkImageSource.h"
-    #include "SkLightingImageFilter.h"
-    #include "SkLocalMatrixImageFilter.h"
-    #include "SkMagnifierImageFilter.h"
-    #include "SkMatrixConvolutionImageFilter.h"
-    #include "SkMatrixImageFilter.h"
-    #include "SkMergeImageFilter.h"
-    #include "SkMorphologyImageFilter.h"
-    #include "SkOffsetImageFilter.h"
-    #include "SkPaintImageFilter.h"
-    #include "SkPictureImageFilter.h"
-    #include "SkTileImageFilter.h"
-    #include "SkXfermodeImageFilter.h"
+    #include "include/effects/SkAlphaThresholdFilter.h"
+    #include "include/effects/SkBlurImageFilter.h"
+    #include "include/effects/SkColorFilterImageFilter.h"
+    #include "include/effects/SkComposeImageFilter.h"
+    #include "include/effects/SkDisplacementMapEffect.h"
+    #include "include/effects/SkDropShadowImageFilter.h"
+    #include "include/effects/SkImageSource.h"
+    #include "include/effects/SkLightingImageFilter.h"
+    #include "include/effects/SkMagnifierImageFilter.h"
+    #include "include/effects/SkMatrixConvolutionImageFilter.h"
+    #include "include/effects/SkMergeImageFilter.h"
+    #include "include/effects/SkMorphologyImageFilter.h"
+    #include "include/effects/SkOffsetImageFilter.h"
+    #include "include/effects/SkPaintImageFilter.h"
+    #include "include/effects/SkPictureImageFilter.h"
+    #include "include/effects/SkTileImageFilter.h"
+    #include "include/effects/SkXfermodeImageFilter.h"
+    #include "src/core/SkLocalMatrixImageFilter.h"
+    #include "src/core/SkMatrixImageFilter.h"
 
     /*
      *  Register most effects for deserialization.
diff --git a/src/ports/SkImageEncoder_CG.cpp b/src/ports/SkImageEncoder_CG.cpp
index 40d963d..af43829 100644
--- a/src/ports/SkImageEncoder_CG.cpp
+++ b/src/ports/SkImageEncoder_CG.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkImageEncoderPriv.h"
+#include "src/images/SkImageEncoderPriv.h"
 
 #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
 
-#include "mac/SkUniqueCFRef.h"
-#include "SkBitmap.h"
-#include "SkCGUtils.h"
-#include "SkColorData.h"
-#include "SkData.h"
-#include "SkStream.h"
-#include "SkStreamPriv.h"
-#include "SkTemplates.h"
-#include "SkUnPreMultiply.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkUnPreMultiply.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkTemplates.h"
+#include "include/utils/mac/SkCGUtils.h"
+#include "src/core/SkStreamPriv.h"
+#include "src/utils/mac/SkUniqueCFRef.h"
 
 #ifdef SK_BUILD_FOR_MAC
 #include <ApplicationServices/ApplicationServices.h>
diff --git a/src/ports/SkImageEncoder_WIC.cpp b/src/ports/SkImageEncoder_WIC.cpp
index 29f6c59..af1ec69 100644
--- a/src/ports/SkImageEncoder_WIC.cpp
+++ b/src/ports/SkImageEncoder_WIC.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if defined(SK_BUILD_FOR_WIN)
 
-#include "SkAutoCoInitialize.h"
-#include "SkAutoMalloc.h"
-#include "SkBitmap.h"
-#include "SkImageEncoderPriv.h"
-#include "SkIStream.h"
-#include "SkImageEncoder.h"
-#include "SkStream.h"
-#include "SkTScopedComPtr.h"
-#include "SkTemplates.h"
-#include "SkUnPreMultiply.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkImageEncoder.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkUnPreMultiply.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/images/SkImageEncoderPriv.h"
+#include "src/utils/win/SkAutoCoInitialize.h"
+#include "src/utils/win/SkIStream.h"
+#include "src/utils/win/SkTScopedComPtr.h"
 #include <wincodec.h>
 
 //All Windows SDKs back to XPSP2 export the CLSID_WICImagingFactory symbol.
diff --git a/src/ports/SkImageGeneratorCG.cpp b/src/ports/SkImageGeneratorCG.cpp
index a716cab..bda9a04 100644
--- a/src/ports/SkImageGeneratorCG.cpp
+++ b/src/ports/SkImageGeneratorCG.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "mac/SkUniqueCFRef.h"
-#include "SkCGUtils.h"
-#include "SkEncodedOrigin.h"
-#include "SkImageGeneratorCG.h"
-#include "SkPixmapPriv.h"
-#include "SkTemplates.h"
+#include "include/codec/SkEncodedOrigin.h"
+#include "include/ports/SkImageGeneratorCG.h"
+#include "include/private/SkTemplates.h"
+#include "include/utils/mac/SkCGUtils.h"
+#include "src/core/SkPixmapPriv.h"
+#include "src/utils/mac/SkUniqueCFRef.h"
 
 #ifdef SK_BUILD_FOR_MAC
 #include <ApplicationServices/ApplicationServices.h>
diff --git a/src/ports/SkImageGeneratorWIC.cpp b/src/ports/SkImageGeneratorWIC.cpp
index a11179a..16ecffb 100644
--- a/src/ports/SkImageGeneratorWIC.cpp
+++ b/src/ports/SkImageGeneratorWIC.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkImageGeneratorWIC.h"
-#include "SkIStream.h"
-#include "SkStream.h"
-#include "SkTScopedComPtr.h"
-#include "SkTemplates.h"
+#include "include/core/SkStream.h"
+#include "include/ports/SkImageGeneratorWIC.h"
+#include "include/private/SkTemplates.h"
+#include "src/utils/win/SkIStream.h"
+#include "src/utils/win/SkTScopedComPtr.h"
 
 #include <wincodec.h>
 
diff --git a/src/ports/SkImageGenerator_none.cpp b/src/ports/SkImageGenerator_none.cpp
index 5aeb5cb..1978765 100644
--- a/src/ports/SkImageGenerator_none.cpp
+++ b/src/ports/SkImageGenerator_none.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkImageGenerator.h"
+#include "include/core/SkImageGenerator.h"
 
 std::unique_ptr<SkImageGenerator> SkImageGenerator::MakeFromEncodedImpl(sk_sp<SkData>) {
     return nullptr;
diff --git a/src/ports/SkImageGenerator_skia.cpp b/src/ports/SkImageGenerator_skia.cpp
index e310b7f..c62a843 100644
--- a/src/ports/SkImageGenerator_skia.cpp
+++ b/src/ports/SkImageGenerator_skia.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkData.h"
-#include "SkCodecImageGenerator.h"
+#include "include/core/SkData.h"
+#include "src/codec/SkCodecImageGenerator.h"
 
 std::unique_ptr<SkImageGenerator> SkImageGenerator::MakeFromEncodedImpl(sk_sp<SkData> data) {
     return SkCodecImageGenerator::MakeFromEncodedCodec(std::move(data));
diff --git a/src/ports/SkMemory_malloc.cpp b/src/ports/SkMemory_malloc.cpp
index fd09af9..89e2109 100644
--- a/src/ports/SkMemory_malloc.cpp
+++ b/src/ports/SkMemory_malloc.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkMalloc.h"
+#include "include/private/SkMalloc.h"
 
 #include <cstdlib>
 
diff --git a/src/ports/SkMemory_mozalloc.cpp b/src/ports/SkMemory_mozalloc.cpp
index 35b94de..c98bff4 100644
--- a/src/ports/SkMemory_mozalloc.cpp
+++ b/src/ports/SkMemory_mozalloc.cpp
@@ -6,9 +6,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkMalloc.h"
+#include "include/private/SkMalloc.h"
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #include "mozilla/mozalloc.h"
 #include "mozilla/mozalloc_abort.h"
 #include "mozilla/mozalloc_oom.h"
diff --git a/src/ports/SkOSFile_ios.h b/src/ports/SkOSFile_ios.h
index 1d370cb..e541b3c 100644
--- a/src/ports/SkOSFile_ios.h
+++ b/src/ports/SkOSFile_ios.h
@@ -8,7 +8,7 @@
 #ifndef SkOSFile_ios_DEFINED
 #define SkOSFile_ios_DEFINED
 
-#include "SkString.h"
+#include "include/core/SkString.h"
 
 #ifdef SK_BUILD_FOR_IOS
 #import <CoreFoundation/CoreFoundation.h>
diff --git a/src/ports/SkOSFile_posix.cpp b/src/ports/SkOSFile_posix.cpp
index b1bf544..91a9f9a 100644
--- a/src/ports/SkOSFile_posix.cpp
+++ b/src/ports/SkOSFile_posix.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkOSFile.h"
-#include "SkString.h"
-#include "SkTFitsIn.h"
-#include "SkTemplates.h"
-#include "SkTypes.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTFitsIn.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkOSFile.h"
 
 #include <dirent.h>
 #include <new>
@@ -21,7 +21,7 @@
 #include <unistd.h>
 
 #ifdef SK_BUILD_FOR_IOS
-#include "SkOSFile_ios.h"
+#include "src/ports/SkOSFile_ios.h"
 #endif
 
 bool sk_exists(const char *path, SkFILE_Flags flags) {
diff --git a/src/ports/SkOSFile_stdio.cpp b/src/ports/SkOSFile_stdio.cpp
index 2df3019..f870c5b 100644
--- a/src/ports/SkOSFile_stdio.cpp
+++ b/src/ports/SkOSFile_stdio.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkOSFile.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "src/core/SkOSFile.h"
 
 #include <errno.h>
 #include <stdio.h>
@@ -20,11 +20,11 @@
 #include <direct.h>
 #include <io.h>
 #include <vector>
-#include "SkUTF.h"
+#include "src/utils/SkUTF.h"
 #endif
 
 #ifdef SK_BUILD_FOR_IOS
-#include "SkOSFile_ios.h"
+#include "src/ports/SkOSFile_ios.h"
 #endif
 
 #ifdef _WIN32
diff --git a/src/ports/SkOSFile_win.cpp b/src/ports/SkOSFile_win.cpp
index 0364714..aa3a930 100644
--- a/src/ports/SkOSFile_win.cpp
+++ b/src/ports/SkOSFile_win.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_WIN)
 
-#include "SkLeanWindows.h"
-#include "SkMalloc.h"
-#include "SkNoncopyable.h"
-#include "SkOSFile.h"
-#include "SkStringUtils.h"
-#include "SkTFitsIn.h"
+#include "include/private/SkLeanWindows.h"
+#include "include/private/SkMalloc.h"
+#include "include/private/SkNoncopyable.h"
+#include "include/private/SkTFitsIn.h"
+#include "src/core/SkOSFile.h"
+#include "src/core/SkStringUtils.h"
 
 #include <io.h>
 #include <new>
diff --git a/src/ports/SkOSLibrary_posix.cpp b/src/ports/SkOSLibrary_posix.cpp
index 08d3922..b4b957e 100644
--- a/src/ports/SkOSLibrary_posix.cpp
+++ b/src/ports/SkOSLibrary_posix.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if !defined(SK_BUILD_FOR_WIN)
 
-#include "SkOSLibrary.h"
+#include "src/ports/SkOSLibrary.h"
 
 #include <dlfcn.h>
 
diff --git a/src/ports/SkOSLibrary_win.cpp b/src/ports/SkOSLibrary_win.cpp
index 614718d..b948cf6 100644
--- a/src/ports/SkOSLibrary_win.cpp
+++ b/src/ports/SkOSLibrary_win.cpp
@@ -4,11 +4,11 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_WIN)
 
-#include "SkOSLibrary.h"
-#include "SkLeanWindows.h"
+#include "include/private/SkLeanWindows.h"
+#include "src/ports/SkOSLibrary.h"
 
 void* DynamicLoadLibrary(const char* libraryName) {
     return LoadLibraryA(libraryName);
diff --git a/src/ports/SkRemotableFontMgr_win_dw.cpp b/src/ports/SkRemotableFontMgr_win_dw.cpp
index fbbe7e4..64f0638 100644
--- a/src/ports/SkRemotableFontMgr_win_dw.cpp
+++ b/src/ports/SkRemotableFontMgr_win_dw.cpp
@@ -4,23 +4,23 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkDWriteNTDDI_VERSION.h"
+#include "src/utils/win/SkDWriteNTDDI_VERSION.h"
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_WIN)
 
-#include "SkDWrite.h"
-#include "SkDWriteFontFileStream.h"
-#include "SkHRESULT.h"
-#include "SkMutex.h"
-#include "SkRemotableFontMgr.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkTArray.h"
-#include "SkTScopedComPtr.h"
-#include "SkTypeface_win_dw.h"
-#include "SkTypes.h"
-#include "SkUTF.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "include/ports/SkRemotableFontMgr.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkTArray.h"
+#include "src/ports/SkTypeface_win_dw.h"
+#include "src/utils/SkUTF.h"
+#include "src/utils/win/SkDWrite.h"
+#include "src/utils/win/SkDWriteFontFileStream.h"
+#include "src/utils/win/SkHRESULT.h"
+#include "src/utils/win/SkTScopedComPtr.h"
 
 #include <dwrite.h>
 
diff --git a/src/ports/SkScalerContext_win_dw.cpp b/src/ports/SkScalerContext_win_dw.cpp
index 04d7791..6e91a74 100644
--- a/src/ports/SkScalerContext_win_dw.cpp
+++ b/src/ports/SkScalerContext_win_dw.cpp
@@ -4,36 +4,36 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkDWriteNTDDI_VERSION.h"
+#include "src/utils/win/SkDWriteNTDDI_VERSION.h"
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_WIN)
 
 #undef GetGlyphIndices
 
-#include "SkCodec.h"
-#include "SkDWrite.h"
-#include "SkDWriteGeometrySink.h"
-#include "SkDraw.h"
-#include "SkEndian.h"
-#include "SkFontMetrics.h"
-#include "SkGlyph.h"
-#include "SkHRESULT.h"
-#include "SkMaskGamma.h"
-#include "SkMatrix22.h"
-#include "SkMutex.h"
-#include "SkOTTable_EBLC.h"
-#include "SkOTTable_EBSC.h"
-#include "SkOTTable_gasp.h"
-#include "SkOTTable_maxp.h"
-#include "SkPath.h"
-#include "SkRasterClip.h"
-#include "SkScalerContext.h"
-#include "SkScalerContext_win_dw.h"
-#include "SkSharedMutex.h"
-#include "SkTScopedComPtr.h"
-#include "SkTo.h"
-#include "SkTypeface_win_dw.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkEndian.h"
+#include "src/core/SkGlyph.h"
+#include "src/core/SkMaskGamma.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkScalerContext.h"
+#include "src/core/SkSharedMutex.h"
+#include "src/ports/SkScalerContext_win_dw.h"
+#include "src/ports/SkTypeface_win_dw.h"
+#include "src/sfnt/SkOTTable_EBLC.h"
+#include "src/sfnt/SkOTTable_EBSC.h"
+#include "src/sfnt/SkOTTable_gasp.h"
+#include "src/sfnt/SkOTTable_maxp.h"
+#include "src/utils/SkMatrix22.h"
+#include "src/utils/win/SkDWrite.h"
+#include "src/utils/win/SkDWriteGeometrySink.h"
+#include "src/utils/win/SkHRESULT.h"
+#include "src/utils/win/SkTScopedComPtr.h"
 
 #include <dwrite.h>
 #include <dwrite_1.h>
@@ -791,7 +791,7 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkColorData.h"
+#include "include/private/SkColorData.h"
 
 static void bilevel_to_bw(const uint8_t* SK_RESTRICT src, const SkGlyph& glyph) {
     const int width = glyph.fWidth;
diff --git a/src/ports/SkScalerContext_win_dw.h b/src/ports/SkScalerContext_win_dw.h
index 3e79a0d..91f37fc 100644
--- a/src/ports/SkScalerContext_win_dw.h
+++ b/src/ports/SkScalerContext_win_dw.h
@@ -8,10 +8,10 @@
 #ifndef SkScalarContext_win_dw_DEFINED
 #define SkScalarContext_win_dw_DEFINED
 
-#include "SkScalar.h"
-#include "SkScalerContext.h"
-#include "SkTypeface_win_dw.h"
-#include "SkTypes.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkTypes.h"
+#include "src/core/SkScalerContext.h"
+#include "src/ports/SkTypeface_win_dw.h"
 
 #include <dwrite.h>
 #include <dwrite_2.h>
diff --git a/src/ports/SkTLS_none.cpp b/src/ports/SkTLS_none.cpp
index d655560..7d9b31f 100644
--- a/src/ports/SkTLS_none.cpp
+++ b/src/ports/SkTLS_none.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkTLS.h"
+#include "src/core/SkTLS.h"
 
 static void* gSpecific = nullptr;
 
diff --git a/src/ports/SkTLS_pthread.cpp b/src/ports/SkTLS_pthread.cpp
index 445d76d..c96271b 100644
--- a/src/ports/SkTLS_pthread.cpp
+++ b/src/ports/SkTLS_pthread.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkTLS.h"
-#include "SkOnce.h"
+#include "include/private/SkOnce.h"
+#include "src/core/SkTLS.h"
 
 #include <pthread.h>
 
diff --git a/src/ports/SkTLS_win.cpp b/src/ports/SkTLS_win.cpp
index cf7269b..c3e852c 100644
--- a/src/ports/SkTLS_win.cpp
+++ b/src/ports/SkTLS_win.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_WIN)
 
-#include "SkLeanWindows.h"
-#include "SkMutex.h"
-#include "SkTLS.h"
+#include "include/private/SkLeanWindows.h"
+#include "include/private/SkMutex.h"
+#include "src/core/SkTLS.h"
 
 static bool gOnce = false;
 static DWORD gTlsIndex;
diff --git a/src/ports/SkTypeface_win_dw.cpp b/src/ports/SkTypeface_win_dw.cpp
index fff9108..ea98b16 100644
--- a/src/ports/SkTypeface_win_dw.cpp
+++ b/src/ports/SkTypeface_win_dw.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkDWriteNTDDI_VERSION.h"
+#include "src/utils/win/SkDWriteNTDDI_VERSION.h"
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_WIN)
 
 // SkTypes will include Windows.h, which will pull in all of the GDI defines.
@@ -15,21 +15,21 @@
 // not use GDI, undefing GetGlyphIndices makes things less confusing.
 #undef GetGlyphIndices
 
-#include "SkDWrite.h"
-#include "SkDWriteFontFileStream.h"
-#include "SkFontDescriptor.h"
-#include "SkFontStream.h"
-#include "SkOTTable_OS_2.h"
-#include "SkOTTable_fvar.h"
-#include "SkOTTable_head.h"
-#include "SkOTTable_hhea.h"
-#include "SkOTTable_post.h"
-#include "SkOTUtils.h"
-#include "SkScalerContext.h"
-#include "SkScalerContext_win_dw.h"
-#include "SkTo.h"
-#include "SkTypeface_win_dw.h"
-#include "SkUtils.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/core/SkFontStream.h"
+#include "src/core/SkScalerContext.h"
+#include "src/core/SkUtils.h"
+#include "src/ports/SkScalerContext_win_dw.h"
+#include "src/ports/SkTypeface_win_dw.h"
+#include "src/sfnt/SkOTTable_OS_2.h"
+#include "src/sfnt/SkOTTable_fvar.h"
+#include "src/sfnt/SkOTTable_head.h"
+#include "src/sfnt/SkOTTable_hhea.h"
+#include "src/sfnt/SkOTTable_post.h"
+#include "src/sfnt/SkOTUtils.h"
+#include "src/utils/win/SkDWrite.h"
+#include "src/utils/win/SkDWriteFontFileStream.h"
 
 void DWriteFontTypeface::onGetFamilyName(SkString* familyName) const {
     SkTScopedComPtr<IDWriteLocalizedStrings> familyNames;
diff --git a/src/ports/SkTypeface_win_dw.h b/src/ports/SkTypeface_win_dw.h
index a101024..b95bc05 100644
--- a/src/ports/SkTypeface_win_dw.h
+++ b/src/ports/SkTypeface_win_dw.h
@@ -8,13 +8,13 @@
 #ifndef SkTypeface_win_dw_DEFINED
 #define SkTypeface_win_dw_DEFINED
 
-#include "SkAdvancedTypefaceMetrics.h"
-#include "SkDWrite.h"
-#include "SkHRESULT.h"
-#include "SkLeanWindows.h"
-#include "SkTScopedComPtr.h"
-#include "SkTypeface.h"
-#include "SkTypefaceCache.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkLeanWindows.h"
+#include "src/core/SkAdvancedTypefaceMetrics.h"
+#include "src/core/SkTypefaceCache.h"
+#include "src/utils/win/SkDWrite.h"
+#include "src/utils/win/SkHRESULT.h"
+#include "src/utils/win/SkTScopedComPtr.h"
 
 #include <dwrite.h>
 #include <dwrite_1.h>
diff --git a/src/sfnt/SkIBMFamilyClass.h b/src/sfnt/SkIBMFamilyClass.h
index b95c91e..8ad1dbe 100644
--- a/src/sfnt/SkIBMFamilyClass.h
+++ b/src/sfnt/SkIBMFamilyClass.h
@@ -8,7 +8,7 @@
 #ifndef SkIBMFamilyClass_DEFINED
 #define SkIBMFamilyClass_DEFINED
 
-#include "SkOTTableTypes.h"
+#include "src/sfnt/SkOTTableTypes.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTableTypes.h b/src/sfnt/SkOTTableTypes.h
index 119f17e..c5f352e 100644
--- a/src/sfnt/SkOTTableTypes.h
+++ b/src/sfnt/SkOTTableTypes.h
@@ -8,8 +8,8 @@
 #ifndef SkOTTableTypes_DEFINED
 #define SkOTTableTypes_DEFINED
 
-#include "SkTypes.h"
-#include "SkEndian.h"
+#include "include/core/SkTypes.h"
+#include "src/core/SkEndian.h"
 
 //All SK_OT_ prefixed types should be considered as big endian.
 typedef uint8_t SK_OT_BYTE;
diff --git a/src/sfnt/SkOTTable_EBDT.h b/src/sfnt/SkOTTable_EBDT.h
index 856b59a..c8d887a 100644
--- a/src/sfnt/SkOTTable_EBDT.h
+++ b/src/sfnt/SkOTTable_EBDT.h
@@ -8,10 +8,10 @@
 #ifndef SkOTTable_EBDT_DEFINED
 #define SkOTTable_EBDT_DEFINED
 
-#include "SkEndian.h"
-#include "SkOTTableTypes.h"
-#include "SkOTTable_head.h"
-#include "SkOTTable_loca.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkOTTableTypes.h"
+#include "src/sfnt/SkOTTable_head.h"
+#include "src/sfnt/SkOTTable_loca.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTable_EBLC.h b/src/sfnt/SkOTTable_EBLC.h
index d77dc13..a97e45f 100644
--- a/src/sfnt/SkOTTable_EBLC.h
+++ b/src/sfnt/SkOTTable_EBLC.h
@@ -8,9 +8,9 @@
 #ifndef SkOTTable_EBLC_DEFINED
 #define SkOTTable_EBLC_DEFINED
 
-#include "SkEndian.h"
-#include "SkOTTable_EBDT.h"
-#include "SkOTTableTypes.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkOTTableTypes.h"
+#include "src/sfnt/SkOTTable_EBDT.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTable_EBSC.h b/src/sfnt/SkOTTable_EBSC.h
index 316c45d..1e60ec0 100644
--- a/src/sfnt/SkOTTable_EBSC.h
+++ b/src/sfnt/SkOTTable_EBSC.h
@@ -8,9 +8,9 @@
 #ifndef SkOTTable_EBSC_DEFINED
 #define SkOTTable_EBSC_DEFINED
 
-#include "SkEndian.h"
-#include "SkOTTable_EBLC.h"
-#include "SkOTTableTypes.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkOTTableTypes.h"
+#include "src/sfnt/SkOTTable_EBLC.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTable_OS_2.h b/src/sfnt/SkOTTable_OS_2.h
index 4382578..92619c4 100644
--- a/src/sfnt/SkOTTable_OS_2.h
+++ b/src/sfnt/SkOTTable_OS_2.h
@@ -8,12 +8,12 @@
 #ifndef SkOTTable_OS_2_DEFINED
 #define SkOTTable_OS_2_DEFINED
 
-#include "SkOTTable_OS_2_VA.h"
-#include "SkOTTable_OS_2_V0.h"
-#include "SkOTTable_OS_2_V1.h"
-#include "SkOTTable_OS_2_V2.h"
-#include "SkOTTable_OS_2_V3.h"
-#include "SkOTTable_OS_2_V4.h"
+#include "src/sfnt/SkOTTable_OS_2_V0.h"
+#include "src/sfnt/SkOTTable_OS_2_V1.h"
+#include "src/sfnt/SkOTTable_OS_2_V2.h"
+#include "src/sfnt/SkOTTable_OS_2_V3.h"
+#include "src/sfnt/SkOTTable_OS_2_V4.h"
+#include "src/sfnt/SkOTTable_OS_2_VA.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTable_OS_2_V0.h b/src/sfnt/SkOTTable_OS_2_V0.h
index 0c9f611..286b7e2 100644
--- a/src/sfnt/SkOTTable_OS_2_V0.h
+++ b/src/sfnt/SkOTTable_OS_2_V0.h
@@ -8,10 +8,10 @@
 #ifndef SkOTTable_OS_2_V0_DEFINED
 #define SkOTTable_OS_2_V0_DEFINED
 
-#include "SkEndian.h"
-#include "SkIBMFamilyClass.h"
-#include "SkOTTableTypes.h"
-#include "SkPanose.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkIBMFamilyClass.h"
+#include "src/sfnt/SkOTTableTypes.h"
+#include "src/sfnt/SkPanose.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTable_OS_2_V1.h b/src/sfnt/SkOTTable_OS_2_V1.h
index 40cfdb6..0f58eb8 100644
--- a/src/sfnt/SkOTTable_OS_2_V1.h
+++ b/src/sfnt/SkOTTable_OS_2_V1.h
@@ -8,10 +8,10 @@
 #ifndef SkOTTable_OS_2_V1_DEFINED
 #define SkOTTable_OS_2_V1_DEFINED
 
-#include "SkEndian.h"
-#include "SkIBMFamilyClass.h"
-#include "SkOTTableTypes.h"
-#include "SkPanose.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkIBMFamilyClass.h"
+#include "src/sfnt/SkOTTableTypes.h"
+#include "src/sfnt/SkPanose.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTable_OS_2_V2.h b/src/sfnt/SkOTTable_OS_2_V2.h
index 080bf95..1fa053d 100644
--- a/src/sfnt/SkOTTable_OS_2_V2.h
+++ b/src/sfnt/SkOTTable_OS_2_V2.h
@@ -8,10 +8,10 @@
 #ifndef SkOTTable_OS_2_V2_DEFINED
 #define SkOTTable_OS_2_V2_DEFINED
 
-#include "SkEndian.h"
-#include "SkIBMFamilyClass.h"
-#include "SkOTTableTypes.h"
-#include "SkPanose.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkIBMFamilyClass.h"
+#include "src/sfnt/SkOTTableTypes.h"
+#include "src/sfnt/SkPanose.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTable_OS_2_V3.h b/src/sfnt/SkOTTable_OS_2_V3.h
index e77c466..f390269 100644
--- a/src/sfnt/SkOTTable_OS_2_V3.h
+++ b/src/sfnt/SkOTTable_OS_2_V3.h
@@ -8,10 +8,10 @@
 #ifndef SkOTTable_OS_2_V3_DEFINED
 #define SkOTTable_OS_2_V3_DEFINED
 
-#include "SkEndian.h"
-#include "SkIBMFamilyClass.h"
-#include "SkOTTableTypes.h"
-#include "SkPanose.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkIBMFamilyClass.h"
+#include "src/sfnt/SkOTTableTypes.h"
+#include "src/sfnt/SkPanose.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTable_OS_2_V4.h b/src/sfnt/SkOTTable_OS_2_V4.h
index 0dbb21f..46712e0 100644
--- a/src/sfnt/SkOTTable_OS_2_V4.h
+++ b/src/sfnt/SkOTTable_OS_2_V4.h
@@ -8,10 +8,10 @@
 #ifndef SkOTTable_OS_2_V4_DEFINED
 #define SkOTTable_OS_2_V4_DEFINED
 
-#include "SkEndian.h"
-#include "SkIBMFamilyClass.h"
-#include "SkOTTableTypes.h"
-#include "SkPanose.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkIBMFamilyClass.h"
+#include "src/sfnt/SkOTTableTypes.h"
+#include "src/sfnt/SkPanose.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTable_OS_2_VA.h b/src/sfnt/SkOTTable_OS_2_VA.h
index 63b904c..3476c99 100644
--- a/src/sfnt/SkOTTable_OS_2_VA.h
+++ b/src/sfnt/SkOTTable_OS_2_VA.h
@@ -8,10 +8,10 @@
 #ifndef SkOTTable_OS_2_VA_DEFINED
 #define SkOTTable_OS_2_VA_DEFINED
 
-#include "SkEndian.h"
-#include "SkIBMFamilyClass.h"
-#include "SkOTTableTypes.h"
-#include "SkPanose.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkIBMFamilyClass.h"
+#include "src/sfnt/SkOTTableTypes.h"
+#include "src/sfnt/SkPanose.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTable_fvar.h b/src/sfnt/SkOTTable_fvar.h
index 5d6ffbe..5720e64 100644
--- a/src/sfnt/SkOTTable_fvar.h
+++ b/src/sfnt/SkOTTable_fvar.h
@@ -8,8 +8,8 @@
 #ifndef SkOTTable_fvar_DEFINED
 #define SkOTTable_fvar_DEFINED
 
-#include "SkEndian.h"
-#include "SkOTTableTypes.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkOTTableTypes.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTable_gasp.h b/src/sfnt/SkOTTable_gasp.h
index 5af590e..d99c951 100644
--- a/src/sfnt/SkOTTable_gasp.h
+++ b/src/sfnt/SkOTTable_gasp.h
@@ -8,8 +8,8 @@
 #ifndef SkOTTable_gasp_DEFINED
 #define SkOTTable_gasp_DEFINED
 
-#include "SkEndian.h"
-#include "SkOTTableTypes.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkOTTableTypes.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTable_glyf.h b/src/sfnt/SkOTTable_glyf.h
index 77bd982..98c4b20 100644
--- a/src/sfnt/SkOTTable_glyf.h
+++ b/src/sfnt/SkOTTable_glyf.h
@@ -8,10 +8,10 @@
 #ifndef SkOTTable_glyf_DEFINED
 #define SkOTTable_glyf_DEFINED
 
-#include "SkEndian.h"
-#include "SkOTTableTypes.h"
-#include "SkOTTable_head.h"
-#include "SkOTTable_loca.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkOTTableTypes.h"
+#include "src/sfnt/SkOTTable_head.h"
+#include "src/sfnt/SkOTTable_loca.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTable_head.h b/src/sfnt/SkOTTable_head.h
index 0011eea..71a443e 100644
--- a/src/sfnt/SkOTTable_head.h
+++ b/src/sfnt/SkOTTable_head.h
@@ -8,8 +8,8 @@
 #ifndef SkOTTable_head_DEFINED
 #define SkOTTable_head_DEFINED
 
-#include "SkEndian.h"
-#include "SkOTTableTypes.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkOTTableTypes.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTable_hhea.h b/src/sfnt/SkOTTable_hhea.h
index 76b15e2..1044e79 100644
--- a/src/sfnt/SkOTTable_hhea.h
+++ b/src/sfnt/SkOTTable_hhea.h
@@ -8,8 +8,8 @@
 #ifndef SkOTTable_hhea_DEFINED
 #define SkOTTable_hhea_DEFINED
 
-#include "SkEndian.h"
-#include "SkOTTableTypes.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkOTTableTypes.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTable_loca.h b/src/sfnt/SkOTTable_loca.h
index 586daf1..98df283 100644
--- a/src/sfnt/SkOTTable_loca.h
+++ b/src/sfnt/SkOTTable_loca.h
@@ -8,8 +8,8 @@
 #ifndef SkOTTable_loca_DEFINED
 #define SkOTTable_loca_DEFINED
 
-#include "SkEndian.h"
-#include "SkOTTableTypes.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkOTTableTypes.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTable_maxp.h b/src/sfnt/SkOTTable_maxp.h
index d7feac6..aaae28a 100644
--- a/src/sfnt/SkOTTable_maxp.h
+++ b/src/sfnt/SkOTTable_maxp.h
@@ -8,9 +8,9 @@
 #ifndef SkOTTable_maxp_DEFINED
 #define SkOTTable_maxp_DEFINED
 
-#include "SkOTTableTypes.h"
-#include "SkOTTable_maxp_CFF.h"
-#include "SkOTTable_maxp_TT.h"
+#include "src/sfnt/SkOTTableTypes.h"
+#include "src/sfnt/SkOTTable_maxp_CFF.h"
+#include "src/sfnt/SkOTTable_maxp_TT.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTable_maxp_CFF.h b/src/sfnt/SkOTTable_maxp_CFF.h
index 435d823..bf69bed 100644
--- a/src/sfnt/SkOTTable_maxp_CFF.h
+++ b/src/sfnt/SkOTTable_maxp_CFF.h
@@ -8,8 +8,8 @@
 #ifndef SkOTTable_maxp_CFF_DEFINED
 #define SkOTTable_maxp_CFF_DEFINED
 
-#include "SkEndian.h"
-#include "SkOTTableTypes.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkOTTableTypes.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTable_maxp_TT.h b/src/sfnt/SkOTTable_maxp_TT.h
index d459997..53b7a70 100644
--- a/src/sfnt/SkOTTable_maxp_TT.h
+++ b/src/sfnt/SkOTTable_maxp_TT.h
@@ -8,8 +8,8 @@
 #ifndef SkOTTable_maxp_TT_DEFINED
 #define SkOTTable_maxp_TT_DEFINED
 
-#include "SkEndian.h"
-#include "SkOTTableTypes.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkOTTableTypes.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTable_name.cpp b/src/sfnt/SkOTTable_name.cpp
index 0a2f47b..edc5c2b 100644
--- a/src/sfnt/SkOTTable_name.cpp
+++ b/src/sfnt/SkOTTable_name.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkOTTable_name.h"
+#include "src/sfnt/SkOTTable_name.h"
 
-#include "SkEndian.h"
-#include "SkStringUtils.h"
-#include "SkTSearch.h"
-#include "SkTemplates.h"
-#include "SkUtils.h"
+#include "include/private/SkTSearch.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkEndian.h"
+#include "src/core/SkStringUtils.h"
+#include "src/core/SkUtils.h"
 
 static SkUnichar next_unichar_UTF16BE(const uint8_t** srcPtr, size_t* length) {
     SkASSERT(srcPtr && *srcPtr && length);
diff --git a/src/sfnt/SkOTTable_name.h b/src/sfnt/SkOTTable_name.h
index 6539d75..07cffd7 100644
--- a/src/sfnt/SkOTTable_name.h
+++ b/src/sfnt/SkOTTable_name.h
@@ -8,9 +8,9 @@
 #ifndef SkOTTable_name_DEFINED
 #define SkOTTable_name_DEFINED
 
-#include "SkEndian.h"
-#include "SkOTTableTypes.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkOTTableTypes.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTTable_post.h b/src/sfnt/SkOTTable_post.h
index 1af6929..943bffb 100644
--- a/src/sfnt/SkOTTable_post.h
+++ b/src/sfnt/SkOTTable_post.h
@@ -8,8 +8,8 @@
 #ifndef SkOTTable_post_DEFINED
 #define SkOTTable_post_DEFINED
 
-#include "SkEndian.h"
-#include "SkOTTableTypes.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkOTTableTypes.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkOTUtils.cpp b/src/sfnt/SkOTUtils.cpp
index 1631a4d..869fec2 100644
--- a/src/sfnt/SkOTUtils.cpp
+++ b/src/sfnt/SkOTUtils.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "SkOTUtils.h"
+#include "src/sfnt/SkOTUtils.h"
 
-#include "SkAdvancedTypefaceMetrics.h"
-#include "SkData.h"
-#include "SkEndian.h"
-#include "SkOTTableTypes.h"
-#include "SkOTTable_head.h"
-#include "SkOTTable_name.h"
-#include "SkSFNTHeader.h"
-#include "SkStream.h"
-#include "SkTo.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkAdvancedTypefaceMetrics.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkOTTableTypes.h"
+#include "src/sfnt/SkOTTable_head.h"
+#include "src/sfnt/SkOTTable_name.h"
+#include "src/sfnt/SkSFNTHeader.h"
 
 extern const uint8_t SK_OT_GlyphData_NoOutline[] = {
     0x0,0x0, //SkOTTableGlyphData::numberOfContours
diff --git a/src/sfnt/SkOTUtils.h b/src/sfnt/SkOTUtils.h
index 2f8fe0b..fb27323 100644
--- a/src/sfnt/SkOTUtils.h
+++ b/src/sfnt/SkOTUtils.h
@@ -8,10 +8,10 @@
 #ifndef SkOTUtils_DEFINED
 #define SkOTUtils_DEFINED
 
-#include "SkOTTableTypes.h"
-#include "SkOTTable_OS_2_V4.h"
-#include "SkOTTable_name.h"
-#include "SkTypeface.h"
+#include "include/core/SkTypeface.h"
+#include "src/sfnt/SkOTTableTypes.h"
+#include "src/sfnt/SkOTTable_OS_2_V4.h"
+#include "src/sfnt/SkOTTable_name.h"
 
 class SkData;
 class SkStream;
diff --git a/src/sfnt/SkPanose.h b/src/sfnt/SkPanose.h
index e399169..50ccb7a 100644
--- a/src/sfnt/SkPanose.h
+++ b/src/sfnt/SkPanose.h
@@ -8,7 +8,7 @@
 #ifndef SkPanose_DEFINED
 #define SkPanose_DEFINED
 
-#include "SkOTTableTypes.h"
+#include "src/sfnt/SkOTTableTypes.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/sfnt/SkSFNTHeader.h b/src/sfnt/SkSFNTHeader.h
index c2ea1e0..06745c3 100644
--- a/src/sfnt/SkSFNTHeader.h
+++ b/src/sfnt/SkSFNTHeader.h
@@ -8,8 +8,8 @@
 #ifndef SkSFNTHeader_DEFINED
 #define SkSFNTHeader_DEFINED
 
-#include "SkEndian.h"
-#include "SkOTTableTypes.h"
+#include "src/core/SkEndian.h"
+#include "src/sfnt/SkOTTableTypes.h"
 
 //All SK_SFNT_ prefixed types should be considered as big endian.
 typedef uint16_t SK_SFNT_USHORT;
diff --git a/src/sfnt/SkTTCFHeader.h b/src/sfnt/SkTTCFHeader.h
index 71c6661..63eac7c 100644
--- a/src/sfnt/SkTTCFHeader.h
+++ b/src/sfnt/SkTTCFHeader.h
@@ -8,8 +8,8 @@
 #ifndef SkTTCFHeader_DEFINED
 #define SkTTCFHeader_DEFINED
 
-#include "SkOTTableTypes.h"
-#include "SkSFNTHeader.h"
+#include "src/sfnt/SkOTTableTypes.h"
+#include "src/sfnt/SkSFNTHeader.h"
 
 #pragma pack(push, 1)
 
diff --git a/src/shaders/SkBitmapProcShader.cpp b/src/shaders/SkBitmapProcShader.cpp
index e141f51..0d5dc2b 100644
--- a/src/shaders/SkBitmapProcShader.cpp
+++ b/src/shaders/SkBitmapProcShader.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmapProcShader.h"
+#include "src/shaders/SkBitmapProcShader.h"
 
-#include "SkArenaAlloc.h"
-#include "SkBitmapProcState.h"
-#include "SkBitmapProvider.h"
-#include "SkXfermodePriv.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkBitmapProcState.h"
+#include "src/core/SkBitmapProvider.h"
+#include "src/core/SkXfermodePriv.h"
 
 static bool only_scale_and_translate(const SkMatrix& matrix) {
     unsigned mask = SkMatrix::kTranslate_Mask | SkMatrix::kScale_Mask;
diff --git a/src/shaders/SkBitmapProcShader.h b/src/shaders/SkBitmapProcShader.h
index 05640a5..1e2254c 100644
--- a/src/shaders/SkBitmapProcShader.h
+++ b/src/shaders/SkBitmapProcShader.h
@@ -7,8 +7,8 @@
 #ifndef SkBitmapProcShader_DEFINED
 #define SkBitmapProcShader_DEFINED
 
-#include "SkImagePriv.h"
-#include "SkShaderBase.h"
+#include "src/core/SkImagePriv.h"
+#include "src/shaders/SkShaderBase.h"
 
 class SkBitmapProvider;
 
diff --git a/src/shaders/SkColorFilterShader.cpp b/src/shaders/SkColorFilterShader.cpp
index de27053..0db94ea 100644
--- a/src/shaders/SkColorFilterShader.cpp
+++ b/src/shaders/SkColorFilterShader.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkArenaAlloc.h"
-#include "SkColorFilterShader.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
-#include "SkShader.h"
-#include "SkString.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/shaders/SkColorFilterShader.h"
 
 #if SK_SUPPORT_GPU
-#include "GrFragmentProcessor.h"
+#include "src/gpu/GrFragmentProcessor.h"
 #endif
 
 SkColorFilterShader::SkColorFilterShader(sk_sp<SkShader> shader, sk_sp<SkColorFilter> filter)
@@ -49,7 +49,7 @@
 #if SK_SUPPORT_GPU
 /////////////////////////////////////////////////////////////////////
 
-#include "GrContext.h"
+#include "include/gpu/GrContext.h"
 
 std::unique_ptr<GrFragmentProcessor> SkColorFilterShader::asFragmentProcessor(
         const GrFPArgs& args) const {
diff --git a/src/shaders/SkColorFilterShader.h b/src/shaders/SkColorFilterShader.h
index b274ae7..bbe9f16 100644
--- a/src/shaders/SkColorFilterShader.h
+++ b/src/shaders/SkColorFilterShader.h
@@ -8,8 +8,8 @@
 #ifndef SkColorFilterShader_DEFINED
 #define SkColorFilterShader_DEFINED
 
-#include "SkColorFilter.h"
-#include "SkShaderBase.h"
+#include "include/core/SkColorFilter.h"
+#include "src/shaders/SkShaderBase.h"
 
 class SkArenaAlloc;
 
diff --git a/src/shaders/SkColorShader.cpp b/src/shaders/SkColorShader.cpp
index 08d1aa2..ecbd3c7 100644
--- a/src/shaders/SkColorShader.cpp
+++ b/src/shaders/SkColorShader.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkArenaAlloc.h"
-#include "SkColorShader.h"
-#include "SkColorSpace.h"
-#include "SkColorSpacePriv.h"
-#include "SkColorSpaceXformSteps.h"
-#include "SkRasterPipeline.h"
-#include "SkReadBuffer.h"
-#include "SkUtils.h"
+#include "include/core/SkColorSpace.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkColorSpaceXformSteps.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkUtils.h"
+#include "src/shaders/SkColorShader.h"
 
 SkColorShader::SkColorShader(SkColor c) : fColor(c) {}
 
@@ -92,10 +92,10 @@
 
 #if SK_SUPPORT_GPU
 
-#include "GrColorSpaceInfo.h"
-#include "GrColorSpaceXform.h"
-#include "SkGr.h"
-#include "effects/generated/GrConstColorProcessor.h"
+#include "src/gpu/GrColorSpaceInfo.h"
+#include "src/gpu/GrColorSpaceXform.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/effects/generated/GrConstColorProcessor.h"
 
 std::unique_ptr<GrFragmentProcessor> SkColorShader::asFragmentProcessor(
         const GrFPArgs& args) const {
diff --git a/src/shaders/SkColorShader.h b/src/shaders/SkColorShader.h
index e15da4b..4e152e3 100644
--- a/src/shaders/SkColorShader.h
+++ b/src/shaders/SkColorShader.h
@@ -8,7 +8,7 @@
 #ifndef SkColorShader_DEFINED
 #define SkColorShader_DEFINED
 
-#include "SkShaderBase.h"
+#include "src/shaders/SkShaderBase.h"
 
 /** \class SkColorShader
     A Shader that represents a single color. In general, this effect can be
diff --git a/src/shaders/SkComposeShader.cpp b/src/shaders/SkComposeShader.cpp
index d3db1c5..1d3bba6 100644
--- a/src/shaders/SkComposeShader.cpp
+++ b/src/shaders/SkComposeShader.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkArenaAlloc.h"
-#include "SkBlendModePriv.h"
-#include "SkComposeShader.h"
-#include "SkColorFilter.h"
-#include "SkColorData.h"
-#include "SkColorShader.h"
-#include "SkRasterPipeline.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
-#include "SkString.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkString.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkColorData.h"
+#include "src/core/SkBlendModePriv.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/shaders/SkColorShader.h"
+#include "src/shaders/SkComposeShader.h"
 
 sk_sp<SkShader> SkShaders::Blend(SkBlendMode mode, sk_sp<SkShader> dst, sk_sp<SkShader> src) {
     switch (mode) {
@@ -174,11 +174,11 @@
 
 #if SK_SUPPORT_GPU
 
-#include "effects/generated/GrConstColorProcessor.h"
-#include "effects/GrXfermodeFragmentProcessor.h"
-#include "GrRecordingContext.h"
-#include "effects/generated/GrComposeLerpEffect.h"
-#include "effects/generated/GrComposeLerpRedEffect.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/effects/GrXfermodeFragmentProcessor.h"
+#include "src/gpu/effects/generated/GrComposeLerpEffect.h"
+#include "src/gpu/effects/generated/GrComposeLerpRedEffect.h"
+#include "src/gpu/effects/generated/GrConstColorProcessor.h"
 
 static std::unique_ptr<GrFragmentProcessor> as_fp(const GrFPArgs& args, SkShader* shader) {
     return shader ? as_SB(shader)->asFragmentProcessor(args) : nullptr;
diff --git a/src/shaders/SkComposeShader.h b/src/shaders/SkComposeShader.h
index 4d2aa5a..b0452e1 100644
--- a/src/shaders/SkComposeShader.h
+++ b/src/shaders/SkComposeShader.h
@@ -8,8 +8,8 @@
 #ifndef SkComposeShader_DEFINED
 #define SkComposeShader_DEFINED
 
-#include "SkShaderBase.h"
-#include "SkBlendMode.h"
+#include "include/core/SkBlendMode.h"
+#include "src/shaders/SkShaderBase.h"
 
 class SkShader_Blend final : public SkShaderBase {
 public:
diff --git a/src/shaders/SkEmptyShader.h b/src/shaders/SkEmptyShader.h
index 7d2df0e..439082b 100644
--- a/src/shaders/SkEmptyShader.h
+++ b/src/shaders/SkEmptyShader.h
@@ -8,7 +8,7 @@
 #ifndef SkEmptyShader_DEFINED
 #define SkEmptyShader_DEFINED
 
-#include "SkShaderBase.h"
+#include "src/shaders/SkShaderBase.h"
 
 // TODO: move this to private, as there is a public factory on SkShader
 
diff --git a/src/shaders/SkImageShader.cpp b/src/shaders/SkImageShader.cpp
index c2e146c..24162fc 100644
--- a/src/shaders/SkImageShader.cpp
+++ b/src/shaders/SkImageShader.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "SkArenaAlloc.h"
-#include "SkBitmapController.h"
-#include "SkBitmapProcShader.h"
-#include "SkBitmapProvider.h"
-#include "SkColorSpacePriv.h"
-#include "SkColorSpaceXformSteps.h"
-#include "SkEmptyShader.h"
-#include "SkImage_Base.h"
-#include "SkImageShader.h"
-#include "SkRasterPipeline.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkBitmapController.h"
+#include "src/core/SkBitmapProvider.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkColorSpaceXformSteps.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/image/SkImage_Base.h"
+#include "src/shaders/SkBitmapProcShader.h"
+#include "src/shaders/SkEmptyShader.h"
+#include "src/shaders/SkImageShader.h"
 
 /**
  *  We are faster in clamp, so always use that tiling when we can.
@@ -164,13 +164,13 @@
 
 #if SK_SUPPORT_GPU
 
-#include "GrCaps.h"
-#include "GrColorSpaceInfo.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "SkGr.h"
-#include "effects/GrBicubicEffect.h"
-#include "effects/generated/GrSimpleTextureEffect.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrColorSpaceInfo.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/effects/GrBicubicEffect.h"
+#include "src/gpu/effects/generated/GrSimpleTextureEffect.h"
 
 static GrSamplerState::WrapMode tile_mode_to_wrap_mode(const SkTileMode tileMode) {
     switch (tileMode) {
@@ -266,7 +266,7 @@
 #endif
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
-#include "SkImagePriv.h"
+#include "src/core/SkImagePriv.h"
 
 sk_sp<SkShader> SkMakeBitmapShader(const SkBitmap& src, SkTileMode tmx, SkTileMode tmy,
                                    const SkMatrix* localMatrix, SkCopyPixelsMode cpm) {
diff --git a/src/shaders/SkImageShader.h b/src/shaders/SkImageShader.h
index d851b1c..6990a4a 100644
--- a/src/shaders/SkImageShader.h
+++ b/src/shaders/SkImageShader.h
@@ -8,9 +8,9 @@
 #ifndef SkImageShader_DEFINED
 #define SkImageShader_DEFINED
 
-#include "SkBitmapProcShader.h"
-#include "SkImage.h"
-#include "SkShaderBase.h"
+#include "include/core/SkImage.h"
+#include "src/shaders/SkBitmapProcShader.h"
+#include "src/shaders/SkShaderBase.h"
 
 class SkImageShader : public SkShaderBase {
 public:
diff --git a/src/shaders/SkLightingShader.cpp b/src/shaders/SkLightingShader.cpp
index e01f019..bc4e631 100644
--- a/src/shaders/SkLightingShader.cpp
+++ b/src/shaders/SkLightingShader.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkArenaAlloc.h"
-#include "SkBitmapProcShader.h"
-#include "SkBitmapProcState.h"
-#include "SkColor.h"
-#include "SkEmptyShader.h"
-#include "SkLightingShader.h"
-#include "SkMathPriv.h"
-#include "SkNormalSource.h"
-#include "SkPoint3.h"
-#include "SkReadBuffer.h"
-#include "SkShaderBase.h"
-#include "SkUnPreMultiply.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPoint3.h"
+#include "include/core/SkUnPreMultiply.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkBitmapProcState.h"
+#include "src/core/SkMathPriv.h"
+#include "src/core/SkNormalSource.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/shaders/SkBitmapProcShader.h"
+#include "src/shaders/SkEmptyShader.h"
+#include "src/shaders/SkLightingShader.h"
+#include "src/shaders/SkShaderBase.h"
 
 ////////////////////////////////////////////////////////////////////////////
 
@@ -101,13 +101,13 @@
 
 #if SK_SUPPORT_GPU
 
-#include "GrCoordTransform.h"
-#include "GrFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
-#include "SkGr.h"
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 
 // This FP expects a premul'd color input for its diffuse color. Premul'ing of the paint's color is
 // handled by the asFragmentProcessor() factory, but shaders providing diffuse color must output it
diff --git a/src/shaders/SkLightingShader.h b/src/shaders/SkLightingShader.h
index a0cf6c9..cdf27cb 100644
--- a/src/shaders/SkLightingShader.h
+++ b/src/shaders/SkLightingShader.h
@@ -8,8 +8,8 @@
 #ifndef SkLightingShader_DEFINED
 #define SkLightingShader_DEFINED
 
-#include "SkLights.h"
-#include "SkShader.h"
+#include "include/core/SkShader.h"
+#include "src/shaders/SkLights.h"
 
 class SkBitmap;
 class SkMatrix;
diff --git a/src/shaders/SkLights.cpp b/src/shaders/SkLights.cpp
index 144dcdb..e80cf27 100644
--- a/src/shaders/SkLights.cpp
+++ b/src/shaders/SkLights.cpp
@@ -6,8 +6,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkLights.h"
-#include "SkReadBuffer.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/shaders/SkLights.h"
 
 sk_sp<SkLights> SkLights::MakeFromBuffer(SkReadBuffer& buf) {
     Builder builder;
diff --git a/src/shaders/SkLights.h b/src/shaders/SkLights.h
index 74360cf..f22d6bb 100644
--- a/src/shaders/SkLights.h
+++ b/src/shaders/SkLights.h
@@ -9,9 +9,9 @@
 #ifndef SkLights_DEFINED
 #define SkLights_DEFINED
 
-#include "SkPoint3.h"
-#include "SkRefCnt.h"
-#include "../private/SkTArray.h"
+#include "include/core/SkPoint3.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkTArray.h"
 
 class SkReadBuffer;
 class SkWriteBuffer;
diff --git a/src/shaders/SkLocalMatrixShader.cpp b/src/shaders/SkLocalMatrixShader.cpp
index aae1f1f..4f120fe 100644
--- a/src/shaders/SkLocalMatrixShader.cpp
+++ b/src/shaders/SkLocalMatrixShader.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkLocalMatrixShader.h"
-#include "SkTLazy.h"
+#include "src/core/SkTLazy.h"
+#include "src/shaders/SkLocalMatrixShader.h"
 
 #if SK_SUPPORT_GPU
-#include "GrFragmentProcessor.h"
+#include "src/gpu/GrFragmentProcessor.h"
 #endif
 
 #if SK_SUPPORT_GPU
diff --git a/src/shaders/SkLocalMatrixShader.h b/src/shaders/SkLocalMatrixShader.h
index 1d81f8d..1446d8f 100644
--- a/src/shaders/SkLocalMatrixShader.h
+++ b/src/shaders/SkLocalMatrixShader.h
@@ -8,9 +8,9 @@
 #ifndef SkLocalMatrixShader_DEFINED
 #define SkLocalMatrixShader_DEFINED
 
-#include "SkShaderBase.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/shaders/SkShaderBase.h"
 
 class GrFragmentProcessor;
 class SkArenaAlloc;
diff --git a/src/shaders/SkPerlinNoiseShader.cpp b/src/shaders/SkPerlinNoiseShader.cpp
index 096acec..56bbb93 100644
--- a/src/shaders/SkPerlinNoiseShader.cpp
+++ b/src/shaders/SkPerlinNoiseShader.cpp
@@ -5,27 +5,27 @@
  * found in the LICENSE file.
  */
 
-#include "SkPerlinNoiseShader.h"
+#include "include/effects/SkPerlinNoiseShader.h"
 
-#include "SkArenaAlloc.h"
-#include "SkColorFilter.h"
-#include "SkMakeUnique.h"
-#include "SkReadBuffer.h"
-#include "SkShader.h"
-#include "SkString.h"
-#include "SkUnPreMultiply.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkString.h"
+#include "include/core/SkUnPreMultiply.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 
 #if SK_SUPPORT_GPU
-#include "GrCoordTransform.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "SkGr.h"
-#include "effects/generated/GrConstColorProcessor.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramDataManager.h"
-#include "glsl/GrGLSLUniformHandler.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/effects/generated/GrConstColorProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
+#include "src/gpu/glsl/GrGLSLUniformHandler.h"
 #endif
 
 static const int kBlockSize = 256;
diff --git a/src/shaders/SkPictureShader.cpp b/src/shaders/SkPictureShader.cpp
index ce10107..53bdf72 100644
--- a/src/shaders/SkPictureShader.cpp
+++ b/src/shaders/SkPictureShader.cpp
@@ -5,27 +5,27 @@
  * found in the LICENSE file.
  */
 
-#include "SkPictureShader.h"
+#include "src/shaders/SkPictureShader.h"
 
-#include "SkArenaAlloc.h"
-#include "SkBitmap.h"
-#include "SkBitmapProcShader.h"
-#include "SkCanvas.h"
-#include "SkImage.h"
-#include "SkImageShader.h"
-#include "SkMatrixUtils.h"
-#include "SkPicturePriv.h"
-#include "SkReadBuffer.h"
-#include "SkResourceCache.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkMatrixUtils.h"
+#include "src/core/SkPicturePriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkResourceCache.h"
+#include "src/shaders/SkBitmapProcShader.h"
+#include "src/shaders/SkImageShader.h"
 #include <atomic>
 
 #if SK_SUPPORT_GPU
-#include "GrCaps.h"
-#include "GrColorSpaceInfo.h"
-#include "GrFragmentProcessor.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "SkGr.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrColorSpaceInfo.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/SkGr.h"
 #endif
 
 sk_sp<SkShader> SkPicture::makeShader(SkTileMode tmx, SkTileMode tmy, const SkMatrix* localMatrix,
@@ -318,8 +318,8 @@
 }
 
 #if SK_SUPPORT_GPU
-#include "GrContext.h"
-#include "GrContextPriv.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrContextPriv.h"
 
 std::unique_ptr<GrFragmentProcessor> SkPictureShader::asFragmentProcessor(
         const GrFPArgs& args) const {
diff --git a/src/shaders/SkPictureShader.h b/src/shaders/SkPictureShader.h
index aeeb74e..69a3530 100644
--- a/src/shaders/SkPictureShader.h
+++ b/src/shaders/SkPictureShader.h
@@ -8,8 +8,8 @@
 #ifndef SkPictureShader_DEFINED
 #define SkPictureShader_DEFINED
 
-#include "SkShaderBase.h"
-#include "SkTileMode.h"
+#include "include/core/SkTileMode.h"
+#include "src/shaders/SkShaderBase.h"
 #include <atomic>
 
 class SkArenaAlloc;
diff --git a/src/shaders/SkShader.cpp b/src/shaders/SkShader.cpp
index 4861d2a..6c7b757 100644
--- a/src/shaders/SkShader.cpp
+++ b/src/shaders/SkShader.cpp
@@ -5,25 +5,25 @@
  * found in the LICENSE file.
  */
 
-#include "SkArenaAlloc.h"
-#include "SkBitmapProcShader.h"
-#include "SkColorShader.h"
-#include "SkColorSpacePriv.h"
-#include "SkColorSpaceXformSteps.h"
-#include "SkEmptyShader.h"
-#include "SkMallocPixelRef.h"
-#include "SkPaint.h"
-#include "SkPicture.h"
-#include "SkPictureShader.h"
-#include "SkRasterPipeline.h"
-#include "SkReadBuffer.h"
-#include "SkScalar.h"
-#include "SkShaderBase.h"
-#include "SkTLazy.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkMallocPixelRef.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkScalar.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkColorSpaceXformSteps.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkTLazy.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/shaders/SkBitmapProcShader.h"
+#include "src/shaders/SkColorShader.h"
+#include "src/shaders/SkEmptyShader.h"
+#include "src/shaders/SkPictureShader.h"
+#include "src/shaders/SkShaderBase.h"
 
 #if SK_SUPPORT_GPU
-#include "GrFragmentProcessor.h"
+#include "src/gpu/GrFragmentProcessor.h"
 #endif
 
 SkShaderBase::SkShaderBase(const SkMatrix* localMatrix)
diff --git a/src/shaders/SkShaderBase.h b/src/shaders/SkShaderBase.h
index 64c730e..569e728 100644
--- a/src/shaders/SkShaderBase.h
+++ b/src/shaders/SkShaderBase.h
@@ -8,16 +8,16 @@
 #ifndef SkShaderBase_DEFINED
 #define SkShaderBase_DEFINED
 
-#include "SkEffectPriv.h"
-#include "SkFilterQuality.h"
-#include "SkMask.h"
-#include "SkMatrix.h"
-#include "SkNoncopyable.h"
-#include "SkShader.h"
-#include "SkTLazy.h"
+#include "include/core/SkFilterQuality.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkShader.h"
+#include "include/private/SkNoncopyable.h"
+#include "src/core/SkEffectPriv.h"
+#include "src/core/SkMask.h"
+#include "src/core/SkTLazy.h"
 
 #if SK_SUPPORT_GPU
-#include "GrFPArgs.h"
+#include "src/gpu/GrFPArgs.h"
 #endif
 
 class GrContext;
diff --git a/src/shaders/gradients/Sk4fGradientBase.cpp b/src/shaders/gradients/Sk4fGradientBase.cpp
index a554691..1a269e6 100644
--- a/src/shaders/gradients/Sk4fGradientBase.cpp
+++ b/src/shaders/gradients/Sk4fGradientBase.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "Sk4fGradientBase.h"
-#include "SkPaint.h"
+#include "include/core/SkPaint.h"
+#include "src/shaders/gradients/Sk4fGradientBase.h"
 #include <functional>
 
 namespace {
diff --git a/src/shaders/gradients/Sk4fGradientBase.h b/src/shaders/gradients/Sk4fGradientBase.h
index b5711e4..fcc8fae 100644
--- a/src/shaders/gradients/Sk4fGradientBase.h
+++ b/src/shaders/gradients/Sk4fGradientBase.h
@@ -8,13 +8,13 @@
 #ifndef Sk4fGradientBase_DEFINED
 #define Sk4fGradientBase_DEFINED
 
-#include "Sk4fGradientPriv.h"
-#include "SkColor.h"
-#include "SkGradientShaderPriv.h"
-#include "SkMatrixPriv.h"
-#include "SkNx.h"
-#include "SkShaderBase.h"
-#include "SkTArray.h"
+#include "include/core/SkColor.h"
+#include "include/private/SkNx.h"
+#include "include/private/SkTArray.h"
+#include "src/core/SkMatrixPriv.h"
+#include "src/shaders/SkShaderBase.h"
+#include "src/shaders/gradients/Sk4fGradientPriv.h"
+#include "src/shaders/gradients/SkGradientShaderPriv.h"
 
 struct Sk4fGradientInterval {
     Sk4fGradientInterval(const Sk4f& c0, SkScalar t0,
diff --git a/src/shaders/gradients/Sk4fGradientPriv.h b/src/shaders/gradients/Sk4fGradientPriv.h
index 4c779e4..15731ec 100644
--- a/src/shaders/gradients/Sk4fGradientPriv.h
+++ b/src/shaders/gradients/Sk4fGradientPriv.h
@@ -8,12 +8,12 @@
 #ifndef Sk4fGradientPriv_DEFINED
 #define Sk4fGradientPriv_DEFINED
 
-#include "SkColor.h"
-#include "SkColorData.h"
-#include "SkHalf.h"
-#include "SkImageInfo.h"
-#include "SkNx.h"
-#include "SkUtils.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkImageInfo.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkHalf.h"
+#include "include/private/SkNx.h"
+#include "src/core/SkUtils.h"
 
 // Templates shared by various 4f gradient flavors.
 
diff --git a/src/shaders/gradients/Sk4fLinearGradient.cpp b/src/shaders/gradients/Sk4fLinearGradient.cpp
index aa2a56b..b4266ce 100644
--- a/src/shaders/gradients/Sk4fLinearGradient.cpp
+++ b/src/shaders/gradients/Sk4fLinearGradient.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "Sk4fLinearGradient.h"
-#include "SkPaint.h"
+#include "include/core/SkPaint.h"
+#include "src/shaders/gradients/Sk4fLinearGradient.h"
 
 #include <cmath>
 #include <utility>
diff --git a/src/shaders/gradients/Sk4fLinearGradient.h b/src/shaders/gradients/Sk4fLinearGradient.h
index 2ba36ca..a788589 100644
--- a/src/shaders/gradients/Sk4fLinearGradient.h
+++ b/src/shaders/gradients/Sk4fLinearGradient.h
@@ -8,8 +8,8 @@
 #ifndef Sk4fLinearGradient_DEFINED
 #define Sk4fLinearGradient_DEFINED
 
-#include "Sk4fGradientBase.h"
-#include "SkLinearGradient.h"
+#include "src/shaders/gradients/Sk4fGradientBase.h"
+#include "src/shaders/gradients/SkLinearGradient.h"
 
 class SkLinearGradient::
 LinearGradient4fContext final : public GradientShaderBase4fContext {
diff --git a/src/shaders/gradients/SkGradientShader.cpp b/src/shaders/gradients/SkGradientShader.cpp
index 2bad568..641cbce 100644
--- a/src/shaders/gradients/SkGradientShader.cpp
+++ b/src/shaders/gradients/SkGradientShader.cpp
@@ -6,19 +6,19 @@
  */
 
 #include <algorithm>
-#include "Sk4fLinearGradient.h"
-#include "SkColorSpacePriv.h"
-#include "SkConvertPixels.h"
-#include "SkFloatBits.h"
-#include "SkGradientShaderPriv.h"
-#include "SkHalf.h"
-#include "SkLinearGradient.h"
-#include "SkMallocPixelRef.h"
-#include "SkRadialGradient.h"
-#include "SkReadBuffer.h"
-#include "SkSweepGradient.h"
-#include "SkTwoPointConicalGradient.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkMallocPixelRef.h"
+#include "include/private/SkFloatBits.h"
+#include "include/private/SkHalf.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkConvertPixels.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/shaders/gradients/Sk4fLinearGradient.h"
+#include "src/shaders/gradients/SkGradientShaderPriv.h"
+#include "src/shaders/gradients/SkLinearGradient.h"
+#include "src/shaders/gradients/SkRadialGradient.h"
+#include "src/shaders/gradients/SkSweepGradient.h"
+#include "src/shaders/gradients/SkTwoPointConicalGradient.h"
 
 enum GradientSerializationFlags {
     // Bits 29:31 used for various boolean flags
diff --git a/src/shaders/gradients/SkGradientShaderPriv.h b/src/shaders/gradients/SkGradientShaderPriv.h
index 913b7c8..eec9a99 100644
--- a/src/shaders/gradients/SkGradientShaderPriv.h
+++ b/src/shaders/gradients/SkGradientShaderPriv.h
@@ -8,13 +8,13 @@
 #ifndef SkGradientShaderPriv_DEFINED
 #define SkGradientShaderPriv_DEFINED
 
-#include "SkGradientShader.h"
+#include "include/effects/SkGradientShader.h"
 
-#include "SkArenaAlloc.h"
-#include "SkMatrix.h"
-#include "SkShaderBase.h"
-#include "SkTArray.h"
-#include "SkTemplates.h"
+#include "include/core/SkMatrix.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTemplates.h"
+#include "src/shaders/SkShaderBase.h"
 
 class SkColorSpace;
 class SkRasterPipeline;
diff --git a/src/shaders/gradients/SkLinearGradient.cpp b/src/shaders/gradients/SkLinearGradient.cpp
index cbc1161..a0a3d33 100644
--- a/src/shaders/gradients/SkLinearGradient.cpp
+++ b/src/shaders/gradients/SkLinearGradient.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkLinearGradient.h"
+#include "src/shaders/gradients/SkLinearGradient.h"
 
-#include "Sk4fLinearGradient.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/shaders/gradients/Sk4fLinearGradient.h"
 
 static SkMatrix pts_to_unit_matrix(const SkPoint pts[2]) {
     SkVector    vec = pts[1] - pts[0];
@@ -100,7 +100,7 @@
 
 #if SK_SUPPORT_GPU
 
-#include "gradients/GrGradientShader.h"
+#include "src/gpu/gradients/GrGradientShader.h"
 
 std::unique_ptr<GrFragmentProcessor> SkLinearGradient::asFragmentProcessor(
         const GrFPArgs& args) const {
diff --git a/src/shaders/gradients/SkLinearGradient.h b/src/shaders/gradients/SkLinearGradient.h
index a5eda73..8561b27 100644
--- a/src/shaders/gradients/SkLinearGradient.h
+++ b/src/shaders/gradients/SkLinearGradient.h
@@ -8,7 +8,7 @@
 #ifndef SkLinearGradient_DEFINED
 #define SkLinearGradient_DEFINED
 
-#include "SkGradientShaderPriv.h"
+#include "src/shaders/gradients/SkGradientShaderPriv.h"
 
 class SkLinearGradient : public SkGradientShaderBase {
 public:
diff --git a/src/shaders/gradients/SkRadialGradient.cpp b/src/shaders/gradients/SkRadialGradient.cpp
index 08524188..679aa8f 100644
--- a/src/shaders/gradients/SkRadialGradient.cpp
+++ b/src/shaders/gradients/SkRadialGradient.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkRadialGradient.h"
-#include "SkRasterPipeline.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/shaders/gradients/SkRadialGradient.h"
 
 namespace {
 
@@ -67,7 +67,7 @@
 
 #if SK_SUPPORT_GPU
 
-#include "gradients/GrGradientShader.h"
+#include "src/gpu/gradients/GrGradientShader.h"
 
 std::unique_ptr<GrFragmentProcessor> SkRadialGradient::asFragmentProcessor(
         const GrFPArgs& args) const {
diff --git a/src/shaders/gradients/SkRadialGradient.h b/src/shaders/gradients/SkRadialGradient.h
index 2646e51..0e61504 100644
--- a/src/shaders/gradients/SkRadialGradient.h
+++ b/src/shaders/gradients/SkRadialGradient.h
@@ -8,7 +8,7 @@
 #ifndef SkRadialGradient_DEFINED
 #define SkRadialGradient_DEFINED
 
-#include "SkGradientShaderPriv.h"
+#include "src/shaders/gradients/SkGradientShaderPriv.h"
 
 class SkRadialGradient final : public SkGradientShaderBase {
 public:
diff --git a/src/shaders/gradients/SkSweepGradient.cpp b/src/shaders/gradients/SkSweepGradient.cpp
index 14d907b6..e42e464 100644
--- a/src/shaders/gradients/SkSweepGradient.cpp
+++ b/src/shaders/gradients/SkSweepGradient.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkFloatingPoint.h"
-#include "SkRasterPipeline.h"
-#include "SkReadBuffer.h"
-#include "SkSweepGradient.h"
-#include "SkWriteBuffer.h"
+#include "include/private/SkFloatingPoint.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/shaders/gradients/SkSweepGradient.h"
 
 SkSweepGradient::SkSweepGradient(const SkPoint& center, SkScalar t0, SkScalar t1,
                                  const Descriptor& desc)
@@ -72,7 +72,7 @@
 
 #if SK_SUPPORT_GPU
 
-#include "gradients/GrGradientShader.h"
+#include "src/gpu/gradients/GrGradientShader.h"
 
 std::unique_ptr<GrFragmentProcessor> SkSweepGradient::asFragmentProcessor(
         const GrFPArgs& args) const {
diff --git a/src/shaders/gradients/SkSweepGradient.h b/src/shaders/gradients/SkSweepGradient.h
index 99d428f..71d2221 100644
--- a/src/shaders/gradients/SkSweepGradient.h
+++ b/src/shaders/gradients/SkSweepGradient.h
@@ -8,7 +8,7 @@
 #ifndef SkSweepGradient_DEFINED
 #define SkSweepGradient_DEFINED
 
-#include "SkGradientShaderPriv.h"
+#include "src/shaders/gradients/SkGradientShaderPriv.h"
 
 class SkSweepGradient final : public SkGradientShaderBase {
 public:
diff --git a/src/shaders/gradients/SkTwoPointConicalGradient.cpp b/src/shaders/gradients/SkTwoPointConicalGradient.cpp
index 36797a6..92cd494 100644
--- a/src/shaders/gradients/SkTwoPointConicalGradient.cpp
+++ b/src/shaders/gradients/SkTwoPointConicalGradient.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkFloatingPoint.h"
-#include "SkRasterPipeline.h"
-#include "SkReadBuffer.h"
-#include "SkTwoPointConicalGradient.h"
-#include "SkWriteBuffer.h"
+#include "include/private/SkFloatingPoint.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/shaders/gradients/SkTwoPointConicalGradient.h"
 
 #include <utility>
 
@@ -238,7 +238,7 @@
 
 #if SK_SUPPORT_GPU
 
-#include "gradients/GrGradientShader.h"
+#include "src/gpu/gradients/GrGradientShader.h"
 
 std::unique_ptr<GrFragmentProcessor> SkTwoPointConicalGradient::asFragmentProcessor(
         const GrFPArgs& args) const {
diff --git a/src/shaders/gradients/SkTwoPointConicalGradient.h b/src/shaders/gradients/SkTwoPointConicalGradient.h
index 65fb731..252696f 100644
--- a/src/shaders/gradients/SkTwoPointConicalGradient.h
+++ b/src/shaders/gradients/SkTwoPointConicalGradient.h
@@ -8,7 +8,7 @@
 #ifndef SkTwoPointConicalGradient_DEFINED
 #define SkTwoPointConicalGradient_DEFINED
 
-#include "SkGradientShaderPriv.h"
+#include "src/shaders/gradients/SkGradientShaderPriv.h"
 
 class SkTwoPointConicalGradient final : public SkGradientShaderBase {
 public:
diff --git a/src/sksl/SkSLByteCode.h b/src/sksl/SkSLByteCode.h
index afa1d1e..92a2cca 100644
--- a/src/sksl/SkSLByteCode.h
+++ b/src/sksl/SkSLByteCode.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_BYTECODE
 #define SKSL_BYTECODE
 
-#include "ir/SkSLFunctionDeclaration.h"
+#include "src/sksl/ir/SkSLFunctionDeclaration.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLByteCodeGenerator.cpp b/src/sksl/SkSLByteCodeGenerator.cpp
index f4a4235..f918ef6 100644
--- a/src/sksl/SkSLByteCodeGenerator.cpp
+++ b/src/sksl/SkSLByteCodeGenerator.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLByteCodeGenerator.h"
+#include "src/sksl/SkSLByteCodeGenerator.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLByteCodeGenerator.h b/src/sksl/SkSLByteCodeGenerator.h
index e518861..d89d578 100644
--- a/src/sksl/SkSLByteCodeGenerator.h
+++ b/src/sksl/SkSLByteCodeGenerator.h
@@ -12,41 +12,41 @@
 #include <tuple>
 #include <unordered_map>
 
-#include "SkSLByteCode.h"
-#include "SkSLCodeGenerator.h"
-#include "SkSLMemoryLayout.h"
-#include "ir/SkSLBinaryExpression.h"
-#include "ir/SkSLBoolLiteral.h"
-#include "ir/SkSLBlock.h"
-#include "ir/SkSLBreakStatement.h"
-#include "ir/SkSLConstructor.h"
-#include "ir/SkSLContinueStatement.h"
-#include "ir/SkSLDoStatement.h"
-#include "ir/SkSLExpressionStatement.h"
-#include "ir/SkSLFloatLiteral.h"
-#include "ir/SkSLIfStatement.h"
-#include "ir/SkSLIndexExpression.h"
-#include "ir/SkSLInterfaceBlock.h"
-#include "ir/SkSLIntLiteral.h"
-#include "ir/SkSLFieldAccess.h"
-#include "ir/SkSLForStatement.h"
-#include "ir/SkSLFunctionCall.h"
-#include "ir/SkSLFunctionDeclaration.h"
-#include "ir/SkSLFunctionDefinition.h"
-#include "ir/SkSLNullLiteral.h"
-#include "ir/SkSLPrefixExpression.h"
-#include "ir/SkSLPostfixExpression.h"
-#include "ir/SkSLProgramElement.h"
-#include "ir/SkSLReturnStatement.h"
-#include "ir/SkSLStatement.h"
-#include "ir/SkSLSwitchStatement.h"
-#include "ir/SkSLSwizzle.h"
-#include "ir/SkSLTernaryExpression.h"
-#include "ir/SkSLVarDeclarations.h"
-#include "ir/SkSLVarDeclarationsStatement.h"
-#include "ir/SkSLVariableReference.h"
-#include "ir/SkSLWhileStatement.h"
-#include "spirv.h"
+#include "src/sksl/SkSLByteCode.h"
+#include "src/sksl/SkSLCodeGenerator.h"
+#include "src/sksl/SkSLMemoryLayout.h"
+#include "src/sksl/ir/SkSLBinaryExpression.h"
+#include "src/sksl/ir/SkSLBlock.h"
+#include "src/sksl/ir/SkSLBoolLiteral.h"
+#include "src/sksl/ir/SkSLBreakStatement.h"
+#include "src/sksl/ir/SkSLConstructor.h"
+#include "src/sksl/ir/SkSLContinueStatement.h"
+#include "src/sksl/ir/SkSLDoStatement.h"
+#include "src/sksl/ir/SkSLExpressionStatement.h"
+#include "src/sksl/ir/SkSLFieldAccess.h"
+#include "src/sksl/ir/SkSLFloatLiteral.h"
+#include "src/sksl/ir/SkSLForStatement.h"
+#include "src/sksl/ir/SkSLFunctionCall.h"
+#include "src/sksl/ir/SkSLFunctionDeclaration.h"
+#include "src/sksl/ir/SkSLFunctionDefinition.h"
+#include "src/sksl/ir/SkSLIfStatement.h"
+#include "src/sksl/ir/SkSLIndexExpression.h"
+#include "src/sksl/ir/SkSLIntLiteral.h"
+#include "src/sksl/ir/SkSLInterfaceBlock.h"
+#include "src/sksl/ir/SkSLNullLiteral.h"
+#include "src/sksl/ir/SkSLPostfixExpression.h"
+#include "src/sksl/ir/SkSLPrefixExpression.h"
+#include "src/sksl/ir/SkSLProgramElement.h"
+#include "src/sksl/ir/SkSLReturnStatement.h"
+#include "src/sksl/ir/SkSLStatement.h"
+#include "src/sksl/ir/SkSLSwitchStatement.h"
+#include "src/sksl/ir/SkSLSwizzle.h"
+#include "src/sksl/ir/SkSLTernaryExpression.h"
+#include "src/sksl/ir/SkSLVarDeclarations.h"
+#include "src/sksl/ir/SkSLVarDeclarationsStatement.h"
+#include "src/sksl/ir/SkSLVariableReference.h"
+#include "src/sksl/ir/SkSLWhileStatement.h"
+#include "src/sksl/spirv.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLCFGGenerator.cpp b/src/sksl/SkSLCFGGenerator.cpp
index d86892e..a4397f3 100644
--- a/src/sksl/SkSLCFGGenerator.cpp
+++ b/src/sksl/SkSLCFGGenerator.cpp
@@ -5,25 +5,25 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLCFGGenerator.h"
+#include "src/sksl/SkSLCFGGenerator.h"
 
-#include "ir/SkSLConstructor.h"
-#include "ir/SkSLBinaryExpression.h"
-#include "ir/SkSLDoStatement.h"
-#include "ir/SkSLExpressionStatement.h"
-#include "ir/SkSLFieldAccess.h"
-#include "ir/SkSLForStatement.h"
-#include "ir/SkSLFunctionCall.h"
-#include "ir/SkSLIfStatement.h"
-#include "ir/SkSLIndexExpression.h"
-#include "ir/SkSLPostfixExpression.h"
-#include "ir/SkSLPrefixExpression.h"
-#include "ir/SkSLReturnStatement.h"
-#include "ir/SkSLSwizzle.h"
-#include "ir/SkSLSwitchStatement.h"
-#include "ir/SkSLTernaryExpression.h"
-#include "ir/SkSLVarDeclarationsStatement.h"
-#include "ir/SkSLWhileStatement.h"
+#include "src/sksl/ir/SkSLBinaryExpression.h"
+#include "src/sksl/ir/SkSLConstructor.h"
+#include "src/sksl/ir/SkSLDoStatement.h"
+#include "src/sksl/ir/SkSLExpressionStatement.h"
+#include "src/sksl/ir/SkSLFieldAccess.h"
+#include "src/sksl/ir/SkSLForStatement.h"
+#include "src/sksl/ir/SkSLFunctionCall.h"
+#include "src/sksl/ir/SkSLIfStatement.h"
+#include "src/sksl/ir/SkSLIndexExpression.h"
+#include "src/sksl/ir/SkSLPostfixExpression.h"
+#include "src/sksl/ir/SkSLPrefixExpression.h"
+#include "src/sksl/ir/SkSLReturnStatement.h"
+#include "src/sksl/ir/SkSLSwitchStatement.h"
+#include "src/sksl/ir/SkSLSwizzle.h"
+#include "src/sksl/ir/SkSLTernaryExpression.h"
+#include "src/sksl/ir/SkSLVarDeclarationsStatement.h"
+#include "src/sksl/ir/SkSLWhileStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLCFGGenerator.h b/src/sksl/SkSLCFGGenerator.h
index d8a4f82..7bcb89e 100644
--- a/src/sksl/SkSLCFGGenerator.h
+++ b/src/sksl/SkSLCFGGenerator.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_CFGGENERATOR
 #define SKSL_CFGGENERATOR
 
-#include "ir/SkSLExpression.h"
-#include "ir/SkSLFunctionDefinition.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLFunctionDefinition.h"
 
 #include <set>
 #include <stack>
diff --git a/src/sksl/SkSLCPP.h b/src/sksl/SkSLCPP.h
index 2da697f..40d876d 100644
--- a/src/sksl/SkSLCPP.h
+++ b/src/sksl/SkSLCPP.h
@@ -11,7 +11,7 @@
 // functions used by CPP programs created by skslc
 
 #include <cmath>
-#include "SkPoint.h"
+#include "include/core/SkPoint.h"
 
 using std::abs;
 
diff --git a/src/sksl/SkSLCPPCodeGenerator.cpp b/src/sksl/SkSLCPPCodeGenerator.cpp
index c4f56b5..1ef7c43 100644
--- a/src/sksl/SkSLCPPCodeGenerator.cpp
+++ b/src/sksl/SkSLCPPCodeGenerator.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLCPPCodeGenerator.h"
+#include "src/sksl/SkSLCPPCodeGenerator.h"
 
-#include "SkSLCompiler.h"
-#include "SkSLCPPUniformCTypes.h"
-#include "SkSLHCodeGenerator.h"
+#include "src/sksl/SkSLCPPUniformCTypes.h"
+#include "src/sksl/SkSLCompiler.h"
+#include "src/sksl/SkSLHCodeGenerator.h"
 
 #include <algorithm>
 
@@ -1202,14 +1202,14 @@
     const char* fullName = fFullName.c_str();
     this->writef("%s\n", HCodeGenerator::GetHeader(fProgram, fErrors).c_str());
     this->writef(kFragmentProcessorHeader, fullName);
-    this->writef("#include \"%s.h\"\n", fullName);
+    this->writef("#include \"%s.h\"\n\n", fullName);
     this->writeSection(CPP_SECTION);
-    this->writef("#include \"glsl/GrGLSLFragmentProcessor.h\"\n"
-                 "#include \"glsl/GrGLSLFragmentShaderBuilder.h\"\n"
-                 "#include \"glsl/GrGLSLProgramBuilder.h\"\n"
-                 "#include \"GrTexture.h\"\n"
-                 "#include \"SkSLCPP.h\"\n"
-                 "#include \"SkSLUtil.h\"\n"
+    this->writef("#include \"include/gpu/GrTexture.h\"\n"
+                 "#include \"src/gpu/glsl/GrGLSLFragmentProcessor.h\"\n"
+                 "#include \"src/gpu/glsl/GrGLSLFragmentShaderBuilder.h\"\n"
+                 "#include \"src/gpu/glsl/GrGLSLProgramBuilder.h\"\n"
+                 "#include \"src/sksl/SkSLCPP.h\"\n"
+                 "#include \"src/sksl/SkSLUtil.h\"\n"
                  "class GrGLSL%s : public GrGLSLFragmentProcessor {\n"
                  "public:\n"
                  "    GrGLSL%s() {}\n",
diff --git a/src/sksl/SkSLCPPCodeGenerator.h b/src/sksl/SkSLCPPCodeGenerator.h
index bc74d3c..803270c 100644
--- a/src/sksl/SkSLCPPCodeGenerator.h
+++ b/src/sksl/SkSLCPPCodeGenerator.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_CPPCODEGENERATOR
 #define SKSL_CPPCODEGENERATOR
 
-#include "SkSLGLSLCodeGenerator.h"
-#include "SkSLSectionAndParameterHelper.h"
+#include "src/sksl/SkSLGLSLCodeGenerator.h"
+#include "src/sksl/SkSLSectionAndParameterHelper.h"
 
 #include <set>
 
diff --git a/src/sksl/SkSLCPPUniformCTypes.cpp b/src/sksl/SkSLCPPUniformCTypes.cpp
index c8122c3..c34cdac 100644
--- a/src/sksl/SkSLCPPUniformCTypes.cpp
+++ b/src/sksl/SkSLCPPUniformCTypes.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLCPPUniformCTypes.h"
-#include "SkSLHCodeGenerator.h"
-#include "SkSLStringStream.h"
+#include "src/sksl/SkSLCPPUniformCTypes.h"
+#include "src/sksl/SkSLHCodeGenerator.h"
+#include "src/sksl/SkSLStringStream.h"
 
 #include <vector>
 
diff --git a/src/sksl/SkSLCPPUniformCTypes.h b/src/sksl/SkSLCPPUniformCTypes.h
index 624b6f3..c2c01f9 100644
--- a/src/sksl/SkSLCPPUniformCTypes.h
+++ b/src/sksl/SkSLCPPUniformCTypes.h
@@ -8,10 +8,10 @@
 #ifndef SkSLUniformCTypes_DEFINED
 #define SkSLUniformCTypes_DEFINED
 
-#include "SkSLString.h"
-#include "SkSLContext.h"
-#include "ir/SkSLType.h"
-#include "ir/SkSLVariable.h"
+#include "src/sksl/SkSLContext.h"
+#include "src/sksl/SkSLString.h"
+#include "src/sksl/ir/SkSLType.h"
+#include "src/sksl/ir/SkSLVariable.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLCodeGenerator.h b/src/sksl/SkSLCodeGenerator.h
index 737b5dd..8541c29 100644
--- a/src/sksl/SkSLCodeGenerator.h
+++ b/src/sksl/SkSLCodeGenerator.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_CODEGENERATOR
 #define SKSL_CODEGENERATOR
 
-#include "ir/SkSLProgram.h"
-#include "SkSLOutputStream.h"
+#include "src/sksl/SkSLOutputStream.h"
+#include "src/sksl/ir/SkSLProgram.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLCompiler.cpp b/src/sksl/SkSLCompiler.cpp
index 0b0105d..e7ff7e4 100644
--- a/src/sksl/SkSLCompiler.cpp
+++ b/src/sksl/SkSLCompiler.cpp
@@ -5,28 +5,28 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLCompiler.h"
+#include "src/sksl/SkSLCompiler.h"
 
-#include "SkSLByteCodeGenerator.h"
-#include "SkSLCFGGenerator.h"
-#include "SkSLCPPCodeGenerator.h"
-#include "SkSLGLSLCodeGenerator.h"
-#include "SkSLHCodeGenerator.h"
-#include "SkSLIRGenerator.h"
-#include "SkSLMetalCodeGenerator.h"
-#include "SkSLPipelineStageCodeGenerator.h"
-#include "SkSLSPIRVCodeGenerator.h"
-#include "ir/SkSLEnum.h"
-#include "ir/SkSLExpression.h"
-#include "ir/SkSLExpressionStatement.h"
-#include "ir/SkSLFunctionCall.h"
-#include "ir/SkSLIntLiteral.h"
-#include "ir/SkSLModifiersDeclaration.h"
-#include "ir/SkSLNop.h"
-#include "ir/SkSLSymbolTable.h"
-#include "ir/SkSLTernaryExpression.h"
-#include "ir/SkSLUnresolvedFunction.h"
-#include "ir/SkSLVarDeclarations.h"
+#include "src/sksl/SkSLByteCodeGenerator.h"
+#include "src/sksl/SkSLCFGGenerator.h"
+#include "src/sksl/SkSLCPPCodeGenerator.h"
+#include "src/sksl/SkSLGLSLCodeGenerator.h"
+#include "src/sksl/SkSLHCodeGenerator.h"
+#include "src/sksl/SkSLIRGenerator.h"
+#include "src/sksl/SkSLMetalCodeGenerator.h"
+#include "src/sksl/SkSLPipelineStageCodeGenerator.h"
+#include "src/sksl/SkSLSPIRVCodeGenerator.h"
+#include "src/sksl/ir/SkSLEnum.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLExpressionStatement.h"
+#include "src/sksl/ir/SkSLFunctionCall.h"
+#include "src/sksl/ir/SkSLIntLiteral.h"
+#include "src/sksl/ir/SkSLModifiersDeclaration.h"
+#include "src/sksl/ir/SkSLNop.h"
+#include "src/sksl/ir/SkSLSymbolTable.h"
+#include "src/sksl/ir/SkSLTernaryExpression.h"
+#include "src/sksl/ir/SkSLUnresolvedFunction.h"
+#include "src/sksl/ir/SkSLVarDeclarations.h"
 
 #ifdef SK_ENABLE_SPIRV_VALIDATION
 #include "spirv-tools/libspirv.hpp"
diff --git a/src/sksl/SkSLCompiler.h b/src/sksl/SkSLCompiler.h
index c000ca8..a31e493 100644
--- a/src/sksl/SkSLCompiler.h
+++ b/src/sksl/SkSLCompiler.h
@@ -11,13 +11,13 @@
 #include <set>
 #include <unordered_set>
 #include <vector>
-#include "ir/SkSLProgram.h"
-#include "ir/SkSLSymbolTable.h"
-#include "SkSLByteCode.h"
-#include "SkSLCFGGenerator.h"
-#include "SkSLContext.h"
-#include "SkSLErrorReporter.h"
-#include "SkSLLexer.h"
+#include "src/sksl/SkSLByteCode.h"
+#include "src/sksl/SkSLCFGGenerator.h"
+#include "src/sksl/SkSLContext.h"
+#include "src/sksl/SkSLErrorReporter.h"
+#include "src/sksl/SkSLLexer.h"
+#include "src/sksl/ir/SkSLProgram.h"
+#include "src/sksl/ir/SkSLSymbolTable.h"
 
 #define SK_FRAGCOLOR_BUILTIN           10001
 #define SK_IN_BUILTIN                  10002
diff --git a/src/sksl/SkSLContext.h b/src/sksl/SkSLContext.h
index eef7dd5..abe7322 100644
--- a/src/sksl/SkSLContext.h
+++ b/src/sksl/SkSLContext.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_CONTEXT
 #define SKSL_CONTEXT
 
-#include "ir/SkSLType.h"
-#include "ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLType.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLDefines.h b/src/sksl/SkSLDefines.h
index 21aa7a6..a86f8b8 100644
--- a/src/sksl/SkSLDefines.h
+++ b/src/sksl/SkSLDefines.h
@@ -22,7 +22,7 @@
 #define SkAssertResult(x) if (!(x)) abort();
 #define SkDEBUGCODE(...) __VA_ARGS__
 #else
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #endif
 
 #define SKSL_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
diff --git a/src/sksl/SkSLErrorReporter.h b/src/sksl/SkSLErrorReporter.h
index 303a0e1..a487e80 100644
--- a/src/sksl/SkSLErrorReporter.h
+++ b/src/sksl/SkSLErrorReporter.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ERRORREPORTER
 #define SKSL_ERRORREPORTER
 
-#include "SkSLPosition.h"
+#include "src/sksl/SkSLPosition.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLFileOutputStream.h b/src/sksl/SkSLFileOutputStream.h
index 94939f6..e7de134 100644
--- a/src/sksl/SkSLFileOutputStream.h
+++ b/src/sksl/SkSLFileOutputStream.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_FILEOUTPUTSTREAM
 #define SKSL_FILEOUTPUTSTREAM
 
-#include "SkSLOutputStream.h"
-#include "SkSLUtil.h"
+#include "src/sksl/SkSLOutputStream.h"
+#include "src/sksl/SkSLUtil.h"
 #include <stdio.h>
 
 namespace SkSL {
diff --git a/src/sksl/SkSLGLSLCodeGenerator.cpp b/src/sksl/SkSLGLSLCodeGenerator.cpp
index d003dc9..0882023 100644
--- a/src/sksl/SkSLGLSLCodeGenerator.cpp
+++ b/src/sksl/SkSLGLSLCodeGenerator.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLGLSLCodeGenerator.h"
+#include "src/sksl/SkSLGLSLCodeGenerator.h"
 
-#include "SkSLCompiler.h"
-#include "ir/SkSLExpressionStatement.h"
-#include "ir/SkSLExtension.h"
-#include "ir/SkSLIndexExpression.h"
-#include "ir/SkSLModifiersDeclaration.h"
-#include "ir/SkSLNop.h"
-#include "ir/SkSLVariableReference.h"
+#include "src/sksl/SkSLCompiler.h"
+#include "src/sksl/ir/SkSLExpressionStatement.h"
+#include "src/sksl/ir/SkSLExtension.h"
+#include "src/sksl/ir/SkSLIndexExpression.h"
+#include "src/sksl/ir/SkSLModifiersDeclaration.h"
+#include "src/sksl/ir/SkSLNop.h"
+#include "src/sksl/ir/SkSLVariableReference.h"
 
 #ifndef SKSL_STANDALONE
-#include "SkOnce.h"
+#include "include/private/SkOnce.h"
 #endif
 
 namespace SkSL {
diff --git a/src/sksl/SkSLGLSLCodeGenerator.h b/src/sksl/SkSLGLSLCodeGenerator.h
index 2a743ea..df2deb1 100644
--- a/src/sksl/SkSLGLSLCodeGenerator.h
+++ b/src/sksl/SkSLGLSLCodeGenerator.h
@@ -12,36 +12,36 @@
 #include <tuple>
 #include <unordered_map>
 
-#include "SkSLCodeGenerator.h"
-#include "SkSLStringStream.h"
-#include "ir/SkSLBinaryExpression.h"
-#include "ir/SkSLBoolLiteral.h"
-#include "ir/SkSLConstructor.h"
-#include "ir/SkSLDoStatement.h"
-#include "ir/SkSLExtension.h"
-#include "ir/SkSLFloatLiteral.h"
-#include "ir/SkSLIfStatement.h"
-#include "ir/SkSLIndexExpression.h"
-#include "ir/SkSLInterfaceBlock.h"
-#include "ir/SkSLIntLiteral.h"
-#include "ir/SkSLFieldAccess.h"
-#include "ir/SkSLForStatement.h"
-#include "ir/SkSLFunctionCall.h"
-#include "ir/SkSLFunctionDeclaration.h"
-#include "ir/SkSLFunctionDefinition.h"
-#include "ir/SkSLPrefixExpression.h"
-#include "ir/SkSLPostfixExpression.h"
-#include "ir/SkSLProgramElement.h"
-#include "ir/SkSLReturnStatement.h"
-#include "ir/SkSLSetting.h"
-#include "ir/SkSLStatement.h"
-#include "ir/SkSLSwitchStatement.h"
-#include "ir/SkSLSwizzle.h"
-#include "ir/SkSLTernaryExpression.h"
-#include "ir/SkSLVarDeclarations.h"
-#include "ir/SkSLVarDeclarationsStatement.h"
-#include "ir/SkSLVariableReference.h"
-#include "ir/SkSLWhileStatement.h"
+#include "src/sksl/SkSLCodeGenerator.h"
+#include "src/sksl/SkSLStringStream.h"
+#include "src/sksl/ir/SkSLBinaryExpression.h"
+#include "src/sksl/ir/SkSLBoolLiteral.h"
+#include "src/sksl/ir/SkSLConstructor.h"
+#include "src/sksl/ir/SkSLDoStatement.h"
+#include "src/sksl/ir/SkSLExtension.h"
+#include "src/sksl/ir/SkSLFieldAccess.h"
+#include "src/sksl/ir/SkSLFloatLiteral.h"
+#include "src/sksl/ir/SkSLForStatement.h"
+#include "src/sksl/ir/SkSLFunctionCall.h"
+#include "src/sksl/ir/SkSLFunctionDeclaration.h"
+#include "src/sksl/ir/SkSLFunctionDefinition.h"
+#include "src/sksl/ir/SkSLIfStatement.h"
+#include "src/sksl/ir/SkSLIndexExpression.h"
+#include "src/sksl/ir/SkSLIntLiteral.h"
+#include "src/sksl/ir/SkSLInterfaceBlock.h"
+#include "src/sksl/ir/SkSLPostfixExpression.h"
+#include "src/sksl/ir/SkSLPrefixExpression.h"
+#include "src/sksl/ir/SkSLProgramElement.h"
+#include "src/sksl/ir/SkSLReturnStatement.h"
+#include "src/sksl/ir/SkSLSetting.h"
+#include "src/sksl/ir/SkSLStatement.h"
+#include "src/sksl/ir/SkSLSwitchStatement.h"
+#include "src/sksl/ir/SkSLSwizzle.h"
+#include "src/sksl/ir/SkSLTernaryExpression.h"
+#include "src/sksl/ir/SkSLVarDeclarations.h"
+#include "src/sksl/ir/SkSLVarDeclarationsStatement.h"
+#include "src/sksl/ir/SkSLVariableReference.h"
+#include "src/sksl/ir/SkSLWhileStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLHCodeGenerator.cpp b/src/sksl/SkSLHCodeGenerator.cpp
index 7127415..f43aa17 100644
--- a/src/sksl/SkSLHCodeGenerator.cpp
+++ b/src/sksl/SkSLHCodeGenerator.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLHCodeGenerator.h"
+#include "src/sksl/SkSLHCodeGenerator.h"
 
-#include "SkSLParser.h"
-#include "SkSLUtil.h"
-#include "ir/SkSLEnum.h"
-#include "ir/SkSLFunctionDeclaration.h"
-#include "ir/SkSLFunctionDefinition.h"
-#include "ir/SkSLSection.h"
-#include "ir/SkSLVarDeclarations.h"
+#include "src/sksl/SkSLParser.h"
+#include "src/sksl/SkSLUtil.h"
+#include "src/sksl/ir/SkSLEnum.h"
+#include "src/sksl/ir/SkSLFunctionDeclaration.h"
+#include "src/sksl/ir/SkSLFunctionDefinition.h"
+#include "src/sksl/ir/SkSLSection.h"
+#include "src/sksl/ir/SkSLVarDeclarations.h"
 
 #include <set>
 
@@ -342,10 +342,11 @@
                  "#define %s_DEFINED\n",
                  fFullName.c_str(),
                  fFullName.c_str());
-    this->writef("#include \"SkTypes.h\"\n");
+    this->writef("#include \"include/core/SkTypes.h\"\n");
     this->writeSection(HEADER_SECTION);
-    this->writef("#include \"GrFragmentProcessor.h\"\n"
-                 "#include \"GrCoordTransform.h\"\n");
+    this->writef("\n"
+                 "#include \"src/gpu/GrCoordTransform.h\"\n"
+                 "#include \"src/gpu/GrFragmentProcessor.h\"\n");
     this->writef("class %s : public GrFragmentProcessor {\n"
                  "public:\n",
                  fFullName.c_str());
diff --git a/src/sksl/SkSLHCodeGenerator.h b/src/sksl/SkSLHCodeGenerator.h
index 6561984..03ab038 100644
--- a/src/sksl/SkSLHCodeGenerator.h
+++ b/src/sksl/SkSLHCodeGenerator.h
@@ -8,10 +8,10 @@
 #ifndef SKSL_HCODEGENERATOR
 #define SKSL_HCODEGENERATOR
 
-#include "SkSLCodeGenerator.h"
-#include "SkSLSectionAndParameterHelper.h"
-#include "ir/SkSLType.h"
-#include "ir/SkSLVariable.h"
+#include "src/sksl/SkSLCodeGenerator.h"
+#include "src/sksl/SkSLSectionAndParameterHelper.h"
+#include "src/sksl/ir/SkSLType.h"
+#include "src/sksl/ir/SkSLVariable.h"
 
 #include <cctype>
 
diff --git a/src/sksl/SkSLIRGenerator.cpp b/src/sksl/SkSLIRGenerator.cpp
index d64525d..ea3b22b 100644
--- a/src/sksl/SkSLIRGenerator.cpp
+++ b/src/sksl/SkSLIRGenerator.cpp
@@ -5,57 +5,57 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLIRGenerator.h"
+#include "src/sksl/SkSLIRGenerator.h"
 
 #include "limits.h"
 #include <unordered_set>
 
-#include "SkSLCompiler.h"
-#include "SkSLParser.h"
-#include "ast/SkSLASTBoolLiteral.h"
-#include "ast/SkSLASTFieldSuffix.h"
-#include "ast/SkSLASTFloatLiteral.h"
-#include "ast/SkSLASTIndexSuffix.h"
-#include "ast/SkSLASTIntLiteral.h"
-#include "ast/SkSLASTNullLiteral.h"
-#include "ir/SkSLAppendStage.h"
-#include "ir/SkSLBinaryExpression.h"
-#include "ir/SkSLBoolLiteral.h"
-#include "ir/SkSLBreakStatement.h"
-#include "ir/SkSLConstructor.h"
-#include "ir/SkSLContinueStatement.h"
-#include "ir/SkSLDiscardStatement.h"
-#include "ir/SkSLDoStatement.h"
-#include "ir/SkSLEnum.h"
-#include "ir/SkSLExpressionStatement.h"
-#include "ir/SkSLField.h"
-#include "ir/SkSLFieldAccess.h"
-#include "ir/SkSLFloatLiteral.h"
-#include "ir/SkSLForStatement.h"
-#include "ir/SkSLFunctionCall.h"
-#include "ir/SkSLFunctionDeclaration.h"
-#include "ir/SkSLFunctionDefinition.h"
-#include "ir/SkSLFunctionReference.h"
-#include "ir/SkSLIfStatement.h"
-#include "ir/SkSLIndexExpression.h"
-#include "ir/SkSLInterfaceBlock.h"
-#include "ir/SkSLIntLiteral.h"
-#include "ir/SkSLLayout.h"
-#include "ir/SkSLNullLiteral.h"
-#include "ir/SkSLPostfixExpression.h"
-#include "ir/SkSLPrefixExpression.h"
-#include "ir/SkSLReturnStatement.h"
-#include "ir/SkSLSetting.h"
-#include "ir/SkSLSwitchCase.h"
-#include "ir/SkSLSwitchStatement.h"
-#include "ir/SkSLSwizzle.h"
-#include "ir/SkSLTernaryExpression.h"
-#include "ir/SkSLUnresolvedFunction.h"
-#include "ir/SkSLVariable.h"
-#include "ir/SkSLVarDeclarations.h"
-#include "ir/SkSLVarDeclarationsStatement.h"
-#include "ir/SkSLVariableReference.h"
-#include "ir/SkSLWhileStatement.h"
+#include "src/sksl/SkSLCompiler.h"
+#include "src/sksl/SkSLParser.h"
+#include "src/sksl/ast/SkSLASTBoolLiteral.h"
+#include "src/sksl/ast/SkSLASTFieldSuffix.h"
+#include "src/sksl/ast/SkSLASTFloatLiteral.h"
+#include "src/sksl/ast/SkSLASTIndexSuffix.h"
+#include "src/sksl/ast/SkSLASTIntLiteral.h"
+#include "src/sksl/ast/SkSLASTNullLiteral.h"
+#include "src/sksl/ir/SkSLAppendStage.h"
+#include "src/sksl/ir/SkSLBinaryExpression.h"
+#include "src/sksl/ir/SkSLBoolLiteral.h"
+#include "src/sksl/ir/SkSLBreakStatement.h"
+#include "src/sksl/ir/SkSLConstructor.h"
+#include "src/sksl/ir/SkSLContinueStatement.h"
+#include "src/sksl/ir/SkSLDiscardStatement.h"
+#include "src/sksl/ir/SkSLDoStatement.h"
+#include "src/sksl/ir/SkSLEnum.h"
+#include "src/sksl/ir/SkSLExpressionStatement.h"
+#include "src/sksl/ir/SkSLField.h"
+#include "src/sksl/ir/SkSLFieldAccess.h"
+#include "src/sksl/ir/SkSLFloatLiteral.h"
+#include "src/sksl/ir/SkSLForStatement.h"
+#include "src/sksl/ir/SkSLFunctionCall.h"
+#include "src/sksl/ir/SkSLFunctionDeclaration.h"
+#include "src/sksl/ir/SkSLFunctionDefinition.h"
+#include "src/sksl/ir/SkSLFunctionReference.h"
+#include "src/sksl/ir/SkSLIfStatement.h"
+#include "src/sksl/ir/SkSLIndexExpression.h"
+#include "src/sksl/ir/SkSLIntLiteral.h"
+#include "src/sksl/ir/SkSLInterfaceBlock.h"
+#include "src/sksl/ir/SkSLLayout.h"
+#include "src/sksl/ir/SkSLNullLiteral.h"
+#include "src/sksl/ir/SkSLPostfixExpression.h"
+#include "src/sksl/ir/SkSLPrefixExpression.h"
+#include "src/sksl/ir/SkSLReturnStatement.h"
+#include "src/sksl/ir/SkSLSetting.h"
+#include "src/sksl/ir/SkSLSwitchCase.h"
+#include "src/sksl/ir/SkSLSwitchStatement.h"
+#include "src/sksl/ir/SkSLSwizzle.h"
+#include "src/sksl/ir/SkSLTernaryExpression.h"
+#include "src/sksl/ir/SkSLUnresolvedFunction.h"
+#include "src/sksl/ir/SkSLVarDeclarations.h"
+#include "src/sksl/ir/SkSLVarDeclarationsStatement.h"
+#include "src/sksl/ir/SkSLVariable.h"
+#include "src/sksl/ir/SkSLVariableReference.h"
+#include "src/sksl/ir/SkSLWhileStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLIRGenerator.h b/src/sksl/SkSLIRGenerator.h
index 7a39ab1..00934e7 100644
--- a/src/sksl/SkSLIRGenerator.h
+++ b/src/sksl/SkSLIRGenerator.h
@@ -8,49 +8,49 @@
 #ifndef SKSL_IRGENERATOR
 #define SKSL_IRGENERATOR
 
-#include "SkSLErrorReporter.h"
-#include "ast/SkSLASTBinaryExpression.h"
-#include "ast/SkSLASTBlock.h"
-#include "ast/SkSLASTBreakStatement.h"
-#include "ast/SkSLASTCallSuffix.h"
-#include "ast/SkSLASTContinueStatement.h"
-#include "ast/SkSLASTDiscardStatement.h"
-#include "ast/SkSLASTDoStatement.h"
-#include "ast/SkSLASTEnum.h"
-#include "ast/SkSLASTExpression.h"
-#include "ast/SkSLASTExpressionStatement.h"
-#include "ast/SkSLASTExtension.h"
-#include "ast/SkSLASTForStatement.h"
-#include "ast/SkSLASTFunction.h"
-#include "ast/SkSLASTIdentifier.h"
-#include "ast/SkSLASTIfStatement.h"
-#include "ast/SkSLASTInterfaceBlock.h"
-#include "ast/SkSLASTModifiersDeclaration.h"
-#include "ast/SkSLASTPrefixExpression.h"
-#include "ast/SkSLASTReturnStatement.h"
-#include "ast/SkSLASTSection.h"
-#include "ast/SkSLASTStatement.h"
-#include "ast/SkSLASTSuffixExpression.h"
-#include "ast/SkSLASTSwitchStatement.h"
-#include "ast/SkSLASTTernaryExpression.h"
-#include "ast/SkSLASTVarDeclaration.h"
-#include "ast/SkSLASTVarDeclarationStatement.h"
-#include "ast/SkSLASTWhileStatement.h"
-#include "ir/SkSLBlock.h"
-#include "ir/SkSLExpression.h"
-#include "ir/SkSLExtension.h"
-#include "ir/SkSLFunctionDefinition.h"
-#include "ir/SkSLInterfaceBlock.h"
-#include "ir/SkSLModifiers.h"
-#include "ir/SkSLModifiersDeclaration.h"
-#include "ir/SkSLProgram.h"
-#include "ir/SkSLSection.h"
-#include "ir/SkSLSymbolTable.h"
-#include "ir/SkSLStatement.h"
-#include "ir/SkSLType.h"
-#include "ir/SkSLTypeReference.h"
-#include "ir/SkSLVarDeclarations.h"
-#include "ir/SkSLVariableReference.h"
+#include "src/sksl/SkSLErrorReporter.h"
+#include "src/sksl/ast/SkSLASTBinaryExpression.h"
+#include "src/sksl/ast/SkSLASTBlock.h"
+#include "src/sksl/ast/SkSLASTBreakStatement.h"
+#include "src/sksl/ast/SkSLASTCallSuffix.h"
+#include "src/sksl/ast/SkSLASTContinueStatement.h"
+#include "src/sksl/ast/SkSLASTDiscardStatement.h"
+#include "src/sksl/ast/SkSLASTDoStatement.h"
+#include "src/sksl/ast/SkSLASTEnum.h"
+#include "src/sksl/ast/SkSLASTExpression.h"
+#include "src/sksl/ast/SkSLASTExpressionStatement.h"
+#include "src/sksl/ast/SkSLASTExtension.h"
+#include "src/sksl/ast/SkSLASTForStatement.h"
+#include "src/sksl/ast/SkSLASTFunction.h"
+#include "src/sksl/ast/SkSLASTIdentifier.h"
+#include "src/sksl/ast/SkSLASTIfStatement.h"
+#include "src/sksl/ast/SkSLASTInterfaceBlock.h"
+#include "src/sksl/ast/SkSLASTModifiersDeclaration.h"
+#include "src/sksl/ast/SkSLASTPrefixExpression.h"
+#include "src/sksl/ast/SkSLASTReturnStatement.h"
+#include "src/sksl/ast/SkSLASTSection.h"
+#include "src/sksl/ast/SkSLASTStatement.h"
+#include "src/sksl/ast/SkSLASTSuffixExpression.h"
+#include "src/sksl/ast/SkSLASTSwitchStatement.h"
+#include "src/sksl/ast/SkSLASTTernaryExpression.h"
+#include "src/sksl/ast/SkSLASTVarDeclaration.h"
+#include "src/sksl/ast/SkSLASTVarDeclarationStatement.h"
+#include "src/sksl/ast/SkSLASTWhileStatement.h"
+#include "src/sksl/ir/SkSLBlock.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLExtension.h"
+#include "src/sksl/ir/SkSLFunctionDefinition.h"
+#include "src/sksl/ir/SkSLInterfaceBlock.h"
+#include "src/sksl/ir/SkSLModifiers.h"
+#include "src/sksl/ir/SkSLModifiersDeclaration.h"
+#include "src/sksl/ir/SkSLProgram.h"
+#include "src/sksl/ir/SkSLSection.h"
+#include "src/sksl/ir/SkSLStatement.h"
+#include "src/sksl/ir/SkSLSymbolTable.h"
+#include "src/sksl/ir/SkSLType.h"
+#include "src/sksl/ir/SkSLTypeReference.h"
+#include "src/sksl/ir/SkSLVarDeclarations.h"
+#include "src/sksl/ir/SkSLVariableReference.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLInterpreter.cpp b/src/sksl/SkSLInterpreter.cpp
index c2051d5..bb97c72 100644
--- a/src/sksl/SkSLInterpreter.cpp
+++ b/src/sksl/SkSLInterpreter.cpp
@@ -7,23 +7,23 @@
 
 #ifndef SKSL_STANDALONE
 
-#include "SkSLInterpreter.h"
-#include "ir/SkSLBinaryExpression.h"
-#include "ir/SkSLExpressionStatement.h"
-#include "ir/SkSLForStatement.h"
-#include "ir/SkSLFunctionCall.h"
-#include "ir/SkSLFunctionReference.h"
-#include "ir/SkSLIfStatement.h"
-#include "ir/SkSLIndexExpression.h"
-#include "ir/SkSLPostfixExpression.h"
-#include "ir/SkSLPrefixExpression.h"
-#include "ir/SkSLProgram.h"
-#include "ir/SkSLStatement.h"
-#include "ir/SkSLTernaryExpression.h"
-#include "ir/SkSLVarDeclarations.h"
-#include "ir/SkSLVarDeclarationsStatement.h"
-#include "ir/SkSLVariableReference.h"
-#include "SkRasterPipeline.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/sksl/SkSLInterpreter.h"
+#include "src/sksl/ir/SkSLBinaryExpression.h"
+#include "src/sksl/ir/SkSLExpressionStatement.h"
+#include "src/sksl/ir/SkSLForStatement.h"
+#include "src/sksl/ir/SkSLFunctionCall.h"
+#include "src/sksl/ir/SkSLFunctionReference.h"
+#include "src/sksl/ir/SkSLIfStatement.h"
+#include "src/sksl/ir/SkSLIndexExpression.h"
+#include "src/sksl/ir/SkSLPostfixExpression.h"
+#include "src/sksl/ir/SkSLPrefixExpression.h"
+#include "src/sksl/ir/SkSLProgram.h"
+#include "src/sksl/ir/SkSLStatement.h"
+#include "src/sksl/ir/SkSLTernaryExpression.h"
+#include "src/sksl/ir/SkSLVarDeclarations.h"
+#include "src/sksl/ir/SkSLVarDeclarationsStatement.h"
+#include "src/sksl/ir/SkSLVariableReference.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLInterpreter.h b/src/sksl/SkSLInterpreter.h
index e56f3ce..b91be2a 100644
--- a/src/sksl/SkSLInterpreter.h
+++ b/src/sksl/SkSLInterpreter.h
@@ -8,13 +8,13 @@
 #ifndef SKSL_INTERPRETER
 #define SKSL_INTERPRETER
 
-#include "SkSLByteCode.h"
-#include "ir/SkSLAppendStage.h"
-#include "ir/SkSLExpression.h"
-#include "ir/SkSLFunctionCall.h"
-#include "ir/SkSLFunctionDefinition.h"
-#include "ir/SkSLProgram.h"
-#include "ir/SkSLStatement.h"
+#include "src/sksl/SkSLByteCode.h"
+#include "src/sksl/ir/SkSLAppendStage.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLFunctionCall.h"
+#include "src/sksl/ir/SkSLFunctionDefinition.h"
+#include "src/sksl/ir/SkSLProgram.h"
+#include "src/sksl/ir/SkSLStatement.h"
 
 #include <stack>
 
diff --git a/src/sksl/SkSLJIT.cpp b/src/sksl/SkSLJIT.cpp
index e601387..9077498 100644
--- a/src/sksl/SkSLJIT.cpp
+++ b/src/sksl/SkSLJIT.cpp
@@ -9,17 +9,17 @@
 
 #ifdef SK_LLVM_AVAILABLE
 
-#include "SkSLJIT.h"
+#include "src/sksl/SkSLJIT.h"
 
-#include "SkCpu.h"
-#include "SkRasterPipeline.h"
-#include "ir/SkSLAppendStage.h"
-#include "ir/SkSLExpressionStatement.h"
-#include "ir/SkSLFunctionCall.h"
-#include "ir/SkSLFunctionReference.h"
-#include "ir/SkSLIndexExpression.h"
-#include "ir/SkSLProgram.h"
-#include "ir/SkSLUnresolvedFunction.h"
+#include "src/core/SkCpu.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/sksl/ir/SkSLAppendStage.h"
+#include "src/sksl/ir/SkSLExpressionStatement.h"
+#include "src/sksl/ir/SkSLFunctionCall.h"
+#include "src/sksl/ir/SkSLFunctionReference.h"
+#include "src/sksl/ir/SkSLIndexExpression.h"
+#include "src/sksl/ir/SkSLProgram.h"
+#include "src/sksl/ir/SkSLUnresolvedFunction.h"
 #include "llvm/ExecutionEngine/RTDyldMemoryManager.h"
 
 static constexpr int MAX_VECTOR_COUNT = 16;
diff --git a/src/sksl/SkSLJIT.h b/src/sksl/SkSLJIT.h
index c5b7ce5..8b815ff 100644
--- a/src/sksl/SkSLJIT.h
+++ b/src/sksl/SkSLJIT.h
@@ -10,26 +10,26 @@
 
 #ifdef SK_LLVM_AVAILABLE
 
-#include "ir/SkSLBinaryExpression.h"
-#include "ir/SkSLBreakStatement.h"
-#include "ir/SkSLContinueStatement.h"
-#include "ir/SkSLExpression.h"
-#include "ir/SkSLDoStatement.h"
-#include "ir/SkSLForStatement.h"
-#include "ir/SkSLFunctionCall.h"
-#include "ir/SkSLFunctionDefinition.h"
-#include "ir/SkSLIfStatement.h"
-#include "ir/SkSLIndexExpression.h"
-#include "ir/SkSLPrefixExpression.h"
-#include "ir/SkSLPostfixExpression.h"
-#include "ir/SkSLProgram.h"
-#include "ir/SkSLReturnStatement.h"
-#include "ir/SkSLStatement.h"
-#include "ir/SkSLSwizzle.h"
-#include "ir/SkSLTernaryExpression.h"
-#include "ir/SkSLVarDeclarationsStatement.h"
-#include "ir/SkSLVariableReference.h"
-#include "ir/SkSLWhileStatement.h"
+#include "src/sksl/ir/SkSLBinaryExpression.h"
+#include "src/sksl/ir/SkSLBreakStatement.h"
+#include "src/sksl/ir/SkSLContinueStatement.h"
+#include "src/sksl/ir/SkSLDoStatement.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLForStatement.h"
+#include "src/sksl/ir/SkSLFunctionCall.h"
+#include "src/sksl/ir/SkSLFunctionDefinition.h"
+#include "src/sksl/ir/SkSLIfStatement.h"
+#include "src/sksl/ir/SkSLIndexExpression.h"
+#include "src/sksl/ir/SkSLPostfixExpression.h"
+#include "src/sksl/ir/SkSLPrefixExpression.h"
+#include "src/sksl/ir/SkSLProgram.h"
+#include "src/sksl/ir/SkSLReturnStatement.h"
+#include "src/sksl/ir/SkSLStatement.h"
+#include "src/sksl/ir/SkSLSwizzle.h"
+#include "src/sksl/ir/SkSLTernaryExpression.h"
+#include "src/sksl/ir/SkSLVarDeclarationsStatement.h"
+#include "src/sksl/ir/SkSLVariableReference.h"
+#include "src/sksl/ir/SkSLWhileStatement.h"
 
 #include "llvm-c/Analysis.h"
 #include "llvm-c/Core.h"
diff --git a/src/sksl/SkSLLexer.cpp b/src/sksl/SkSLLexer.cpp
index 74dfbc4..0ec3286 100644
--- a/src/sksl/SkSLLexer.cpp
+++ b/src/sksl/SkSLLexer.cpp
@@ -7,7 +7,7 @@
 /*****************************************************************************************
  ******************** This file was generated by sksllex. Do not edit. *******************
  *****************************************************************************************/
-#include "SkSLLexer.h"
+#include "src/sksl/SkSLLexer.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLMain.cpp b/src/sksl/SkSLMain.cpp
index 3da90df..b8009cd 100644
--- a/src/sksl/SkSLMain.cpp
+++ b/src/sksl/SkSLMain.cpp
@@ -6,8 +6,8 @@
  */
 
 #include <fstream>
-#include "SkSLCompiler.h"
-#include "SkSLFileOutputStream.h"
+#include "src/sksl/SkSLCompiler.h"
+#include "src/sksl/SkSLFileOutputStream.h"
 
 // Given the path to a file (e.g. src/gpu/effects/GrFooFragmentProcessor.fp) and the expected
 // filename prefix and suffix (e.g. "Gr" and ".fp"), returns the "base name" of the
diff --git a/src/sksl/SkSLMemoryLayout.h b/src/sksl/SkSLMemoryLayout.h
index f038612..4b32276 100644
--- a/src/sksl/SkSLMemoryLayout.h
+++ b/src/sksl/SkSLMemoryLayout.h
@@ -8,7 +8,7 @@
 #ifndef SKIASL_MEMORYLAYOUT
 #define SKIASL_MEMORYLAYOUT
 
-#include "ir/SkSLType.h"
+#include "src/sksl/ir/SkSLType.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLMetalCodeGenerator.cpp b/src/sksl/SkSLMetalCodeGenerator.cpp
index 5e7153f..0b2e37d 100644
--- a/src/sksl/SkSLMetalCodeGenerator.cpp
+++ b/src/sksl/SkSLMetalCodeGenerator.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLMetalCodeGenerator.h"
+#include "src/sksl/SkSLMetalCodeGenerator.h"
 
-#include "SkSLCompiler.h"
-#include "ir/SkSLExpressionStatement.h"
-#include "ir/SkSLExtension.h"
-#include "ir/SkSLIndexExpression.h"
-#include "ir/SkSLModifiersDeclaration.h"
-#include "ir/SkSLNop.h"
-#include "ir/SkSLVariableReference.h"
+#include "src/sksl/SkSLCompiler.h"
+#include "src/sksl/ir/SkSLExpressionStatement.h"
+#include "src/sksl/ir/SkSLExtension.h"
+#include "src/sksl/ir/SkSLIndexExpression.h"
+#include "src/sksl/ir/SkSLModifiersDeclaration.h"
+#include "src/sksl/ir/SkSLNop.h"
+#include "src/sksl/ir/SkSLVariableReference.h"
 
 #ifdef SK_MOLTENVK
     static const uint32_t MVKMagicNum = 0x19960412;
diff --git a/src/sksl/SkSLMetalCodeGenerator.h b/src/sksl/SkSLMetalCodeGenerator.h
index 16be50f..c1daeec 100644
--- a/src/sksl/SkSLMetalCodeGenerator.h
+++ b/src/sksl/SkSLMetalCodeGenerator.h
@@ -12,37 +12,37 @@
 #include <tuple>
 #include <unordered_map>
 
-#include "SkSLCodeGenerator.h"
-#include "SkSLMemoryLayout.h"
-#include "SkSLStringStream.h"
-#include "ir/SkSLBinaryExpression.h"
-#include "ir/SkSLBoolLiteral.h"
-#include "ir/SkSLConstructor.h"
-#include "ir/SkSLDoStatement.h"
-#include "ir/SkSLExtension.h"
-#include "ir/SkSLFloatLiteral.h"
-#include "ir/SkSLIfStatement.h"
-#include "ir/SkSLIndexExpression.h"
-#include "ir/SkSLInterfaceBlock.h"
-#include "ir/SkSLIntLiteral.h"
-#include "ir/SkSLFieldAccess.h"
-#include "ir/SkSLForStatement.h"
-#include "ir/SkSLFunctionCall.h"
-#include "ir/SkSLFunctionDeclaration.h"
-#include "ir/SkSLFunctionDefinition.h"
-#include "ir/SkSLPrefixExpression.h"
-#include "ir/SkSLPostfixExpression.h"
-#include "ir/SkSLProgramElement.h"
-#include "ir/SkSLReturnStatement.h"
-#include "ir/SkSLSetting.h"
-#include "ir/SkSLStatement.h"
-#include "ir/SkSLSwitchStatement.h"
-#include "ir/SkSLSwizzle.h"
-#include "ir/SkSLTernaryExpression.h"
-#include "ir/SkSLVarDeclarations.h"
-#include "ir/SkSLVarDeclarationsStatement.h"
-#include "ir/SkSLVariableReference.h"
-#include "ir/SkSLWhileStatement.h"
+#include "src/sksl/SkSLCodeGenerator.h"
+#include "src/sksl/SkSLMemoryLayout.h"
+#include "src/sksl/SkSLStringStream.h"
+#include "src/sksl/ir/SkSLBinaryExpression.h"
+#include "src/sksl/ir/SkSLBoolLiteral.h"
+#include "src/sksl/ir/SkSLConstructor.h"
+#include "src/sksl/ir/SkSLDoStatement.h"
+#include "src/sksl/ir/SkSLExtension.h"
+#include "src/sksl/ir/SkSLFieldAccess.h"
+#include "src/sksl/ir/SkSLFloatLiteral.h"
+#include "src/sksl/ir/SkSLForStatement.h"
+#include "src/sksl/ir/SkSLFunctionCall.h"
+#include "src/sksl/ir/SkSLFunctionDeclaration.h"
+#include "src/sksl/ir/SkSLFunctionDefinition.h"
+#include "src/sksl/ir/SkSLIfStatement.h"
+#include "src/sksl/ir/SkSLIndexExpression.h"
+#include "src/sksl/ir/SkSLIntLiteral.h"
+#include "src/sksl/ir/SkSLInterfaceBlock.h"
+#include "src/sksl/ir/SkSLPostfixExpression.h"
+#include "src/sksl/ir/SkSLPrefixExpression.h"
+#include "src/sksl/ir/SkSLProgramElement.h"
+#include "src/sksl/ir/SkSLReturnStatement.h"
+#include "src/sksl/ir/SkSLSetting.h"
+#include "src/sksl/ir/SkSLStatement.h"
+#include "src/sksl/ir/SkSLSwitchStatement.h"
+#include "src/sksl/ir/SkSLSwizzle.h"
+#include "src/sksl/ir/SkSLTernaryExpression.h"
+#include "src/sksl/ir/SkSLVarDeclarations.h"
+#include "src/sksl/ir/SkSLVarDeclarationsStatement.h"
+#include "src/sksl/ir/SkSLVariableReference.h"
+#include "src/sksl/ir/SkSLWhileStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLOutputStream.cpp b/src/sksl/SkSLOutputStream.cpp
index 9a18e66..f72637d 100644
--- a/src/sksl/SkSLOutputStream.cpp
+++ b/src/sksl/SkSLOutputStream.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLOutputStream.h"
+#include "src/sksl/SkSLOutputStream.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLOutputStream.h b/src/sksl/SkSLOutputStream.h
index a74e18b..c7e979b 100644
--- a/src/sksl/SkSLOutputStream.h
+++ b/src/sksl/SkSLOutputStream.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_OUTPUTSTREAM
 #define SKSL_OUTPUTSTREAM
 
-#include "SkSLDefines.h"
-#include "SkSLString.h"
+#include "src/sksl/SkSLDefines.h"
+#include "src/sksl/SkSLString.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLParser.cpp b/src/sksl/SkSLParser.cpp
index 7c381f2..8824c33 100644
--- a/src/sksl/SkSLParser.cpp
+++ b/src/sksl/SkSLParser.cpp
@@ -6,49 +6,49 @@
  */
 
 #include "stdio.h"
-#include "SkSLParser.h"
-#include "ast/SkSLASTBinaryExpression.h"
-#include "ast/SkSLASTBlock.h"
-#include "ast/SkSLASTBoolLiteral.h"
-#include "ast/SkSLASTBreakStatement.h"
-#include "ast/SkSLASTCallSuffix.h"
-#include "ast/SkSLASTContinueStatement.h"
-#include "ast/SkSLASTDiscardStatement.h"
-#include "ast/SkSLASTDoStatement.h"
-#include "ast/SkSLASTEnum.h"
-#include "ast/SkSLASTExpression.h"
-#include "ast/SkSLASTExpressionStatement.h"
-#include "ast/SkSLASTExtension.h"
-#include "ast/SkSLASTFieldSuffix.h"
-#include "ast/SkSLASTFloatLiteral.h"
-#include "ast/SkSLASTForStatement.h"
-#include "ast/SkSLASTFunction.h"
-#include "ast/SkSLASTIdentifier.h"
-#include "ast/SkSLASTIfStatement.h"
-#include "ast/SkSLASTIndexSuffix.h"
-#include "ast/SkSLASTInterfaceBlock.h"
-#include "ast/SkSLASTIntLiteral.h"
-#include "ast/SkSLASTModifiersDeclaration.h"
-#include "ast/SkSLASTNullLiteral.h"
-#include "ast/SkSLASTParameter.h"
-#include "ast/SkSLASTPrefixExpression.h"
-#include "ast/SkSLASTReturnStatement.h"
-#include "ast/SkSLASTSection.h"
-#include "ast/SkSLASTStatement.h"
-#include "ast/SkSLASTSuffixExpression.h"
-#include "ast/SkSLASTSwitchCase.h"
-#include "ast/SkSLASTSwitchStatement.h"
-#include "ast/SkSLASTTernaryExpression.h"
-#include "ast/SkSLASTType.h"
-#include "ast/SkSLASTVarDeclaration.h"
-#include "ast/SkSLASTVarDeclarationStatement.h"
-#include "ast/SkSLASTWhileStatement.h"
-#include "ir/SkSLSymbolTable.h"
-#include "ir/SkSLModifiers.h"
-#include "ir/SkSLType.h"
+#include "src/sksl/SkSLParser.h"
+#include "src/sksl/ast/SkSLASTBinaryExpression.h"
+#include "src/sksl/ast/SkSLASTBlock.h"
+#include "src/sksl/ast/SkSLASTBoolLiteral.h"
+#include "src/sksl/ast/SkSLASTBreakStatement.h"
+#include "src/sksl/ast/SkSLASTCallSuffix.h"
+#include "src/sksl/ast/SkSLASTContinueStatement.h"
+#include "src/sksl/ast/SkSLASTDiscardStatement.h"
+#include "src/sksl/ast/SkSLASTDoStatement.h"
+#include "src/sksl/ast/SkSLASTEnum.h"
+#include "src/sksl/ast/SkSLASTExpression.h"
+#include "src/sksl/ast/SkSLASTExpressionStatement.h"
+#include "src/sksl/ast/SkSLASTExtension.h"
+#include "src/sksl/ast/SkSLASTFieldSuffix.h"
+#include "src/sksl/ast/SkSLASTFloatLiteral.h"
+#include "src/sksl/ast/SkSLASTForStatement.h"
+#include "src/sksl/ast/SkSLASTFunction.h"
+#include "src/sksl/ast/SkSLASTIdentifier.h"
+#include "src/sksl/ast/SkSLASTIfStatement.h"
+#include "src/sksl/ast/SkSLASTIndexSuffix.h"
+#include "src/sksl/ast/SkSLASTIntLiteral.h"
+#include "src/sksl/ast/SkSLASTInterfaceBlock.h"
+#include "src/sksl/ast/SkSLASTModifiersDeclaration.h"
+#include "src/sksl/ast/SkSLASTNullLiteral.h"
+#include "src/sksl/ast/SkSLASTParameter.h"
+#include "src/sksl/ast/SkSLASTPrefixExpression.h"
+#include "src/sksl/ast/SkSLASTReturnStatement.h"
+#include "src/sksl/ast/SkSLASTSection.h"
+#include "src/sksl/ast/SkSLASTStatement.h"
+#include "src/sksl/ast/SkSLASTSuffixExpression.h"
+#include "src/sksl/ast/SkSLASTSwitchCase.h"
+#include "src/sksl/ast/SkSLASTSwitchStatement.h"
+#include "src/sksl/ast/SkSLASTTernaryExpression.h"
+#include "src/sksl/ast/SkSLASTType.h"
+#include "src/sksl/ast/SkSLASTVarDeclaration.h"
+#include "src/sksl/ast/SkSLASTVarDeclarationStatement.h"
+#include "src/sksl/ast/SkSLASTWhileStatement.h"
+#include "src/sksl/ir/SkSLModifiers.h"
+#include "src/sksl/ir/SkSLSymbolTable.h"
+#include "src/sksl/ir/SkSLType.h"
 
 #ifndef SKSL_STANDALONE
-#include "SkOnce.h"
+#include "include/private/SkOnce.h"
 #endif
 
 namespace SkSL {
diff --git a/src/sksl/SkSLParser.h b/src/sksl/SkSLParser.h
index 3d423e5..cd08eb7 100644
--- a/src/sksl/SkSLParser.h
+++ b/src/sksl/SkSLParser.h
@@ -12,9 +12,9 @@
 #include <memory>
 #include <unordered_map>
 #include <unordered_set>
-#include "SkSLErrorReporter.h"
-#include "ir/SkSLLayout.h"
-#include "SkSLLexer.h"
+#include "src/sksl/SkSLErrorReporter.h"
+#include "src/sksl/SkSLLexer.h"
+#include "src/sksl/ir/SkSLLayout.h"
 
 struct yy_buffer_state;
 #define YY_TYPEDEF_YY_BUFFER_STATE
diff --git a/src/sksl/SkSLPipelineStageCodeGenerator.cpp b/src/sksl/SkSLPipelineStageCodeGenerator.cpp
index a63b694..113cee6 100644
--- a/src/sksl/SkSLPipelineStageCodeGenerator.cpp
+++ b/src/sksl/SkSLPipelineStageCodeGenerator.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLPipelineStageCodeGenerator.h"
+#include "src/sksl/SkSLPipelineStageCodeGenerator.h"
 
-#include "SkSLCompiler.h"
-#include "SkSLHCodeGenerator.h"
+#include "src/sksl/SkSLCompiler.h"
+#include "src/sksl/SkSLHCodeGenerator.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLPipelineStageCodeGenerator.h b/src/sksl/SkSLPipelineStageCodeGenerator.h
index 7357b30..0830fc2e 100644
--- a/src/sksl/SkSLPipelineStageCodeGenerator.h
+++ b/src/sksl/SkSLPipelineStageCodeGenerator.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_PIPELINESTAGECODEGENERATOR
 #define SKSL_PIPELINESTAGECODEGENERATOR
 
-#include "SkSLGLSLCodeGenerator.h"
-#include "SkSLSectionAndParameterHelper.h"
+#include "src/sksl/SkSLGLSLCodeGenerator.h"
+#include "src/sksl/SkSLSectionAndParameterHelper.h"
 
 #include <set>
 
diff --git a/src/sksl/SkSLPosition.h b/src/sksl/SkSLPosition.h
index 83cfe82..d1569d4 100644
--- a/src/sksl/SkSLPosition.h
+++ b/src/sksl/SkSLPosition.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_POSITION
 #define SKSL_POSITION
 
-#include "SkSLUtil.h"
+#include "src/sksl/SkSLUtil.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLSPIRVCodeGenerator.cpp b/src/sksl/SkSLSPIRVCodeGenerator.cpp
index b8cf3fe..f5736a8 100644
--- a/src/sksl/SkSLSPIRVCodeGenerator.cpp
+++ b/src/sksl/SkSLSPIRVCodeGenerator.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLSPIRVCodeGenerator.h"
+#include "src/sksl/SkSLSPIRVCodeGenerator.h"
 
-#include "GLSL.std.450.h"
+#include "src/sksl/GLSL.std.450.h"
 
-#include "ir/SkSLExpressionStatement.h"
-#include "ir/SkSLExtension.h"
-#include "ir/SkSLIndexExpression.h"
-#include "ir/SkSLVariableReference.h"
-#include "SkSLCompiler.h"
+#include "src/sksl/SkSLCompiler.h"
+#include "src/sksl/ir/SkSLExpressionStatement.h"
+#include "src/sksl/ir/SkSLExtension.h"
+#include "src/sksl/ir/SkSLIndexExpression.h"
+#include "src/sksl/ir/SkSLVariableReference.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLSPIRVCodeGenerator.h b/src/sksl/SkSLSPIRVCodeGenerator.h
index fd4482f..97266db 100644
--- a/src/sksl/SkSLSPIRVCodeGenerator.h
+++ b/src/sksl/SkSLSPIRVCodeGenerator.h
@@ -12,35 +12,35 @@
 #include <tuple>
 #include <unordered_map>
 
-#include "SkSLCodeGenerator.h"
-#include "SkSLMemoryLayout.h"
-#include "ir/SkSLBinaryExpression.h"
-#include "ir/SkSLBoolLiteral.h"
-#include "ir/SkSLConstructor.h"
-#include "ir/SkSLDoStatement.h"
-#include "ir/SkSLFloatLiteral.h"
-#include "ir/SkSLIfStatement.h"
-#include "ir/SkSLIndexExpression.h"
-#include "ir/SkSLInterfaceBlock.h"
-#include "ir/SkSLIntLiteral.h"
-#include "ir/SkSLFieldAccess.h"
-#include "ir/SkSLForStatement.h"
-#include "ir/SkSLFunctionCall.h"
-#include "ir/SkSLFunctionDeclaration.h"
-#include "ir/SkSLFunctionDefinition.h"
-#include "ir/SkSLPrefixExpression.h"
-#include "ir/SkSLPostfixExpression.h"
-#include "ir/SkSLProgramElement.h"
-#include "ir/SkSLReturnStatement.h"
-#include "ir/SkSLStatement.h"
-#include "ir/SkSLSwitchStatement.h"
-#include "ir/SkSLSwizzle.h"
-#include "ir/SkSLTernaryExpression.h"
-#include "ir/SkSLVarDeclarations.h"
-#include "ir/SkSLVarDeclarationsStatement.h"
-#include "ir/SkSLVariableReference.h"
-#include "ir/SkSLWhileStatement.h"
-#include "spirv.h"
+#include "src/sksl/SkSLCodeGenerator.h"
+#include "src/sksl/SkSLMemoryLayout.h"
+#include "src/sksl/ir/SkSLBinaryExpression.h"
+#include "src/sksl/ir/SkSLBoolLiteral.h"
+#include "src/sksl/ir/SkSLConstructor.h"
+#include "src/sksl/ir/SkSLDoStatement.h"
+#include "src/sksl/ir/SkSLFieldAccess.h"
+#include "src/sksl/ir/SkSLFloatLiteral.h"
+#include "src/sksl/ir/SkSLForStatement.h"
+#include "src/sksl/ir/SkSLFunctionCall.h"
+#include "src/sksl/ir/SkSLFunctionDeclaration.h"
+#include "src/sksl/ir/SkSLFunctionDefinition.h"
+#include "src/sksl/ir/SkSLIfStatement.h"
+#include "src/sksl/ir/SkSLIndexExpression.h"
+#include "src/sksl/ir/SkSLIntLiteral.h"
+#include "src/sksl/ir/SkSLInterfaceBlock.h"
+#include "src/sksl/ir/SkSLPostfixExpression.h"
+#include "src/sksl/ir/SkSLPrefixExpression.h"
+#include "src/sksl/ir/SkSLProgramElement.h"
+#include "src/sksl/ir/SkSLReturnStatement.h"
+#include "src/sksl/ir/SkSLStatement.h"
+#include "src/sksl/ir/SkSLSwitchStatement.h"
+#include "src/sksl/ir/SkSLSwizzle.h"
+#include "src/sksl/ir/SkSLTernaryExpression.h"
+#include "src/sksl/ir/SkSLVarDeclarations.h"
+#include "src/sksl/ir/SkSLVarDeclarationsStatement.h"
+#include "src/sksl/ir/SkSLVariableReference.h"
+#include "src/sksl/ir/SkSLWhileStatement.h"
+#include "src/sksl/spirv.h"
 
 union ConstantValue {
     ConstantValue(int64_t i)
diff --git a/src/sksl/SkSLSectionAndParameterHelper.h b/src/sksl/SkSLSectionAndParameterHelper.h
index 21e9759..b09ee3c 100644
--- a/src/sksl/SkSLSectionAndParameterHelper.h
+++ b/src/sksl/SkSLSectionAndParameterHelper.h
@@ -8,10 +8,10 @@
 #ifndef SKSL_SECTIONANDPARAMETERHELPER
 #define SKSL_SECTIONANDPARAMETERHELPER
 
-#include "SkSLErrorReporter.h"
-#include "ir/SkSLProgram.h"
-#include "ir/SkSLSection.h"
-#include "ir/SkSLVarDeclarations.h"
+#include "src/sksl/SkSLErrorReporter.h"
+#include "src/sksl/ir/SkSLProgram.h"
+#include "src/sksl/ir/SkSLSection.h"
+#include "src/sksl/ir/SkSLVarDeclarations.h"
 #include <unordered_map>
 #include <vector>
 
diff --git a/src/sksl/SkSLString.cpp b/src/sksl/SkSLString.cpp
index 4ef7770..b0efd77 100644
--- a/src/sksl/SkSLString.cpp
+++ b/src/sksl/SkSLString.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLString.h"
+#include "src/sksl/SkSLString.h"
 
-#include "SkSLUtil.h"
+#include "src/sksl/SkSLUtil.h"
 #include <algorithm>
 #include <errno.h>
 #include <limits.h>
diff --git a/src/sksl/SkSLString.h b/src/sksl/SkSLString.h
index b3e411e..81c2fef 100644
--- a/src/sksl/SkSLString.h
+++ b/src/sksl/SkSLString.h
@@ -19,7 +19,7 @@
     #include <string>
 #else
     #define SKSL_STRING_BASE SkString
-    #include "SkString.h"
+    #include "include/core/SkString.h"
 #endif
 
 namespace SkSL {
@@ -156,7 +156,7 @@
     };
 } // namespace
 #else
-#include "SkOpts.h"
+#include "src/core/SkOpts.h"
 namespace std {
     template<> struct hash<SkSL::String> {
         size_t operator()(const SkSL::String& s) const {
diff --git a/src/sksl/SkSLStringStream.h b/src/sksl/SkSLStringStream.h
index a869066..8de1d40 100644
--- a/src/sksl/SkSLStringStream.h
+++ b/src/sksl/SkSLStringStream.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_STRINGSTREAM
 #define SKSL_STRINGSTREAM
 
-#include "SkSLOutputStream.h"
+#include "src/sksl/SkSLOutputStream.h"
 
 #ifdef SKSL_STANDALONE
 
@@ -42,8 +42,8 @@
 
 #else
 
-#include "SkData.h"
-#include "SkStream.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/SkSLUtil.cpp b/src/sksl/SkSLUtil.cpp
index 70b4918..19f5f5a 100644
--- a/src/sksl/SkSLUtil.cpp
+++ b/src/sksl/SkSLUtil.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLUtil.h"
+#include "src/sksl/SkSLUtil.h"
 
 #ifndef __STDC_FORMAT_MACROS
 #define __STDC_FORMAT_MACROS
diff --git a/src/sksl/SkSLUtil.h b/src/sksl/SkSLUtil.h
index d221f4e..9c7375f 100644
--- a/src/sksl/SkSLUtil.h
+++ b/src/sksl/SkSLUtil.h
@@ -12,16 +12,16 @@
 #include <memory>
 #include "stdlib.h"
 #include "string.h"
-#include "SkSLLexer.h"
-#include "SkSLDefines.h"
-#include "SkSLString.h"
-#include "SkSLStringStream.h"
+#include "src/sksl/SkSLDefines.h"
+#include "src/sksl/SkSLLexer.h"
+#include "src/sksl/SkSLString.h"
+#include "src/sksl/SkSLStringStream.h"
 
 #ifndef SKSL_STANDALONE
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if SK_SUPPORT_GPU
-#include "GrContextOptions.h"
-#include "GrShaderCaps.h"
+#include "include/gpu/GrContextOptions.h"
+#include "src/gpu/GrShaderCaps.h"
 #endif // SK_SUPPORT_GPU
 #endif // SKSL_STANDALONE
 
diff --git a/src/sksl/ast/SkSLASTBinaryExpression.h b/src/sksl/ast/SkSLASTBinaryExpression.h
index c2f7b74..6a573b5 100644
--- a/src/sksl/ast/SkSLASTBinaryExpression.h
+++ b/src/sksl/ast/SkSLASTBinaryExpression.h
@@ -8,9 +8,9 @@
 #ifndef SKSL_ASTBINARYEXPRESSION
 #define SKSL_ASTBINARYEXPRESSION
 
-#include "SkSLASTExpression.h"
-#include "../SkSLCompiler.h"
-#include "../SkSLLexer.h"
+#include "src/sksl/SkSLCompiler.h"
+#include "src/sksl/SkSLLexer.h"
+#include "src/sksl/ast/SkSLASTExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTBlock.h b/src/sksl/ast/SkSLASTBlock.h
index df01f62..69995cb 100644
--- a/src/sksl/ast/SkSLASTBlock.h
+++ b/src/sksl/ast/SkSLASTBlock.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTBLOCK
 #define SKSL_ASTBLOCK
 
-#include "SkSLASTStatement.h"
+#include "src/sksl/ast/SkSLASTStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTBoolLiteral.h b/src/sksl/ast/SkSLASTBoolLiteral.h
index 6782d36..2fff338 100644
--- a/src/sksl/ast/SkSLASTBoolLiteral.h
+++ b/src/sksl/ast/SkSLASTBoolLiteral.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTBOOLLITERAL
 #define SKSL_ASTBOOLLITERAL
 
-#include "SkSLASTExpression.h"
+#include "src/sksl/ast/SkSLASTExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTBreakStatement.h b/src/sksl/ast/SkSLASTBreakStatement.h
index 2937dae..1335ede 100644
--- a/src/sksl/ast/SkSLASTBreakStatement.h
+++ b/src/sksl/ast/SkSLASTBreakStatement.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTBREAKSTATEMENT
 #define SKSL_ASTBREAKSTATEMENT
 
-#include "SkSLASTStatement.h"
+#include "src/sksl/ast/SkSLASTStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTCallSuffix.h b/src/sksl/ast/SkSLASTCallSuffix.h
index 316a0ae..b249f27 100644
--- a/src/sksl/ast/SkSLASTCallSuffix.h
+++ b/src/sksl/ast/SkSLASTCallSuffix.h
@@ -9,7 +9,7 @@
 #define SKSL_ASTCALLSUFFIX
 
 #include <vector>
-#include "SkSLASTSuffix.h"
+#include "src/sksl/ast/SkSLASTSuffix.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTContinueStatement.h b/src/sksl/ast/SkSLASTContinueStatement.h
index 30b2dae..6866b00 100644
--- a/src/sksl/ast/SkSLASTContinueStatement.h
+++ b/src/sksl/ast/SkSLASTContinueStatement.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTCONTINUESTATEMENT
 #define SKSL_ASTCONTINUESTATEMENT
 
-#include "SkSLASTStatement.h"
+#include "src/sksl/ast/SkSLASTStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTDeclaration.h b/src/sksl/ast/SkSLASTDeclaration.h
index 23d3d74..9f260f3 100644
--- a/src/sksl/ast/SkSLASTDeclaration.h
+++ b/src/sksl/ast/SkSLASTDeclaration.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTDECLARATION
 #define SKSL_ASTDECLARATION
 
-#include "SkSLASTPositionNode.h"
+#include "src/sksl/ast/SkSLASTPositionNode.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTDiscardStatement.h b/src/sksl/ast/SkSLASTDiscardStatement.h
index 083c3f8..3cae08a 100644
--- a/src/sksl/ast/SkSLASTDiscardStatement.h
+++ b/src/sksl/ast/SkSLASTDiscardStatement.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTDISCARDSTATEMENT
 #define SKSL_ASTDISCARDSTATEMENT
 
-#include "SkSLASTStatement.h"
+#include "src/sksl/ast/SkSLASTStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTDoStatement.h b/src/sksl/ast/SkSLASTDoStatement.h
index 36324e3..22fcca2 100644
--- a/src/sksl/ast/SkSLASTDoStatement.h
+++ b/src/sksl/ast/SkSLASTDoStatement.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTDOSTATEMENT
 #define SKSL_ASTDOSTATEMENT
 
-#include "SkSLASTStatement.h"
+#include "src/sksl/ast/SkSLASTStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTEnum.h b/src/sksl/ast/SkSLASTEnum.h
index 38023f5..16f9c62 100644
--- a/src/sksl/ast/SkSLASTEnum.h
+++ b/src/sksl/ast/SkSLASTEnum.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTENUM
 #define SKSL_ASTENUM
 
-#include "SkSLASTDeclaration.h"
+#include "src/sksl/ast/SkSLASTDeclaration.h"
 namespace SkSL {
 
 struct ASTEnum : public ASTDeclaration {
diff --git a/src/sksl/ast/SkSLASTExpression.h b/src/sksl/ast/SkSLASTExpression.h
index edcb09d..efff173 100644
--- a/src/sksl/ast/SkSLASTExpression.h
+++ b/src/sksl/ast/SkSLASTExpression.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTEXPRESSION
 #define SKSL_ASTEXPRESSION
 
-#include "SkSLASTPositionNode.h"
+#include "src/sksl/ast/SkSLASTPositionNode.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTExpressionStatement.h b/src/sksl/ast/SkSLASTExpressionStatement.h
index 14f087f..0e18d2e 100644
--- a/src/sksl/ast/SkSLASTExpressionStatement.h
+++ b/src/sksl/ast/SkSLASTExpressionStatement.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTEXPRESSIONSTATEMENT
 #define SKSL_ASTEXPRESSIONSTATEMENT
 
-#include "SkSLASTStatement.h"
+#include "src/sksl/ast/SkSLASTStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTExtension.h b/src/sksl/ast/SkSLASTExtension.h
index c394b1d..39865bf 100644
--- a/src/sksl/ast/SkSLASTExtension.h
+++ b/src/sksl/ast/SkSLASTExtension.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTEXTENSION
 #define SKSL_ASTEXTENSION
 
-#include "SkSLASTDeclaration.h"
+#include "src/sksl/ast/SkSLASTDeclaration.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTFieldSuffix.h b/src/sksl/ast/SkSLASTFieldSuffix.h
index b29ddf3..48653ca 100644
--- a/src/sksl/ast/SkSLASTFieldSuffix.h
+++ b/src/sksl/ast/SkSLASTFieldSuffix.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTFIELDSUFFIX
 #define SKSL_ASTFIELDSUFFIX
 
-#include "SkSLASTSuffix.h"
+#include "src/sksl/ast/SkSLASTSuffix.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTFloatLiteral.h b/src/sksl/ast/SkSLASTFloatLiteral.h
index 6e63b4e..e05aeb4 100644
--- a/src/sksl/ast/SkSLASTFloatLiteral.h
+++ b/src/sksl/ast/SkSLASTFloatLiteral.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTFLOATLITERAL
 #define SKSL_ASTFLOATLITERAL
 
-#include "SkSLASTExpression.h"
+#include "src/sksl/ast/SkSLASTExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTForStatement.h b/src/sksl/ast/SkSLASTForStatement.h
index 713f952..2597257 100644
--- a/src/sksl/ast/SkSLASTForStatement.h
+++ b/src/sksl/ast/SkSLASTForStatement.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTFORSTATEMENT
 #define SKSL_ASTFORSTATEMENT
 
-#include "SkSLASTStatement.h"
+#include "src/sksl/ast/SkSLASTStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTFunction.h b/src/sksl/ast/SkSLASTFunction.h
index 4fa2482..f03631b 100644
--- a/src/sksl/ast/SkSLASTFunction.h
+++ b/src/sksl/ast/SkSLASTFunction.h
@@ -8,10 +8,10 @@
 #ifndef SKSL_ASTFUNCTION
 #define SKSL_ASTFUNCTION
 
-#include "SkSLASTBlock.h"
-#include "SkSLASTDeclaration.h"
-#include "SkSLASTParameter.h"
-#include "SkSLASTType.h"
+#include "src/sksl/ast/SkSLASTBlock.h"
+#include "src/sksl/ast/SkSLASTDeclaration.h"
+#include "src/sksl/ast/SkSLASTParameter.h"
+#include "src/sksl/ast/SkSLASTType.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTIdentifier.h b/src/sksl/ast/SkSLASTIdentifier.h
index a84370e..47f4296 100644
--- a/src/sksl/ast/SkSLASTIdentifier.h
+++ b/src/sksl/ast/SkSLASTIdentifier.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTIDENTIFIER
 #define SKSL_ASTIDENTIFIER
 
-#include "SkSLASTExpression.h"
+#include "src/sksl/ast/SkSLASTExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTIfStatement.h b/src/sksl/ast/SkSLASTIfStatement.h
index 85b1239..64da88a 100644
--- a/src/sksl/ast/SkSLASTIfStatement.h
+++ b/src/sksl/ast/SkSLASTIfStatement.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTIFSTATEMENT
 #define SKSL_ASTIFSTATEMENT
 
-#include "SkSLASTStatement.h"
+#include "src/sksl/ast/SkSLASTStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTIndexSuffix.h b/src/sksl/ast/SkSLASTIndexSuffix.h
index cb19e54..d192d2c 100644
--- a/src/sksl/ast/SkSLASTIndexSuffix.h
+++ b/src/sksl/ast/SkSLASTIndexSuffix.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_ASTINDEXSUFFIX
 #define SKSL_ASTINDEXSUFFIX
 
-#include "SkSLASTExpression.h"
-#include "SkSLASTSuffix.h"
+#include "src/sksl/ast/SkSLASTExpression.h"
+#include "src/sksl/ast/SkSLASTSuffix.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTIntLiteral.h b/src/sksl/ast/SkSLASTIntLiteral.h
index 927537b..6554d51 100644
--- a/src/sksl/ast/SkSLASTIntLiteral.h
+++ b/src/sksl/ast/SkSLASTIntLiteral.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTINTLITERAL
 #define SKSL_ASTINTLITERAL
 
-#include "SkSLASTExpression.h"
+#include "src/sksl/ast/SkSLASTExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTInterfaceBlock.h b/src/sksl/ast/SkSLASTInterfaceBlock.h
index 17f180a..6fae28c 100644
--- a/src/sksl/ast/SkSLASTInterfaceBlock.h
+++ b/src/sksl/ast/SkSLASTInterfaceBlock.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_ASTINTERFACEBLOCK
 #define SKSL_ASTINTERFACEBLOCK
 
-#include "SkSLASTVarDeclaration.h"
-#include "../ir/SkSLModifiers.h"
+#include "src/sksl/ast/SkSLASTVarDeclaration.h"
+#include "src/sksl/ir/SkSLModifiers.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTModifiersDeclaration.h b/src/sksl/ast/SkSLASTModifiersDeclaration.h
index 5269cd5..dd1531a 100644
--- a/src/sksl/ast/SkSLASTModifiersDeclaration.h
+++ b/src/sksl/ast/SkSLASTModifiersDeclaration.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_ASTMODIFIERDECLARATION
 #define SKSL_ASTMODIFIERDECLARATION
 
-#include "SkSLASTDeclaration.h"
-#include "../ir/SkSLModifiers.h"
+#include "src/sksl/ast/SkSLASTDeclaration.h"
+#include "src/sksl/ir/SkSLModifiers.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTNode.h b/src/sksl/ast/SkSLASTNode.h
index b08bc2a..1b5f2bd 100644
--- a/src/sksl/ast/SkSLASTNode.h
+++ b/src/sksl/ast/SkSLASTNode.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTNODE
 #define SKSL_ASTNODE
 
-#include "SkSLString.h"
+#include "src/sksl/SkSLString.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTNullLiteral.h b/src/sksl/ast/SkSLASTNullLiteral.h
index 7d16d70..6ea27dc 100644
--- a/src/sksl/ast/SkSLASTNullLiteral.h
+++ b/src/sksl/ast/SkSLASTNullLiteral.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTNULLLITERAL
 #define SKSL_ASTNULLLITERAL
 
-#include "SkSLASTExpression.h"
+#include "src/sksl/ast/SkSLASTExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTParameter.h b/src/sksl/ast/SkSLASTParameter.h
index 965e374..d5ba55a 100644
--- a/src/sksl/ast/SkSLASTParameter.h
+++ b/src/sksl/ast/SkSLASTParameter.h
@@ -8,9 +8,9 @@
 #ifndef SKSL_ASTPARAMETER
 #define SKSL_ASTPARAMETER
 
-#include "SkSLASTPositionNode.h"
-#include "SkSLASTType.h"
-#include "../ir/SkSLModifiers.h"
+#include "src/sksl/ast/SkSLASTPositionNode.h"
+#include "src/sksl/ast/SkSLASTType.h"
+#include "src/sksl/ir/SkSLModifiers.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTPositionNode.h b/src/sksl/ast/SkSLASTPositionNode.h
index b8f22a7..a9e3d54 100644
--- a/src/sksl/ast/SkSLASTPositionNode.h
+++ b/src/sksl/ast/SkSLASTPositionNode.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_ASTPOSITIONNODE
 #define SKSL_ASTPOSITIONNODE
 
-#include "SkSLASTNode.h"
-#include "../SkSLPosition.h"
+#include "src/sksl/SkSLPosition.h"
+#include "src/sksl/ast/SkSLASTNode.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTPrecision.h b/src/sksl/ast/SkSLASTPrecision.h
index db2baee..06d083d 100644
--- a/src/sksl/ast/SkSLASTPrecision.h
+++ b/src/sksl/ast/SkSLASTPrecision.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_ASTPRECISION
 #define SKSL_ASTPRECISION
 
-#include "SkSLASTDeclaration.h"
-#include "../ir/SkSLModifiers.h"
+#include "src/sksl/ast/SkSLASTDeclaration.h"
+#include "src/sksl/ir/SkSLModifiers.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTPrefixExpression.h b/src/sksl/ast/SkSLASTPrefixExpression.h
index 0403a2f..53150f8 100644
--- a/src/sksl/ast/SkSLASTPrefixExpression.h
+++ b/src/sksl/ast/SkSLASTPrefixExpression.h
@@ -8,9 +8,9 @@
 #ifndef SKSL_ASTPREFIXEXPRESSION
 #define SKSL_ASTPREFIXEXPRESSION
 
-#include "SkSLASTExpression.h"
-#include "../SkSLCompiler.h"
-#include "../SkSLLexer.h"
+#include "src/sksl/SkSLCompiler.h"
+#include "src/sksl/SkSLLexer.h"
+#include "src/sksl/ast/SkSLASTExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTReturnStatement.h b/src/sksl/ast/SkSLASTReturnStatement.h
index 489658a..77b6970 100644
--- a/src/sksl/ast/SkSLASTReturnStatement.h
+++ b/src/sksl/ast/SkSLASTReturnStatement.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTRETURNSTATEMENT
 #define SKSL_ASTRETURNSTATEMENT
 
-#include "SkSLASTStatement.h"
+#include "src/sksl/ast/SkSLASTStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTSection.h b/src/sksl/ast/SkSLASTSection.h
index 6c1f8ee..bd4655c 100644
--- a/src/sksl/ast/SkSLASTSection.h
+++ b/src/sksl/ast/SkSLASTSection.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTSECTION
 #define SKSL_ASTSECTION
 
-#include "SkSLASTDeclaration.h"
+#include "src/sksl/ast/SkSLASTDeclaration.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTStatement.h b/src/sksl/ast/SkSLASTStatement.h
index c22a2fb..d672e22 100644
--- a/src/sksl/ast/SkSLASTStatement.h
+++ b/src/sksl/ast/SkSLASTStatement.h
@@ -9,8 +9,8 @@
 #define SKSL_ASTSTATEMENT
 
 #include <vector>
-#include "SkSLASTPositionNode.h"
-#include "SkSLASTExpression.h"
+#include "src/sksl/ast/SkSLASTExpression.h"
+#include "src/sksl/ast/SkSLASTPositionNode.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTSuffix.h b/src/sksl/ast/SkSLASTSuffix.h
index 898855c..2d44d60 100644
--- a/src/sksl/ast/SkSLASTSuffix.h
+++ b/src/sksl/ast/SkSLASTSuffix.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_ASTSUFFIX
 #define SKSL_ASTSUFFIX
 
-#include "SkSLASTPositionNode.h"
-#include "SkSLASTExpression.h"
+#include "src/sksl/ast/SkSLASTExpression.h"
+#include "src/sksl/ast/SkSLASTPositionNode.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTSuffixExpression.h b/src/sksl/ast/SkSLASTSuffixExpression.h
index 31cddb2..cbafe4e 100644
--- a/src/sksl/ast/SkSLASTSuffixExpression.h
+++ b/src/sksl/ast/SkSLASTSuffixExpression.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_ASTSUFFIXEXPRESSION
 #define SKSL_ASTSUFFIXEXPRESSION
 
-#include "SkSLASTSuffix.h"
-#include "SkSLASTExpression.h"
+#include "src/sksl/ast/SkSLASTExpression.h"
+#include "src/sksl/ast/SkSLASTSuffix.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTSwitchCase.h b/src/sksl/ast/SkSLASTSwitchCase.h
index 221e212..9bbab39 100644
--- a/src/sksl/ast/SkSLASTSwitchCase.h
+++ b/src/sksl/ast/SkSLASTSwitchCase.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTSWITCHCASE
 #define SKSL_ASTSWITCHCASE
 
-#include "SkSLASTStatement.h"
+#include "src/sksl/ast/SkSLASTStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTSwitchStatement.h b/src/sksl/ast/SkSLASTSwitchStatement.h
index 3bee0a4..af0c05d 100644
--- a/src/sksl/ast/SkSLASTSwitchStatement.h
+++ b/src/sksl/ast/SkSLASTSwitchStatement.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_ASTSWITCHSTATEMENT
 #define SKSL_ASTSWITCHSTATEMENT
 
-#include "SkSLASTStatement.h"
-#include "SkSLASTSwitchCase.h"
+#include "src/sksl/ast/SkSLASTStatement.h"
+#include "src/sksl/ast/SkSLASTSwitchCase.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTTernaryExpression.h b/src/sksl/ast/SkSLASTTernaryExpression.h
index 35795e9..b78acb1 100644
--- a/src/sksl/ast/SkSLASTTernaryExpression.h
+++ b/src/sksl/ast/SkSLASTTernaryExpression.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTTERNARYEXPRESSION
 #define SKSL_ASTTERNARYEXPRESSION
 
-#include "SkSLASTExpression.h"
+#include "src/sksl/ast/SkSLASTExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTType.h b/src/sksl/ast/SkSLASTType.h
index 52ada84..56660b9 100644
--- a/src/sksl/ast/SkSLASTType.h
+++ b/src/sksl/ast/SkSLASTType.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTTYPE
 #define SKSL_ASTTYPE
 
-#include "SkSLASTPositionNode.h"
+#include "src/sksl/ast/SkSLASTPositionNode.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTVarDeclaration.h b/src/sksl/ast/SkSLASTVarDeclaration.h
index 38c9104..880ea2d 100644
--- a/src/sksl/ast/SkSLASTVarDeclaration.h
+++ b/src/sksl/ast/SkSLASTVarDeclaration.h
@@ -8,11 +8,11 @@
 #ifndef SKSL_ASTVARDECLARATIONS
 #define SKSL_ASTVARDECLARATIONS
 
-#include "SkSLASTDeclaration.h"
-#include "SkSLASTStatement.h"
-#include "SkSLASTType.h"
-#include "../SkSLUtil.h"
-#include "../ir/SkSLModifiers.h"
+#include "src/sksl/SkSLUtil.h"
+#include "src/sksl/ast/SkSLASTDeclaration.h"
+#include "src/sksl/ast/SkSLASTStatement.h"
+#include "src/sksl/ast/SkSLASTType.h"
+#include "src/sksl/ir/SkSLModifiers.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTVarDeclarationStatement.h b/src/sksl/ast/SkSLASTVarDeclarationStatement.h
index 8ec5bf6..48edef3 100644
--- a/src/sksl/ast/SkSLASTVarDeclarationStatement.h
+++ b/src/sksl/ast/SkSLASTVarDeclarationStatement.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_ASTVARDECLARATIONSTATEMENT
 #define SKSL_ASTVARDECLARATIONSTATEMENT
 
-#include "SkSLASTStatement.h"
-#include "SkSLASTVarDeclaration.h"
+#include "src/sksl/ast/SkSLASTStatement.h"
+#include "src/sksl/ast/SkSLASTVarDeclaration.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ast/SkSLASTWhileStatement.h b/src/sksl/ast/SkSLASTWhileStatement.h
index c0da0af..450aa05 100644
--- a/src/sksl/ast/SkSLASTWhileStatement.h
+++ b/src/sksl/ast/SkSLASTWhileStatement.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ASTWHILESTATEMENT
 #define SKSL_ASTWHILESTATEMENT
 
-#include "SkSLASTStatement.h"
+#include "src/sksl/ast/SkSLASTStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLAppendStage.h b/src/sksl/ir/SkSLAppendStage.h
index 268ae97..88ff8b7 100644
--- a/src/sksl/ir/SkSLAppendStage.h
+++ b/src/sksl/ir/SkSLAppendStage.h
@@ -10,9 +10,9 @@
 
 #ifndef SKSL_STANDALONE
 
-#include "SkRasterPipeline.h"
-#include "SkSLContext.h"
-#include "SkSLExpression.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/sksl/SkSLContext.h"
+#include "src/sksl/ir/SkSLExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLBinaryExpression.h b/src/sksl/ir/SkSLBinaryExpression.h
index ed1a5cc..f4c61fb 100644
--- a/src/sksl/ir/SkSLBinaryExpression.h
+++ b/src/sksl/ir/SkSLBinaryExpression.h
@@ -8,10 +8,10 @@
 #ifndef SKSL_BINARYEXPRESSION
 #define SKSL_BINARYEXPRESSION
 
-#include "SkSLExpression.h"
-#include "SkSLExpression.h"
-#include "../SkSLIRGenerator.h"
-#include "../SkSLLexer.h"
+#include "src/sksl/SkSLIRGenerator.h"
+#include "src/sksl/SkSLLexer.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLBlock.h b/src/sksl/ir/SkSLBlock.h
index 0a03654..8a4449a 100644
--- a/src/sksl/ir/SkSLBlock.h
+++ b/src/sksl/ir/SkSLBlock.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_BLOCK
 #define SKSL_BLOCK
 
-#include "SkSLStatement.h"
-#include "SkSLSymbolTable.h"
+#include "src/sksl/ir/SkSLStatement.h"
+#include "src/sksl/ir/SkSLSymbolTable.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLBoolLiteral.h b/src/sksl/ir/SkSLBoolLiteral.h
index d979ed3..b99aec8 100644
--- a/src/sksl/ir/SkSLBoolLiteral.h
+++ b/src/sksl/ir/SkSLBoolLiteral.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_BOOLLITERAL
 #define SKSL_BOOLLITERAL
 
-#include "SkSLContext.h"
-#include "SkSLExpression.h"
+#include "src/sksl/SkSLContext.h"
+#include "src/sksl/ir/SkSLExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLBreakStatement.h b/src/sksl/ir/SkSLBreakStatement.h
index 272deb6..ae0c198 100644
--- a/src/sksl/ir/SkSLBreakStatement.h
+++ b/src/sksl/ir/SkSLBreakStatement.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_BREAKSTATEMENT
 #define SKSL_BREAKSTATEMENT
 
-#include "SkSLExpression.h"
-#include "SkSLStatement.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLConstructor.h b/src/sksl/ir/SkSLConstructor.h
index 3db9646..0b9a58b 100644
--- a/src/sksl/ir/SkSLConstructor.h
+++ b/src/sksl/ir/SkSLConstructor.h
@@ -8,11 +8,11 @@
 #ifndef SKSL_CONSTRUCTOR
 #define SKSL_CONSTRUCTOR
 
-#include "SkSLExpression.h"
-#include "SkSLFloatLiteral.h"
-#include "SkSLIntLiteral.h"
-#include "SkSLIRGenerator.h"
-#include "SkSLPrefixExpression.h"
+#include "src/sksl/SkSLIRGenerator.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLFloatLiteral.h"
+#include "src/sksl/ir/SkSLIntLiteral.h"
+#include "src/sksl/ir/SkSLPrefixExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLContinueStatement.h b/src/sksl/ir/SkSLContinueStatement.h
index 9977fbe..ecd9c3f 100644
--- a/src/sksl/ir/SkSLContinueStatement.h
+++ b/src/sksl/ir/SkSLContinueStatement.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_CONTINUESTATEMENT
 #define SKSL_CONTINUESTATEMENT
 
-#include "SkSLExpression.h"
-#include "SkSLStatement.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLDiscardStatement.h b/src/sksl/ir/SkSLDiscardStatement.h
index 8c406e9..40f625c 100644
--- a/src/sksl/ir/SkSLDiscardStatement.h
+++ b/src/sksl/ir/SkSLDiscardStatement.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_DISCARDSTATEMENT
 #define SKSL_DISCARDSTATEMENT
 
-#include "SkSLExpression.h"
-#include "SkSLStatement.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLDoStatement.h b/src/sksl/ir/SkSLDoStatement.h
index af0fc59..5cab5c8 100644
--- a/src/sksl/ir/SkSLDoStatement.h
+++ b/src/sksl/ir/SkSLDoStatement.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_DOSTATEMENT
 #define SKSL_DOSTATEMENT
 
-#include "SkSLExpression.h"
-#include "SkSLStatement.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLEnum.h b/src/sksl/ir/SkSLEnum.h
index 8e1d311..885b17e 100644
--- a/src/sksl/ir/SkSLEnum.h
+++ b/src/sksl/ir/SkSLEnum.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_ENUM
 #define SKSL_ENUM
 
-#include "SkSLProgramElement.h"
+#include "src/sksl/ir/SkSLProgramElement.h"
 
 #include <algorithm>
 
diff --git a/src/sksl/ir/SkSLExpression.h b/src/sksl/ir/SkSLExpression.h
index 1ef5f7c..db4b200 100644
--- a/src/sksl/ir/SkSLExpression.h
+++ b/src/sksl/ir/SkSLExpression.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_EXPRESSION
 #define SKSL_EXPRESSION
 
-#include "SkSLType.h"
-#include "SkSLVariable.h"
+#include "src/sksl/ir/SkSLType.h"
+#include "src/sksl/ir/SkSLVariable.h"
 
 #include <unordered_map>
 
diff --git a/src/sksl/ir/SkSLExpressionStatement.h b/src/sksl/ir/SkSLExpressionStatement.h
index 90aa541..80a8d31 100644
--- a/src/sksl/ir/SkSLExpressionStatement.h
+++ b/src/sksl/ir/SkSLExpressionStatement.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_EXPRESSIONSTATEMENT
 #define SKSL_EXPRESSIONSTATEMENT
 
-#include "SkSLExpression.h"
-#include "SkSLStatement.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLExtension.h b/src/sksl/ir/SkSLExtension.h
index 3a103a6..5eed975 100644
--- a/src/sksl/ir/SkSLExtension.h
+++ b/src/sksl/ir/SkSLExtension.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_EXTENSION
 #define SKSL_EXTENSION
 
-#include "SkSLProgramElement.h"
+#include "src/sksl/ir/SkSLProgramElement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLField.h b/src/sksl/ir/SkSLField.h
index fe2af7f..d187a80 100644
--- a/src/sksl/ir/SkSLField.h
+++ b/src/sksl/ir/SkSLField.h
@@ -8,11 +8,11 @@
 #ifndef SKSL_FIELD
 #define SKSL_FIELD
 
-#include "SkSLModifiers.h"
-#include "SkSLPosition.h"
-#include "SkSLSymbol.h"
-#include "SkSLType.h"
-#include "SkSLVariable.h"
+#include "src/sksl/SkSLPosition.h"
+#include "src/sksl/ir/SkSLModifiers.h"
+#include "src/sksl/ir/SkSLSymbol.h"
+#include "src/sksl/ir/SkSLType.h"
+#include "src/sksl/ir/SkSLVariable.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLFieldAccess.h b/src/sksl/ir/SkSLFieldAccess.h
index b3bd050..7576c0a 100644
--- a/src/sksl/ir/SkSLFieldAccess.h
+++ b/src/sksl/ir/SkSLFieldAccess.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_FIELDACCESS
 #define SKSL_FIELDACCESS
 
-#include "SkSLExpression.h"
-#include "SkSLUtil.h"
+#include "src/sksl/SkSLUtil.h"
+#include "src/sksl/ir/SkSLExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLFloatLiteral.h b/src/sksl/ir/SkSLFloatLiteral.h
index f0f93fd..2ed2b79 100644
--- a/src/sksl/ir/SkSLFloatLiteral.h
+++ b/src/sksl/ir/SkSLFloatLiteral.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_FLOATLITERAL
 #define SKSL_FLOATLITERAL
 
-#include "SkSLContext.h"
-#include "SkSLExpression.h"
+#include "src/sksl/SkSLContext.h"
+#include "src/sksl/ir/SkSLExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLForStatement.h b/src/sksl/ir/SkSLForStatement.h
index 220be98..4906e19 100644
--- a/src/sksl/ir/SkSLForStatement.h
+++ b/src/sksl/ir/SkSLForStatement.h
@@ -8,9 +8,9 @@
 #ifndef SKSL_FORSTATEMENT
 #define SKSL_FORSTATEMENT
 
-#include "SkSLExpression.h"
-#include "SkSLStatement.h"
-#include "SkSLSymbolTable.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLStatement.h"
+#include "src/sksl/ir/SkSLSymbolTable.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLFunctionCall.h b/src/sksl/ir/SkSLFunctionCall.h
index 7047c37..90c173f 100644
--- a/src/sksl/ir/SkSLFunctionCall.h
+++ b/src/sksl/ir/SkSLFunctionCall.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_FUNCTIONCALL
 #define SKSL_FUNCTIONCALL
 
-#include "SkSLExpression.h"
-#include "SkSLFunctionDeclaration.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLFunctionDeclaration.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLFunctionDeclaration.h b/src/sksl/ir/SkSLFunctionDeclaration.h
index e07ed68..f0e3e10 100644
--- a/src/sksl/ir/SkSLFunctionDeclaration.h
+++ b/src/sksl/ir/SkSLFunctionDeclaration.h
@@ -8,12 +8,12 @@
 #ifndef SKSL_FUNCTIONDECLARATION
 #define SKSL_FUNCTIONDECLARATION
 
-#include "SkSLExpression.h"
-#include "SkSLModifiers.h"
-#include "SkSLSymbol.h"
-#include "SkSLSymbolTable.h"
-#include "SkSLType.h"
-#include "SkSLVariable.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLModifiers.h"
+#include "src/sksl/ir/SkSLSymbol.h"
+#include "src/sksl/ir/SkSLSymbolTable.h"
+#include "src/sksl/ir/SkSLType.h"
+#include "src/sksl/ir/SkSLVariable.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLFunctionDefinition.h b/src/sksl/ir/SkSLFunctionDefinition.h
index 4ec5597..7344373 100644
--- a/src/sksl/ir/SkSLFunctionDefinition.h
+++ b/src/sksl/ir/SkSLFunctionDefinition.h
@@ -8,9 +8,9 @@
 #ifndef SKSL_FUNCTIONDEFINITION
 #define SKSL_FUNCTIONDEFINITION
 
-#include "SkSLBlock.h"
-#include "SkSLFunctionDeclaration.h"
-#include "SkSLProgramElement.h"
+#include "src/sksl/ir/SkSLBlock.h"
+#include "src/sksl/ir/SkSLFunctionDeclaration.h"
+#include "src/sksl/ir/SkSLProgramElement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLFunctionReference.h b/src/sksl/ir/SkSLFunctionReference.h
index 4c7f767..e78f1cd 100644
--- a/src/sksl/ir/SkSLFunctionReference.h
+++ b/src/sksl/ir/SkSLFunctionReference.h
@@ -8,9 +8,9 @@
 #ifndef SKSL_FUNCTIONREFERENCE
 #define SKSL_FUNCTIONREFERENCE
 
-#include "SkSLContext.h"
-#include "SkSLExpression.h"
-#include "SkSLFunctionDeclaration.h"
+#include "src/sksl/SkSLContext.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLFunctionDeclaration.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLIRNode.h b/src/sksl/ir/SkSLIRNode.h
index 20b901d..83cc42c 100644
--- a/src/sksl/ir/SkSLIRNode.h
+++ b/src/sksl/ir/SkSLIRNode.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_IRNODE
 #define SKSL_IRNODE
 
-#include "../SkSLLexer.h"
+#include "src/sksl/SkSLLexer.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLIfStatement.h b/src/sksl/ir/SkSLIfStatement.h
index 9d35fe8..5d0a22b 100644
--- a/src/sksl/ir/SkSLIfStatement.h
+++ b/src/sksl/ir/SkSLIfStatement.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_IFSTATEMENT
 #define SKSL_IFSTATEMENT
 
-#include "SkSLExpression.h"
-#include "SkSLStatement.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLIndexExpression.h b/src/sksl/ir/SkSLIndexExpression.h
index 74288e5..7c5c129 100644
--- a/src/sksl/ir/SkSLIndexExpression.h
+++ b/src/sksl/ir/SkSLIndexExpression.h
@@ -8,9 +8,9 @@
 #ifndef SKSL_INDEX
 #define SKSL_INDEX
 
-#include "SkSLContext.h"
-#include "SkSLExpression.h"
-#include "SkSLUtil.h"
+#include "src/sksl/SkSLContext.h"
+#include "src/sksl/SkSLUtil.h"
+#include "src/sksl/ir/SkSLExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLIntLiteral.h b/src/sksl/ir/SkSLIntLiteral.h
index 9291c97..a95875c 100644
--- a/src/sksl/ir/SkSLIntLiteral.h
+++ b/src/sksl/ir/SkSLIntLiteral.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_INTLITERAL
 #define SKSL_INTLITERAL
 
-#include "SkSLContext.h"
-#include "SkSLExpression.h"
+#include "src/sksl/SkSLContext.h"
+#include "src/sksl/ir/SkSLExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLInterfaceBlock.h b/src/sksl/ir/SkSLInterfaceBlock.h
index 08bf9d0..3dfd9fd 100644
--- a/src/sksl/ir/SkSLInterfaceBlock.h
+++ b/src/sksl/ir/SkSLInterfaceBlock.h
@@ -8,9 +8,9 @@
 #ifndef SKSL_INTERFACEBLOCK
 #define SKSL_INTERFACEBLOCK
 
-#include "SkSLProgramElement.h"
-#include "SkSLSymbolTable.h"
-#include "SkSLVarDeclarations.h"
+#include "src/sksl/ir/SkSLProgramElement.h"
+#include "src/sksl/ir/SkSLSymbolTable.h"
+#include "src/sksl/ir/SkSLVarDeclarations.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLLayout.h b/src/sksl/ir/SkSLLayout.h
index df25e749..30bf99f 100644
--- a/src/sksl/ir/SkSLLayout.h
+++ b/src/sksl/ir/SkSLLayout.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_LAYOUT
 #define SKSL_LAYOUT
 
-#include "SkSLString.h"
-#include "SkSLUtil.h"
+#include "src/sksl/SkSLString.h"
+#include "src/sksl/SkSLUtil.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLModifiers.h b/src/sksl/ir/SkSLModifiers.h
index d95331e..171ea82 100644
--- a/src/sksl/ir/SkSLModifiers.h
+++ b/src/sksl/ir/SkSLModifiers.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_MODIFIERS
 #define SKSL_MODIFIERS
 
-#include "SkSLLayout.h"
+#include "src/sksl/ir/SkSLLayout.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLModifiersDeclaration.h b/src/sksl/ir/SkSLModifiersDeclaration.h
index 1f31926..1dc7414 100644
--- a/src/sksl/ir/SkSLModifiersDeclaration.h
+++ b/src/sksl/ir/SkSLModifiersDeclaration.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_MODIFIERDECLARATION
 #define SKSL_MODIFIERDECLARATION
 
-#include "SkSLProgramElement.h"
-#include "SkSLModifiers.h"
+#include "src/sksl/ir/SkSLModifiers.h"
+#include "src/sksl/ir/SkSLProgramElement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLNop.h b/src/sksl/ir/SkSLNop.h
index 954fedb..2ead371 100644
--- a/src/sksl/ir/SkSLNop.h
+++ b/src/sksl/ir/SkSLNop.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_NOP
 #define SKSL_NOP
 
-#include "SkSLStatement.h"
-#include "SkSLSymbolTable.h"
+#include "src/sksl/ir/SkSLStatement.h"
+#include "src/sksl/ir/SkSLSymbolTable.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLNullLiteral.h b/src/sksl/ir/SkSLNullLiteral.h
index 8728b17..2d8816d 100644
--- a/src/sksl/ir/SkSLNullLiteral.h
+++ b/src/sksl/ir/SkSLNullLiteral.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_NULLLITERAL
 #define SKSL_NULLLITERAL
 
-#include "SkSLContext.h"
-#include "SkSLExpression.h"
+#include "src/sksl/SkSLContext.h"
+#include "src/sksl/ir/SkSLExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLPostfixExpression.h b/src/sksl/ir/SkSLPostfixExpression.h
index dd20efd..2fcb202 100644
--- a/src/sksl/ir/SkSLPostfixExpression.h
+++ b/src/sksl/ir/SkSLPostfixExpression.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_POSTFIXEXPRESSION
 #define SKSL_POSTFIXEXPRESSION
 
-#include "SkSLExpression.h"
-#include "SkSLLexer.h"
+#include "src/sksl/SkSLLexer.h"
+#include "src/sksl/ir/SkSLExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLPrefixExpression.h b/src/sksl/ir/SkSLPrefixExpression.h
index 26f41ef..304830a 100644
--- a/src/sksl/ir/SkSLPrefixExpression.h
+++ b/src/sksl/ir/SkSLPrefixExpression.h
@@ -8,10 +8,10 @@
 #ifndef SKSL_PREFIXEXPRESSION
 #define SKSL_PREFIXEXPRESSION
 
-#include "SkSLExpression.h"
-#include "SkSLFloatLiteral.h"
-#include "SkSLIRGenerator.h"
-#include "SkSLLexer.h"
+#include "src/sksl/SkSLIRGenerator.h"
+#include "src/sksl/SkSLLexer.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLFloatLiteral.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLProgram.h b/src/sksl/ir/SkSLProgram.h
index a6d2201..07b33fe 100644
--- a/src/sksl/ir/SkSLProgram.h
+++ b/src/sksl/ir/SkSLProgram.h
@@ -11,13 +11,13 @@
 #include <vector>
 #include <memory>
 
-#include "SkSLBoolLiteral.h"
-#include "SkSLExpression.h"
-#include "SkSLFloatLiteral.h"
-#include "SkSLIntLiteral.h"
-#include "SkSLModifiers.h"
-#include "SkSLProgramElement.h"
-#include "SkSLSymbolTable.h"
+#include "src/sksl/ir/SkSLBoolLiteral.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLFloatLiteral.h"
+#include "src/sksl/ir/SkSLIntLiteral.h"
+#include "src/sksl/ir/SkSLModifiers.h"
+#include "src/sksl/ir/SkSLProgramElement.h"
+#include "src/sksl/ir/SkSLSymbolTable.h"
 
 // name of the render target width uniform
 #define SKSL_RTWIDTH_NAME "u_skRTWidth"
diff --git a/src/sksl/ir/SkSLProgramElement.h b/src/sksl/ir/SkSLProgramElement.h
index b14836f..84b764e 100644
--- a/src/sksl/ir/SkSLProgramElement.h
+++ b/src/sksl/ir/SkSLProgramElement.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_PROGRAMELEMENT
 #define SKSL_PROGRAMELEMENT
 
-#include "SkSLIRNode.h"
+#include "src/sksl/ir/SkSLIRNode.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLReturnStatement.h b/src/sksl/ir/SkSLReturnStatement.h
index 774d803..e61fa36 100644
--- a/src/sksl/ir/SkSLReturnStatement.h
+++ b/src/sksl/ir/SkSLReturnStatement.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_RETURNSTATEMENT
 #define SKSL_RETURNSTATEMENT
 
-#include "SkSLExpression.h"
-#include "SkSLStatement.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLSection.h b/src/sksl/ir/SkSLSection.h
index d06b979..2085612 100644
--- a/src/sksl/ir/SkSLSection.h
+++ b/src/sksl/ir/SkSLSection.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_SECTION
 #define SKSL_SECTION
 
-#include "SkSLProgramElement.h"
+#include "src/sksl/ir/SkSLProgramElement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLSetting.cpp b/src/sksl/ir/SkSLSetting.cpp
index 9885a28..1cb0d4a 100644
--- a/src/sksl/ir/SkSLSetting.cpp
+++ b/src/sksl/ir/SkSLSetting.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLSetting.h"
-#include "SkSLIRGenerator.h"
-#include "SkSLVariableReference.h"
+#include "src/sksl/SkSLIRGenerator.h"
+#include "src/sksl/ir/SkSLSetting.h"
+#include "src/sksl/ir/SkSLVariableReference.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLSetting.h b/src/sksl/ir/SkSLSetting.h
index cc1c551..33c8a31 100644
--- a/src/sksl/ir/SkSLSetting.h
+++ b/src/sksl/ir/SkSLSetting.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_SETTING
 #define SKSL_SETTING
 
-#include "SkSLContext.h"
-#include "SkSLExpression.h"
+#include "src/sksl/SkSLContext.h"
+#include "src/sksl/ir/SkSLExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLStatement.h b/src/sksl/ir/SkSLStatement.h
index 99aab19..ed8d33b 100644
--- a/src/sksl/ir/SkSLStatement.h
+++ b/src/sksl/ir/SkSLStatement.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_STATEMENT
 #define SKSL_STATEMENT
 
-#include "SkSLIRNode.h"
-#include "SkSLType.h"
+#include "src/sksl/ir/SkSLIRNode.h"
+#include "src/sksl/ir/SkSLType.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLSwitchCase.h b/src/sksl/ir/SkSLSwitchCase.h
index b9e5218..b1ddb01 100644
--- a/src/sksl/ir/SkSLSwitchCase.h
+++ b/src/sksl/ir/SkSLSwitchCase.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_SWITCHCASE
 #define SKSL_SWITCHCASE
 
-#include "SkSLExpression.h"
-#include "SkSLStatement.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLSwitchStatement.h b/src/sksl/ir/SkSLSwitchStatement.h
index 2c48bad..3f6a7a0 100644
--- a/src/sksl/ir/SkSLSwitchStatement.h
+++ b/src/sksl/ir/SkSLSwitchStatement.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_SWITCHSTATEMENT
 #define SKSL_SWITCHSTATEMENT
 
-#include "SkSLStatement.h"
-#include "SkSLSwitchCase.h"
+#include "src/sksl/ir/SkSLStatement.h"
+#include "src/sksl/ir/SkSLSwitchCase.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLSwizzle.h b/src/sksl/ir/SkSLSwizzle.h
index d318289..c8a5caa 100644
--- a/src/sksl/ir/SkSLSwizzle.h
+++ b/src/sksl/ir/SkSLSwizzle.h
@@ -8,11 +8,11 @@
 #ifndef SKSL_SWIZZLE
 #define SKSL_SWIZZLE
 
-#include "SkSLConstructor.h"
-#include "SkSLContext.h"
-#include "SkSLExpression.h"
-#include "SkSLIRGenerator.h"
-#include "SkSLUtil.h"
+#include "src/sksl/SkSLContext.h"
+#include "src/sksl/SkSLIRGenerator.h"
+#include "src/sksl/SkSLUtil.h"
+#include "src/sksl/ir/SkSLConstructor.h"
+#include "src/sksl/ir/SkSLExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLSymbol.h b/src/sksl/ir/SkSLSymbol.h
index 43fb742..bc3aeb3 100644
--- a/src/sksl/ir/SkSLSymbol.h
+++ b/src/sksl/ir/SkSLSymbol.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_SYMBOL
 #define SKSL_SYMBOL
 
-#include "SkSLIRNode.h"
+#include "src/sksl/ir/SkSLIRNode.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLSymbolTable.cpp b/src/sksl/ir/SkSLSymbolTable.cpp
index 6b1c929..c4ed407 100644
--- a/src/sksl/ir/SkSLSymbolTable.cpp
+++ b/src/sksl/ir/SkSLSymbolTable.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLSymbolTable.h"
-#include "SkSLUnresolvedFunction.h"
+#include "src/sksl/ir/SkSLSymbolTable.h"
+#include "src/sksl/ir/SkSLUnresolvedFunction.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLSymbolTable.h b/src/sksl/ir/SkSLSymbolTable.h
index bd3d044..3bbd87e 100644
--- a/src/sksl/ir/SkSLSymbolTable.h
+++ b/src/sksl/ir/SkSLSymbolTable.h
@@ -11,8 +11,8 @@
 #include <unordered_map>
 #include <memory>
 #include <vector>
-#include "SkSLErrorReporter.h"
-#include "SkSLSymbol.h"
+#include "src/sksl/SkSLErrorReporter.h"
+#include "src/sksl/ir/SkSLSymbol.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLTernaryExpression.h b/src/sksl/ir/SkSLTernaryExpression.h
index f7e4ea0..e2bf9ed 100644
--- a/src/sksl/ir/SkSLTernaryExpression.h
+++ b/src/sksl/ir/SkSLTernaryExpression.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_TERNARYEXPRESSION
 #define SKSL_TERNARYEXPRESSION
 
-#include "SkSLExpression.h"
-#include "../SkSLPosition.h"
+#include "src/sksl/SkSLPosition.h"
+#include "src/sksl/ir/SkSLExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLType.cpp b/src/sksl/ir/SkSLType.cpp
index a3d5c59..5d735fc 100644
--- a/src/sksl/ir/SkSLType.cpp
+++ b/src/sksl/ir/SkSLType.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLType.h"
-#include "SkSLContext.h"
+#include "src/sksl/SkSLContext.h"
+#include "src/sksl/ir/SkSLType.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLType.h b/src/sksl/ir/SkSLType.h
index 532bfbc..9c0fcc8 100644
--- a/src/sksl/ir/SkSLType.h
+++ b/src/sksl/ir/SkSLType.h
@@ -8,11 +8,11 @@
 #ifndef SKIASL_TYPE
 #define SKIASL_TYPE
 
-#include "SkSLModifiers.h"
-#include "SkSLSymbol.h"
-#include "../SkSLPosition.h"
-#include "../SkSLUtil.h"
-#include "../spirv.h"
+#include "src/sksl/SkSLPosition.h"
+#include "src/sksl/SkSLUtil.h"
+#include "src/sksl/ir/SkSLModifiers.h"
+#include "src/sksl/ir/SkSLSymbol.h"
+#include "src/sksl/spirv.h"
 #include <climits>
 #include <vector>
 #include <memory>
diff --git a/src/sksl/ir/SkSLTypeReference.h b/src/sksl/ir/SkSLTypeReference.h
index df3dc15..20a533a 100644
--- a/src/sksl/ir/SkSLTypeReference.h
+++ b/src/sksl/ir/SkSLTypeReference.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_TYPEREFERENCE
 #define SKSL_TYPEREFERENCE
 
-#include "SkSLContext.h"
-#include "SkSLExpression.h"
+#include "src/sksl/SkSLContext.h"
+#include "src/sksl/ir/SkSLExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLUnresolvedFunction.h b/src/sksl/ir/SkSLUnresolvedFunction.h
index 09b405f..d32cd42 100644
--- a/src/sksl/ir/SkSLUnresolvedFunction.h
+++ b/src/sksl/ir/SkSLUnresolvedFunction.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_UNRESOLVEDFUNCTION
 #define SKSL_UNRESOLVEDFUNCTION
 
-#include "SkSLFunctionDeclaration.h"
+#include "src/sksl/ir/SkSLFunctionDeclaration.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLVarDeclarations.h b/src/sksl/ir/SkSLVarDeclarations.h
index b98e959..82dbd86 100644
--- a/src/sksl/ir/SkSLVarDeclarations.h
+++ b/src/sksl/ir/SkSLVarDeclarations.h
@@ -8,10 +8,10 @@
 #ifndef SKSL_VARDECLARATIONS
 #define SKSL_VARDECLARATIONS
 
-#include "SkSLExpression.h"
-#include "SkSLProgramElement.h"
-#include "SkSLStatement.h"
-#include "SkSLVariable.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLProgramElement.h"
+#include "src/sksl/ir/SkSLStatement.h"
+#include "src/sksl/ir/SkSLVariable.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLVarDeclarationsStatement.h b/src/sksl/ir/SkSLVarDeclarationsStatement.h
index c9c1df1..465b691 100644
--- a/src/sksl/ir/SkSLVarDeclarationsStatement.h
+++ b/src/sksl/ir/SkSLVarDeclarationsStatement.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_VARDECLARATIONSSTATEMENT
 #define SKSL_VARDECLARATIONSSTATEMENT
 
-#include "SkSLStatement.h"
-#include "SkSLVarDeclarations.h"
+#include "src/sksl/ir/SkSLStatement.h"
+#include "src/sksl/ir/SkSLVarDeclarations.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLVariable.h b/src/sksl/ir/SkSLVariable.h
index 8559711..8ca291e 100644
--- a/src/sksl/ir/SkSLVariable.h
+++ b/src/sksl/ir/SkSLVariable.h
@@ -8,10 +8,10 @@
 #ifndef SKSL_VARIABLE
 #define SKSL_VARIABLE
 
-#include "SkSLModifiers.h"
-#include "SkSLPosition.h"
-#include "SkSLSymbol.h"
-#include "SkSLType.h"
+#include "src/sksl/SkSLPosition.h"
+#include "src/sksl/ir/SkSLModifiers.h"
+#include "src/sksl/ir/SkSLSymbol.h"
+#include "src/sksl/ir/SkSLType.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLVariableReference.cpp b/src/sksl/ir/SkSLVariableReference.cpp
index aaaa179..c7b17a9 100644
--- a/src/sksl/ir/SkSLVariableReference.cpp
+++ b/src/sksl/ir/SkSLVariableReference.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLVariableReference.h"
+#include "src/sksl/ir/SkSLVariableReference.h"
 
-#include "SkSLConstructor.h"
-#include "SkSLFloatLiteral.h"
-#include "SkSLIRGenerator.h"
-#include "SkSLSetting.h"
+#include "src/sksl/SkSLIRGenerator.h"
+#include "src/sksl/ir/SkSLConstructor.h"
+#include "src/sksl/ir/SkSLFloatLiteral.h"
+#include "src/sksl/ir/SkSLSetting.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLVariableReference.h b/src/sksl/ir/SkSLVariableReference.h
index 405a5d1..6c8a923 100644
--- a/src/sksl/ir/SkSLVariableReference.h
+++ b/src/sksl/ir/SkSLVariableReference.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_VARIABLEREFERENCE
 #define SKSL_VARIABLEREFERENCE
 
-#include "SkSLExpression.h"
+#include "src/sksl/ir/SkSLExpression.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/ir/SkSLWhileStatement.h b/src/sksl/ir/SkSLWhileStatement.h
index 6695875..8e311a0 100644
--- a/src/sksl/ir/SkSLWhileStatement.h
+++ b/src/sksl/ir/SkSLWhileStatement.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_WHILESTATEMENT
 #define SKSL_WHILESTATEMENT
 
-#include "SkSLExpression.h"
-#include "SkSLStatement.h"
+#include "src/sksl/ir/SkSLExpression.h"
+#include "src/sksl/ir/SkSLStatement.h"
 
 namespace SkSL {
 
diff --git a/src/sksl/lex/DFAState.h b/src/sksl/lex/DFAState.h
index 01d34a4..e600637 100644
--- a/src/sksl/lex/DFAState.h
+++ b/src/sksl/lex/DFAState.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_DFASTATE
 #define SKSL_DFASTATE
 
-#include "LexUtil.h"
+#include "src/sksl/lex/LexUtil.h"
 
 struct DFAState {
     struct Label {
diff --git a/src/sksl/lex/Main.cpp b/src/sksl/lex/Main.cpp
index f08035e..903e464 100644
--- a/src/sksl/lex/Main.cpp
+++ b/src/sksl/lex/Main.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "NFAtoDFA.h"
-#include "RegexParser.h"
+#include "src/sksl/lex/NFAtoDFA.h"
+#include "src/sksl/lex/RegexParser.h"
 
 #include <fstream>
 #include <sstream>
@@ -203,7 +203,7 @@
     NFAtoDFA converter(&nfa);
     DFA dfa = converter.convert();
     writeH(dfa, lexer, token, tokens, hPath);
-    writeCPP(dfa, lexer, token, (std::string("SkSL") + lexer + ".h").c_str(), cppPath);
+    writeCPP(dfa, lexer, token, (std::string("src/sksl/SkSL") + lexer + ".h").c_str(), cppPath);
 }
 
 int main(int argc, const char** argv) {
diff --git a/src/sksl/lex/NFA.cpp b/src/sksl/lex/NFA.cpp
index 4b3e0f8..0c94bf7 100644
--- a/src/sksl/lex/NFA.cpp
+++ b/src/sksl/lex/NFA.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "NFA.h"
+#include "src/sksl/lex/NFA.h"
 
 int NFA::match(std::string s) const {
     std::vector<int> states = fStartStates;
diff --git a/src/sksl/lex/NFA.h b/src/sksl/lex/NFA.h
index e454d37..49d18fc 100644
--- a/src/sksl/lex/NFA.h
+++ b/src/sksl/lex/NFA.h
@@ -8,8 +8,8 @@
 #ifndef SKSL_NFA
 #define SKSL_NFA
 
-#include "NFAState.h"
-#include "RegexNode.h"
+#include "src/sksl/lex/NFAState.h"
+#include "src/sksl/lex/RegexNode.h"
 
 /**
  * A nondeterministic finite automaton for matching regular expressions. The NFA is initialized with
diff --git a/src/sksl/lex/NFAState.h b/src/sksl/lex/NFAState.h
index 5923507..6f6e289 100644
--- a/src/sksl/lex/NFAState.h
+++ b/src/sksl/lex/NFAState.h
@@ -11,7 +11,7 @@
 #include <string>
 #include <vector>
 
-#include "LexUtil.h"
+#include "src/sksl/lex/LexUtil.h"
 
 struct NFAState {
     enum Kind {
diff --git a/src/sksl/lex/NFAtoDFA.h b/src/sksl/lex/NFAtoDFA.h
index 28ccb54..d566132 100644
--- a/src/sksl/lex/NFAtoDFA.h
+++ b/src/sksl/lex/NFAtoDFA.h
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "DFA.h"
-#include "DFAState.h"
-#include "NFA.h"
-#include "NFAState.h"
+#include "src/sksl/lex/DFA.h"
+#include "src/sksl/lex/DFAState.h"
+#include "src/sksl/lex/NFA.h"
+#include "src/sksl/lex/NFAState.h"
 
 #include <algorithm>
 #include <climits>
diff --git a/src/sksl/lex/RegexNode.cpp b/src/sksl/lex/RegexNode.cpp
index d2668dd..90eeda2 100644
--- a/src/sksl/lex/RegexNode.cpp
+++ b/src/sksl/lex/RegexNode.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "RegexNode.h"
+#include "src/sksl/lex/RegexNode.h"
 
-#include "NFA.h"
+#include "src/sksl/lex/NFA.h"
 
 std::vector<int> RegexNode::createStates(NFA* nfa, const std::vector<int>& accept) const {
     std::vector<int> result;
diff --git a/src/sksl/lex/RegexParser.cpp b/src/sksl/lex/RegexParser.cpp
index f4fec3f..9b5445e 100644
--- a/src/sksl/lex/RegexParser.cpp
+++ b/src/sksl/lex/RegexParser.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "RegexParser.h"
+#include "src/sksl/lex/RegexParser.h"
 
-#include "LexUtil.h"
+#include "src/sksl/lex/LexUtil.h"
 
 RegexNode RegexParser::parse(std::string source) {
     fSource = source;
diff --git a/src/sksl/lex/RegexParser.h b/src/sksl/lex/RegexParser.h
index 7de546f..c1753de 100644
--- a/src/sksl/lex/RegexParser.h
+++ b/src/sksl/lex/RegexParser.h
@@ -8,7 +8,7 @@
 #ifndef SKSL_REGEXPARSER
 #define SKSL_REGEXPARSER
 
-#include "RegexNode.h"
+#include "src/sksl/lex/RegexNode.h"
 
 #include <stack>
 #include <string>
diff --git a/src/svg/SkSVGCanvas.cpp b/src/svg/SkSVGCanvas.cpp
index 55993af..626b93f 100644
--- a/src/svg/SkSVGCanvas.cpp
+++ b/src/svg/SkSVGCanvas.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkSVGCanvas.h"
-#include "SkSVGDevice.h"
-#include "SkMakeUnique.h"
-#include "SkXMLWriter.h"
+#include "include/svg/SkSVGCanvas.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/svg/SkSVGDevice.h"
+#include "src/xml/SkXMLWriter.h"
 
 std::unique_ptr<SkCanvas> SkSVGCanvas::Make(const SkRect& bounds, SkWStream* writer) {
     // TODO: pass full bounds to the device
diff --git a/src/svg/SkSVGDevice.cpp b/src/svg/SkSVGDevice.cpp
index af4a78d..30e1a3b 100644
--- a/src/svg/SkSVGDevice.cpp
+++ b/src/svg/SkSVGDevice.cpp
@@ -5,32 +5,32 @@
  * found in the LICENSE file.
  */
 
-#include "SkSVGDevice.h"
+#include "src/svg/SkSVGDevice.h"
 
-#include "SkAnnotationKeys.h"
-#include "SkBase64.h"
-#include "SkBitmap.h"
-#include "SkBlendMode.h"
-#include "SkChecksum.h"
-#include "SkClipOpPriv.h"
-#include "SkClipStack.h"
-#include "SkColorFilter.h"
-#include "SkData.h"
-#include "SkDraw.h"
-#include "SkImage.h"
-#include "SkImageEncoder.h"
-#include "SkJpegCodec.h"
-#include "SkPaint.h"
-#include "SkParsePath.h"
-#include "SkPngCodec.h"
-#include "SkShader.h"
-#include "SkShaderBase.h"
-#include "SkStream.h"
-#include "SkTHash.h"
-#include "SkTo.h"
-#include "SkTypeface.h"
-#include "SkUtils.h"
-#include "SkXMLWriter.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageEncoder.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkChecksum.h"
+#include "include/private/SkTHash.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkBase64.h"
+#include "include/utils/SkParsePath.h"
+#include "src/codec/SkJpegCodec.h"
+#include "src/codec/SkPngCodec.h"
+#include "src/core/SkAnnotationKeys.h"
+#include "src/core/SkClipOpPriv.h"
+#include "src/core/SkClipStack.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkUtils.h"
+#include "src/shaders/SkShaderBase.h"
+#include "src/xml/SkXMLWriter.h"
 
 namespace {
 
diff --git a/src/svg/SkSVGDevice.h b/src/svg/SkSVGDevice.h
index 2d7922a..a3dbcb4 100644
--- a/src/svg/SkSVGDevice.h
+++ b/src/svg/SkSVGDevice.h
@@ -8,8 +8,8 @@
 #ifndef SkSVGDevice_DEFINED
 #define SkSVGDevice_DEFINED
 
-#include "SkClipStackDevice.h"
-#include "SkTemplates.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkClipStackDevice.h"
 
 class SkXMLWriter;
 
diff --git a/src/utils/Sk3D.cpp b/src/utils/Sk3D.cpp
index b1b5d6c..0df42b5 100644
--- a/src/utils/Sk3D.cpp
+++ b/src/utils/Sk3D.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "Sk3D.h"
+#include "include/utils/Sk3D.h"
 
 static void set_col(SkMatrix44* m, int col, const SkPoint3& v) {
     m->set(0, col, v.fX);
diff --git a/src/utils/SkAnimCodecPlayer.cpp b/src/utils/SkAnimCodecPlayer.cpp
index d2fcdab..dc827e5 100644
--- a/src/utils/SkAnimCodecPlayer.cpp
+++ b/src/utils/SkAnimCodecPlayer.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkAnimCodecPlayer.h"
-#include "SkCodec.h"
-#include "SkCodecImageGenerator.h"
-#include "SkData.h"
-#include "SkImage.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
+#include "include/utils/SkAnimCodecPlayer.h"
+#include "src/codec/SkCodecImageGenerator.h"
 #include <algorithm>
 
 SkAnimCodecPlayer::SkAnimCodecPlayer(std::unique_ptr<SkCodec> codec) : fCodec(std::move(codec)) {
diff --git a/src/utils/SkBase64.cpp b/src/utils/SkBase64.cpp
index e679e0a..225cb56 100644
--- a/src/utils/SkBase64.cpp
+++ b/src/utils/SkBase64.cpp
@@ -6,7 +6,7 @@
  */
 
 
-#include "SkBase64.h"
+#include "include/utils/SkBase64.h"
 
 #define DecodePad -2
 #define EncodePad 64
diff --git a/src/utils/SkBitSet.h b/src/utils/SkBitSet.h
index dbfc80c..4d6b414 100644
--- a/src/utils/SkBitSet.h
+++ b/src/utils/SkBitSet.h
@@ -8,7 +8,7 @@
 #ifndef SkBitSet_DEFINED
 #define SkBitSet_DEFINED
 
-#include "SkTemplates.h"
+#include "include/private/SkTemplates.h"
 
 class SkBitSet {
 public:
diff --git a/src/utils/SkCamera.cpp b/src/utils/SkCamera.cpp
index ca71061..63d1c80 100644
--- a/src/utils/SkCamera.cpp
+++ b/src/utils/SkCamera.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkCamera.h"
+#include "include/utils/SkCamera.h"
 
 static SkScalar SkScalarDotDiv(int count, const SkScalar a[], int step_a,
                                const SkScalar b[], int step_b,
@@ -387,7 +387,7 @@
     }
 }
 
-#include "SkCanvas.h"
+#include "include/core/SkCanvas.h"
 
 void Sk3DView::applyToCanvas(SkCanvas* canvas) const {
     SkMatrix    matrix;
diff --git a/src/utils/SkCanvasStack.cpp b/src/utils/SkCanvasStack.cpp
index 38cd210..93612e2 100644
--- a/src/utils/SkCanvasStack.cpp
+++ b/src/utils/SkCanvasStack.cpp
@@ -4,7 +4,7 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkCanvasStack.h"
+#include "src/utils/SkCanvasStack.h"
 
 SkCanvasStack::SkCanvasStack(int width, int height)
         : INHERITED(width, height) {}
diff --git a/src/utils/SkCanvasStack.h b/src/utils/SkCanvasStack.h
index 22cfc3e53..ae293c7 100644
--- a/src/utils/SkCanvasStack.h
+++ b/src/utils/SkCanvasStack.h
@@ -8,9 +8,9 @@
 #ifndef SkCanvasStack_DEFINED
 #define SkCanvasStack_DEFINED
 
-#include "SkNWayCanvas.h"
-#include "SkRegion.h"
-#include "SkTArray.h"
+#include "include/core/SkRegion.h"
+#include "include/private/SkTArray.h"
+#include "include/utils/SkNWayCanvas.h"
 
 /**
  *  Like NWayCanvas, in that it forwards all canvas methods to each sub-canvas that is "pushed".
diff --git a/src/utils/SkCanvasStateUtils.cpp b/src/utils/SkCanvasStateUtils.cpp
index b1c03df..a4a9d43 100644
--- a/src/utils/SkCanvasStateUtils.cpp
+++ b/src/utils/SkCanvasStateUtils.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvasStateUtils.h"
+#include "include/utils/SkCanvasStateUtils.h"
 
-#include "SkCanvas.h"
-#include "SkCanvasStack.h"
-#include "SkDevice.h"
-#include "SkRasterClip.h"
-#include "SkWriter32.h"
-#include "SkClipOpPriv.h"
+#include "include/core/SkCanvas.h"
+#include "src/core/SkClipOpPriv.h"
+#include "src/core/SkDevice.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkWriter32.h"
+#include "src/utils/SkCanvasStack.h"
 
 /*
  * WARNING: The structs below are part of a stable ABI and as such we explicitly
diff --git a/src/utils/SkCharToGlyphCache.cpp b/src/utils/SkCharToGlyphCache.cpp
index e5e6afc..a4f459c 100644
--- a/src/utils/SkCharToGlyphCache.cpp
+++ b/src/utils/SkCharToGlyphCache.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkCharToGlyphCache.h"
-#include "../private/SkTFitsIn.h"
+#include "include/private/SkTFitsIn.h"
+#include "src/utils/SkCharToGlyphCache.h"
 
 SkCharToGlyphCache::SkCharToGlyphCache() {
     this->reset();
diff --git a/src/utils/SkCharToGlyphCache.h b/src/utils/SkCharToGlyphCache.h
index 27d6a79..6e0a47a 100644
--- a/src/utils/SkCharToGlyphCache.h
+++ b/src/utils/SkCharToGlyphCache.h
@@ -8,8 +8,8 @@
 #ifndef SkCharToGlyphCache_DEFINED
 #define SkCharToGlyphCache_DEFINED
 
-#include "SkTypes.h"
-#include "../private/SkTDArray.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTDArray.h"
 
 class SkCharToGlyphCache {
 public:
diff --git a/src/utils/SkDashPath.cpp b/src/utils/SkDashPath.cpp
index 2526feb..bbfad75 100644
--- a/src/utils/SkDashPath.cpp
+++ b/src/utils/SkDashPath.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkDashPathPriv.h"
-#include "SkPathMeasure.h"
-#include "SkPointPriv.h"
-#include "SkStrokeRec.h"
+#include "include/core/SkPathMeasure.h"
+#include "include/core/SkStrokeRec.h"
+#include "src/core/SkPointPriv.h"
+#include "src/utils/SkDashPathPriv.h"
 
 #include <utility>
 
diff --git a/src/utils/SkDashPathPriv.h b/src/utils/SkDashPathPriv.h
index 752b59d..5c6a5db 100644
--- a/src/utils/SkDashPathPriv.h
+++ b/src/utils/SkDashPathPriv.h
@@ -8,7 +8,7 @@
 #ifndef SkDashPathPriv_DEFINED
 #define SkDashPathPriv_DEFINED
 
-#include "SkPathEffect.h"
+#include "include/core/SkPathEffect.h"
 
 namespace SkDashPath {
     /**
diff --git a/src/utils/SkEventTracer.cpp b/src/utils/SkEventTracer.cpp
index 7251c26..2574306 100644
--- a/src/utils/SkEventTracer.cpp
+++ b/src/utils/SkEventTracer.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkEventTracer.h"
-#include "SkOnce.h"
+#include "include/private/SkOnce.h"
+#include "include/utils/SkEventTracer.h"
 #include <atomic>
 
 #include <stdlib.h>
diff --git a/src/utils/SkFloatToDecimal.cpp b/src/utils/SkFloatToDecimal.cpp
index f2a1553..ead72de 100644
--- a/src/utils/SkFloatToDecimal.cpp
+++ b/src/utils/SkFloatToDecimal.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkFloatToDecimal.h"
+#include "src/utils/SkFloatToDecimal.h"
 
 #include <cfloat>
 #include <climits>
 #include <cmath>
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 // returns `value * pow(base, e)`, assuming `e` is positive.
 static double pow_by_squaring(double value, double base, int e) {
diff --git a/src/utils/SkFloatUtils.h b/src/utils/SkFloatUtils.h
index b89f5c4..f89a772 100644
--- a/src/utils/SkFloatUtils.h
+++ b/src/utils/SkFloatUtils.h
@@ -8,7 +8,7 @@
 #ifndef SkFloatUtils_DEFINED
 #define SkFloatUtils_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #include <limits.h>
 #include <float.h>
 
diff --git a/src/utils/SkFrontBufferedStream.cpp b/src/utils/SkFrontBufferedStream.cpp
index 9205d10..6c2d310 100644
--- a/src/utils/SkFrontBufferedStream.cpp
+++ b/src/utils/SkFrontBufferedStream.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkFrontBufferedStream.h"
-#include "SkStream.h"
-#include "SkTemplates.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkTemplates.h"
+#include "include/utils/SkFrontBufferedStream.h"
 
 class FrontBufferedStream : public SkStreamRewindable {
 public:
diff --git a/src/utils/SkInterpolator.cpp b/src/utils/SkInterpolator.cpp
index 141adaf..8444e85 100644
--- a/src/utils/SkInterpolator.cpp
+++ b/src/utils/SkInterpolator.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkInterpolator.h"
+#include "include/utils/SkInterpolator.h"
 
-#include "SkFixed.h"
-#include "SkMalloc.h"
-#include "SkMath.h"
-#include "SkTSearch.h"
-#include "SkTo.h"
+#include "include/core/SkMath.h"
+#include "include/private/SkFixed.h"
+#include "include/private/SkMalloc.h"
+#include "include/private/SkTSearch.h"
+#include "include/private/SkTo.h"
 
 SkInterpolatorBase::SkInterpolatorBase() {
     fStorage    = nullptr;
diff --git a/src/utils/SkJSON.cpp b/src/utils/SkJSON.cpp
index c8a23a2..b758f1f 100644
--- a/src/utils/SkJSON.cpp
+++ b/src/utils/SkJSON.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkJSON.h"
+#include "src/utils/SkJSON.h"
 
-#include "SkMalloc.h"
-#include "SkParse.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkUTF.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/private/SkMalloc.h"
+#include "include/utils/SkParse.h"
+#include "src/utils/SkUTF.h"
 
 #include <cmath>
 #include <tuple>
diff --git a/src/utils/SkJSON.h b/src/utils/SkJSON.h
index 762c172..23aa322 100644
--- a/src/utils/SkJSON.h
+++ b/src/utils/SkJSON.h
@@ -8,10 +8,10 @@
 #ifndef SkJSON_DEFINED
 #define SkJSON_DEFINED
 
-#include "SkArenaAlloc.h"
-#include "SkNoncopyable.h"
-#include "SkTo.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkNoncopyable.h"
+#include "include/private/SkTo.h"
 
 #include <cstring>
 
diff --git a/src/utils/SkJSONWriter.cpp b/src/utils/SkJSONWriter.cpp
index 430c802..40b9be4 100644
--- a/src/utils/SkJSONWriter.cpp
+++ b/src/utils/SkJSONWriter.cpp
@@ -13,7 +13,7 @@
 #include <inttypes.h>
 #include <stdarg.h>
 
-#include "SkJSONWriter.h"
+#include "src/utils/SkJSONWriter.h"
 
 void SkJSONWriter::appendS64(int64_t value) {
     this->beginValue();
diff --git a/src/utils/SkJSONWriter.h b/src/utils/SkJSONWriter.h
index 6907653..decb901 100644
--- a/src/utils/SkJSONWriter.h
+++ b/src/utils/SkJSONWriter.h
@@ -8,9 +8,9 @@
 #ifndef SkJSONWriter_DEFINED
 #define SkJSONWriter_DEFINED
 
-#include "SkNoncopyable.h"
-#include "SkStream.h"
-#include "SkTArray.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkNoncopyable.h"
+#include "include/private/SkTArray.h"
 
 /**
  *  Lightweight class for writing properly structured JSON data. No random-access, everything must
diff --git a/src/utils/SkLua.cpp b/src/utils/SkLua.cpp
index aef0889..997ea5f 100644
--- a/src/utils/SkLua.cpp
+++ b/src/utils/SkLua.cpp
@@ -5,34 +5,34 @@
  * found in the LICENSE file.
  */
 
-#include "SkLua.h"
+#include "include/utils/SkLua.h"
 
 #if SK_SUPPORT_GPU
-//#include "GrReducedClip.h"
+//#include "src/gpu/GrReducedClip.h"
 #endif
 
-#include "SkBlurImageFilter.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkData.h"
-#include "SkFont.h"
-#include "SkFontMetrics.h"
-#include "SkFontStyle.h"
-#include "SkGradientShader.h"
-#include "SkImage.h"
-#include "SkMakeUnique.h"
-#include "SkMatrix.h"
-#include "SkPDFDocument.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPictureRecorder.h"
-#include "SkRRect.h"
-#include "SkShaper.h"
-#include "SkString.h"
-#include "SkSurface.h"
-#include "SkTextBlob.h"
-#include "SkTo.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkData.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkString.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "include/docs/SkPDFDocument.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/private/SkTo.h"
+#include "modules/skshaper/include/SkShaper.h"
+#include "src/core/SkMakeUnique.h"
 #include <new>
 
 extern "C" {
diff --git a/src/utils/SkLuaCanvas.cpp b/src/utils/SkLuaCanvas.cpp
index 486611b..9c6d512 100644
--- a/src/utils/SkLuaCanvas.cpp
+++ b/src/utils/SkLuaCanvas.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkLuaCanvas.h"
+#include "include/utils/SkLuaCanvas.h"
 
-#include "SkLua.h"
-#include "SkStringUtils.h"
-#include "SkTo.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkLua.h"
+#include "src/core/SkStringUtils.h"
 
 extern "C" {
     #include "lua.h"
diff --git a/src/utils/SkMatrix22.cpp b/src/utils/SkMatrix22.cpp
index a13b729..b04c502 100644
--- a/src/utils/SkMatrix22.cpp
+++ b/src/utils/SkMatrix22.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkMatrix.h"
-#include "SkMatrix22.h"
-#include "SkPoint.h"
-#include "SkScalar.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkScalar.h"
+#include "src/utils/SkMatrix22.h"
 
 void SkComputeGivensRotation(const SkVector& h, SkMatrix* G) {
     const SkScalar& a = h.fX;
diff --git a/src/utils/SkMatrix22.h b/src/utils/SkMatrix22.h
index bc567ea..c8bcd5f 100644
--- a/src/utils/SkMatrix22.h
+++ b/src/utils/SkMatrix22.h
@@ -8,7 +8,7 @@
 #ifndef SkMatrix22_DEFINED
 #define SkMatrix22_DEFINED
 
-#include "SkPoint.h"
+#include "include/core/SkPoint.h"
 
 class SkMatrix;
 
diff --git a/src/utils/SkMetaData.cpp b/src/utils/SkMetaData.cpp
index e960321..57640e9 100644
--- a/src/utils/SkMetaData.cpp
+++ b/src/utils/SkMetaData.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkMetaData.h"
+#include "src/utils/SkMetaData.h"
 
-#include "SkMalloc.h"
-#include "SkRefCnt.h"
-#include "SkTo.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkMalloc.h"
+#include "include/private/SkTo.h"
 
 struct PtrPair {
     void*               fPtr;
diff --git a/src/utils/SkMetaData.h b/src/utils/SkMetaData.h
index a8ebaac..3d6c290 100644
--- a/src/utils/SkMetaData.h
+++ b/src/utils/SkMetaData.h
@@ -10,7 +10,7 @@
 #ifndef SkMetaData_DEFINED
 #define SkMetaData_DEFINED
 
-#include "SkScalar.h"
+#include "include/core/SkScalar.h"
 
 class SkRefCnt;
 
diff --git a/src/utils/SkMultiPictureDocument.cpp b/src/utils/SkMultiPictureDocument.cpp
index f8eaaf8..b87f967 100644
--- a/src/utils/SkMultiPictureDocument.cpp
+++ b/src/utils/SkMultiPictureDocument.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkMultiPictureDocument.h"
+#include "src/utils/SkMultiPictureDocument.h"
 
-#include "SkMultiPictureDocumentPriv.h"
-#include "SkNWayCanvas.h"
-#include "SkPicture.h"
-#include "SkPictureRecorder.h"
-#include "SkSerialProcs.h"
-#include "SkStream.h"
-#include "SkTArray.h"
-#include "SkTo.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkSerialProcs.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkNWayCanvas.h"
+#include "src/utils/SkMultiPictureDocumentPriv.h"
 
 #include <limits.h>
 
diff --git a/src/utils/SkMultiPictureDocument.h b/src/utils/SkMultiPictureDocument.h
index bc7b150..b6d7be8 100644
--- a/src/utils/SkMultiPictureDocument.h
+++ b/src/utils/SkMultiPictureDocument.h
@@ -8,9 +8,9 @@
 #ifndef SkMultiPictureDocument_DEFINED
 #define SkMultiPictureDocument_DEFINED
 
-#include "SkDocument.h"
-#include "SkPicture.h"
-#include "SkSize.h"
+#include "include/core/SkDocument.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkSize.h"
 
 struct SkDeserialProcs;
 struct SkSerialProcs;
diff --git a/src/utils/SkMultiPictureDocumentPriv.h b/src/utils/SkMultiPictureDocumentPriv.h
index aff5b55..a33bcd9 100644
--- a/src/utils/SkMultiPictureDocumentPriv.h
+++ b/src/utils/SkMultiPictureDocumentPriv.h
@@ -8,7 +8,7 @@
 #ifndef SkMultiPictureDocumentPriv_DEFINED
 #define SkMultiPictureDocumentPriv_DEFINED
 
-#include "SkMultiPictureDocument.h"
+#include "src/utils/SkMultiPictureDocument.h"
 
 /**
  *  Additional API allows one to read the array of page-sizes without parsing
diff --git a/src/utils/SkNWayCanvas.cpp b/src/utils/SkNWayCanvas.cpp
index 68aab50..5e43e48 100644
--- a/src/utils/SkNWayCanvas.cpp
+++ b/src/utils/SkNWayCanvas.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkNWayCanvas.h"
-#include "SkCanvasPriv.h"
+#include "include/utils/SkNWayCanvas.h"
+#include "src/core/SkCanvasPriv.h"
 
 SkNWayCanvas::SkNWayCanvas(int width, int height) : INHERITED(width, height) {}
 
diff --git a/src/utils/SkNullCanvas.cpp b/src/utils/SkNullCanvas.cpp
index 1f28706..b01a4c4 100644
--- a/src/utils/SkNullCanvas.cpp
+++ b/src/utils/SkNullCanvas.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkNullCanvas.h"
+#include "include/utils/SkNullCanvas.h"
 
-#include "SkCanvas.h"
-#include "SkNWayCanvas.h"
-#include "SkMakeUnique.h"
+#include "include/core/SkCanvas.h"
+#include "include/utils/SkNWayCanvas.h"
+#include "src/core/SkMakeUnique.h"
 
 std::unique_ptr<SkCanvas> SkMakeNullCanvas() {
     // An N-Way canvas forwards calls to N canvas's. When N == 0 it's
diff --git a/src/utils/SkOSPath.cpp b/src/utils/SkOSPath.cpp
index d9a5ac5..293e6a4 100644
--- a/src/utils/SkOSPath.cpp
+++ b/src/utils/SkOSPath.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkOSPath.h"
+#include "src/utils/SkOSPath.h"
 
 SkString SkOSPath::Join(const char *rootPath, const char *relativePath) {
     SkString result(rootPath);
diff --git a/src/utils/SkOSPath.h b/src/utils/SkOSPath.h
index 5f73289..e0f9ef3 100644
--- a/src/utils/SkOSPath.h
+++ b/src/utils/SkOSPath.h
@@ -8,7 +8,7 @@
 #ifndef SkOSPath_DEFINED
 #define SkOSPath_DEFINED
 
-#include "SkString.h"
+#include "include/core/SkString.h"
 
 /**
  *  Functions for modifying SkStrings which represent paths on the filesystem.
diff --git a/src/utils/SkPaintFilterCanvas.cpp b/src/utils/SkPaintFilterCanvas.cpp
index 7cb3134..69c33db 100644
--- a/src/utils/SkPaintFilterCanvas.cpp
+++ b/src/utils/SkPaintFilterCanvas.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkPaintFilterCanvas.h"
+#include "include/utils/SkPaintFilterCanvas.h"
 
-#include "SkPaint.h"
-#include "SkPixmap.h"
-#include "SkSurface.h"
-#include "SkTLazy.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPixmap.h"
+#include "include/core/SkSurface.h"
+#include "src/core/SkTLazy.h"
 
 class SkPaintFilterCanvas::AutoPaintFilter {
 public:
diff --git a/src/utils/SkParse.cpp b/src/utils/SkParse.cpp
index a533447..4cbdaa5 100644
--- a/src/utils/SkParse.cpp
+++ b/src/utils/SkParse.cpp
@@ -6,7 +6,7 @@
  */
 
 
-#include "SkParse.h"
+#include "include/utils/SkParse.h"
 
 #include <stdlib.h>
 
diff --git a/src/utils/SkParseColor.cpp b/src/utils/SkParseColor.cpp
index 4c9bd3d..ba7c510 100644
--- a/src/utils/SkParseColor.cpp
+++ b/src/utils/SkParseColor.cpp
@@ -6,7 +6,7 @@
  */
 
 
-#include "SkParse.h"
+#include "include/utils/SkParse.h"
 
 static const unsigned int gColorNames[] = {
 0x85891945, 0x32a50000, 0x00f0f8ff, // aliceblue
diff --git a/src/utils/SkParsePath.cpp b/src/utils/SkParsePath.cpp
index 5acbe4e..6ad3aa0 100644
--- a/src/utils/SkParsePath.cpp
+++ b/src/utils/SkParsePath.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkParse.h"
-#include "SkParsePath.h"
+#include "include/utils/SkParse.h"
+#include "include/utils/SkParsePath.h"
 
 static inline bool is_between(int c, int min, int max) {
     return (unsigned)(c - min) <= (unsigned)(max - min);
@@ -204,9 +204,9 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkGeometry.h"
-#include "SkString.h"
-#include "SkStream.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "src/core/SkGeometry.h"
 
 static void write_scalar(SkWStream* stream, SkScalar value) {
     char buffer[64];
diff --git a/src/utils/SkPatchUtils.cpp b/src/utils/SkPatchUtils.cpp
index 2f4586e..2113422 100644
--- a/src/utils/SkPatchUtils.cpp
+++ b/src/utils/SkPatchUtils.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkPatchUtils.h"
+#include "src/utils/SkPatchUtils.h"
 
-#include "SkArenaAlloc.h"
-#include "SkColorData.h"
-#include "SkColorSpacePriv.h"
-#include "SkConvertPixels.h"
-#include "SkGeometry.h"
-#include "SkTo.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkConvertPixels.h"
+#include "src/core/SkGeometry.h"
 
 namespace {
     enum CubicCtrlPts {
diff --git a/src/utils/SkPatchUtils.h b/src/utils/SkPatchUtils.h
index 0751f81..41b4912 100644
--- a/src/utils/SkPatchUtils.h
+++ b/src/utils/SkPatchUtils.h
@@ -8,9 +8,9 @@
 #ifndef SkPatchUtils_DEFINED
 #define SkPatchUtils_DEFINED
 
-#include "SkColorData.h"
-#include "SkMatrix.h"
-#include "SkVertices.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkVertices.h"
+#include "include/private/SkColorData.h"
 
 class SkColorSpace;
 
diff --git a/src/utils/SkPolyUtils.cpp b/src/utils/SkPolyUtils.cpp
index acd4371..ee1ae1e 100644
--- a/src/utils/SkPolyUtils.cpp
+++ b/src/utils/SkPolyUtils.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkPolyUtils.h"
+#include "src/utils/SkPolyUtils.h"
 
 #include <limits>
 
-#include "SkNx.h"
-#include "SkPointPriv.h"
-#include "SkTArray.h"
-#include "SkTemplates.h"
-#include "SkTDPQueue.h"
-#include "SkTInternalLList.h"
+#include "include/private/SkNx.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTInternalLList.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkPointPriv.h"
+#include "src/core/SkTDPQueue.h"
 
 //////////////////////////////////////////////////////////////////////////////////
 // Helper data structures and functions
diff --git a/src/utils/SkPolyUtils.h b/src/utils/SkPolyUtils.h
index 49ddea6..a7b3b79 100644
--- a/src/utils/SkPolyUtils.h
+++ b/src/utils/SkPolyUtils.h
@@ -10,8 +10,8 @@
 
 #include <functional>
 
-#include "SkTDArray.h"
-#include "SkPoint.h"
+#include "include/core/SkPoint.h"
+#include "include/private/SkTDArray.h"
 
 /**
  * Generates a polygon that is inset a constant from the boundary of a given convex polygon.
diff --git a/src/utils/SkShadowTessellator.cpp b/src/utils/SkShadowTessellator.cpp
index e7e075e..a43a337 100644
--- a/src/utils/SkShadowTessellator.cpp
+++ b/src/utils/SkShadowTessellator.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "SkShadowTessellator.h"
-#include "SkColorData.h"
-#include "SkDrawShadowInfo.h"
-#include "SkGeometry.h"
-#include "SkPolyUtils.h"
-#include "SkPath.h"
-#include "SkPoint3.h"
-#include "SkPointPriv.h"
-#include "SkVertices.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint3.h"
+#include "include/core/SkVertices.h"
+#include "include/private/SkColorData.h"
+#include "src/core/SkDrawShadowInfo.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkPointPriv.h"
+#include "src/utils/SkPolyUtils.h"
+#include "src/utils/SkShadowTessellator.h"
 
 #if SK_SUPPORT_GPU
-#include "GrPathUtils.h"
+#include "src/gpu/GrPathUtils.h"
 #endif
 
 
diff --git a/src/utils/SkShadowTessellator.h b/src/utils/SkShadowTessellator.h
index 4aecf1d..09fc597 100644
--- a/src/utils/SkShadowTessellator.h
+++ b/src/utils/SkShadowTessellator.h
@@ -8,9 +8,9 @@
 #ifndef SkShadowTessellator_DEFINED
 #define SkShadowTessellator_DEFINED
 
-#include "SkColor.h"
-#include "SkPoint.h"
-#include "SkRefCnt.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRefCnt.h"
 
 class SkMatrix;
 class SkPath;
diff --git a/src/utils/SkShadowUtils.cpp b/src/utils/SkShadowUtils.cpp
index 163314f..f7cedd3 100644
--- a/src/utils/SkShadowUtils.cpp
+++ b/src/utils/SkShadowUtils.cpp
@@ -5,27 +5,27 @@
 * found in the LICENSE file.
 */
 
-#include "SkShadowUtils.h"
-#include "SkBlurMask.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkColorData.h"
-#include "SkDevice.h"
-#include "SkDrawShadowInfo.h"
-#include "SkEffectPriv.h"
-#include "SkMaskFilter.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkRasterPipeline.h"
-#include "SkResourceCache.h"
-#include "SkShadowTessellator.h"
-#include "SkString.h"
-#include "SkTLazy.h"
-#include "SkVertices.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkString.h"
+#include "include/core/SkVertices.h"
+#include "include/private/SkColorData.h"
+#include "include/utils/SkRandom.h"
+#include "include/utils/SkShadowUtils.h"
+#include "src/core/SkBlurMask.h"
+#include "src/core/SkDevice.h"
+#include "src/core/SkDrawShadowInfo.h"
+#include "src/core/SkEffectPriv.h"
+#include "src/core/SkRasterPipeline.h"
+#include "src/core/SkResourceCache.h"
+#include "src/core/SkTLazy.h"
+#include "src/utils/SkShadowTessellator.h"
 #include <new>
 #if SK_SUPPORT_GPU
-#include "GrShape.h"
-#include "effects/generated/GrBlurredEdgeFragmentProcessor.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/effects/generated/GrBlurredEdgeFragmentProcessor.h"
 #endif
 
 /**
diff --git a/src/utils/SkTextUtils.cpp b/src/utils/SkTextUtils.cpp
index 8596a0f..f5c4bc0 100644
--- a/src/utils/SkTextUtils.cpp
+++ b/src/utils/SkTextUtils.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontPriv.h"
-#include "SkPath.h"
-#include "SkTextUtils.h"
-#include "SkTextBlob.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkTextBlob.h"
+#include "include/utils/SkTextUtils.h"
+#include "src/core/SkFontPriv.h"
 
 void SkTextUtils::Draw(SkCanvas* canvas, const void* text, size_t size, SkTextEncoding encoding,
                        SkScalar x, SkScalar y, const SkFont& font, const SkPaint& paint,
diff --git a/src/utils/SkUTF.cpp b/src/utils/SkUTF.cpp
index 00015f6..8a9d5bd 100644
--- a/src/utils/SkUTF.cpp
+++ b/src/utils/SkUTF.cpp
@@ -1,7 +1,7 @@
 // Copyright 2018 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 
-#include "SkUTF.h"
+#include "src/utils/SkUTF.h"
 
 #include <climits>
 
diff --git a/src/utils/SkWhitelistChecksums.inc b/src/utils/SkWhitelistChecksums.inc
index 4b17df4..1f177ac 100644
--- a/src/utils/SkWhitelistChecksums.inc
+++ b/src/utils/SkWhitelistChecksums.inc
@@ -8,7 +8,7 @@
  * Run 'whitelist_typefaces --generate' to create anew.
  */
 
-#include "SkTDArray.h"
+#include "include/private/SkTDArray.h"
 
 struct Whitelist {
     const char* fFontName;
diff --git a/src/utils/SkWhitelistTypefaces.cpp b/src/utils/SkWhitelistTypefaces.cpp
index eb6adc4..3d3dfcc 100644
--- a/src/utils/SkWhitelistTypefaces.cpp
+++ b/src/utils/SkWhitelistTypefaces.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkFontDescriptor.h"
-#include "SkOpts.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkTypeface.h"
-#include "SkUTF.h"
-#include "../sfnt/SkOTUtils.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypeface.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/core/SkOpts.h"
+#include "src/sfnt/SkOTUtils.h"
+#include "src/utils/SkUTF.h"
 
 #include "SkWhitelistChecksums.inc"
 
@@ -249,7 +249,7 @@
 "static const int whitelistCount = (int) SK_ARRAY_COUNT(whitelist);"        "\n";
 
 
-#include "SkOSFile.h"
+#include "src/core/SkOSFile.h"
 
 bool GenerateChecksums() {
     FILE* file = sk_fopen(checksumFileName, kWrite_SkFILE_Flag);
diff --git a/src/utils/mac/SkCreateCGImageRef.cpp b/src/utils/mac/SkCreateCGImageRef.cpp
index 300e23b..5423efe 100644
--- a/src/utils/mac/SkCreateCGImageRef.cpp
+++ b/src/utils/mac/SkCreateCGImageRef.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
 
-#include "SkBitmap.h"
-#include "SkCGUtils.h"
-#include "SkColorData.h"
-#include "SkMacros.h"
-#include "SkTo.h"
+#include "include/core/SkBitmap.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkMacros.h"
+#include "include/private/SkTo.h"
+#include "include/utils/mac/SkCGUtils.h"
 
 static CGBitmapInfo ComputeCGAlphaInfo_RGBA(SkAlphaType at) {
     CGBitmapInfo info = kCGBitmapByteOrder32Big;
diff --git a/src/utils/mac/SkStream_mac.cpp b/src/utils/mac/SkStream_mac.cpp
index 2c1c1e2..30f8e1e 100644
--- a/src/utils/mac/SkStream_mac.cpp
+++ b/src/utils/mac/SkStream_mac.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
 
-#include "SkCGUtils.h"
-#include "SkMalloc.h"
-#include "SkStream.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkMalloc.h"
+#include "include/utils/mac/SkCGUtils.h"
 
 // These are used by CGDataProviderCreateWithData
 
@@ -72,7 +72,7 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "SkData.h"
+#include "include/core/SkData.h"
 
 CGDataProviderRef SkCreateDataProviderFromData(sk_sp<SkData> data) {
     const void* addr = data->data();
diff --git a/src/utils/mac/SkUniqueCFRef.h b/src/utils/mac/SkUniqueCFRef.h
index 7f8ef1c..13d452e 100644
--- a/src/utils/mac/SkUniqueCFRef.h
+++ b/src/utils/mac/SkUniqueCFRef.h
@@ -8,11 +8,11 @@
 #ifndef SkUniqueCFRef_DEFINED
 #define SkUniqueCFRef_DEFINED
 
-#include "SkTypes.h"  // Keep this before any #ifdef ...
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
 
-#include "SkTemplates.h"
-#include "SkTLogic.h"
+#include "include/private/SkTLogic.h"
+#include "include/private/SkTemplates.h"
 
 #include <CoreFoundation/CoreFoundation.h>
 #include <memory>
diff --git a/src/utils/win/SkAutoCoInitialize.cpp b/src/utils/win/SkAutoCoInitialize.cpp
index 4949e6c..5b0f3f9 100644
--- a/src/utils/win/SkAutoCoInitialize.cpp
+++ b/src/utils/win/SkAutoCoInitialize.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_WIN)
 
-#include "SkAutoCoInitialize.h"
+#include "src/utils/win/SkAutoCoInitialize.h"
 
 #include <objbase.h>
 #include <winerror.h>
diff --git a/src/utils/win/SkAutoCoInitialize.h b/src/utils/win/SkAutoCoInitialize.h
index 17fb1f5..dcd7200 100644
--- a/src/utils/win/SkAutoCoInitialize.h
+++ b/src/utils/win/SkAutoCoInitialize.h
@@ -8,12 +8,12 @@
 #ifndef SkAutoCo_DEFINED
 #define SkAutoCo_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #ifdef SK_BUILD_FOR_WIN
 
-#include "SkLeanWindows.h"
-#include "SkNoncopyable.h"
+#include "include/private/SkLeanWindows.h"
+#include "include/private/SkNoncopyable.h"
 
 /**
  * An instance of this class initializes COM on creation
diff --git a/src/utils/win/SkDWrite.cpp b/src/utils/win/SkDWrite.cpp
index 7a88fcb..26700fa 100644
--- a/src/utils/win/SkDWrite.cpp
+++ b/src/utils/win/SkDWrite.cpp
@@ -4,13 +4,13 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_WIN)
 
-#include "SkDWrite.h"
-#include "SkHRESULT.h"
-#include "SkOnce.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "include/private/SkOnce.h"
+#include "src/utils/win/SkDWrite.h"
+#include "src/utils/win/SkHRESULT.h"
 
 #include <dwrite.h>
 
diff --git a/src/utils/win/SkDWrite.h b/src/utils/win/SkDWrite.h
index 1cdb106..3a0f123 100644
--- a/src/utils/win/SkDWrite.h
+++ b/src/utils/win/SkDWrite.h
@@ -8,8 +8,8 @@
 #ifndef SkDWrite_DEFINED
 #define SkDWrite_DEFINED
 
-#include "SkFontStyle.h"
-#include "SkTemplates.h"
+#include "include/core/SkFontStyle.h"
+#include "include/private/SkTemplates.h"
 
 #include <dwrite.h>
 #include <winsdkver.h>
diff --git a/src/utils/win/SkDWriteFontFileStream.cpp b/src/utils/win/SkDWriteFontFileStream.cpp
index 79b8e2e..a739c31 100644
--- a/src/utils/win/SkDWriteFontFileStream.cpp
+++ b/src/utils/win/SkDWriteFontFileStream.cpp
@@ -4,15 +4,15 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_WIN)
 
-#include "SkTypes.h"
-#include "SkDWriteFontFileStream.h"
-#include "SkHRESULT.h"
-#include "SkTemplates.h"
-#include "SkTFitsIn.h"
-#include "SkTScopedComPtr.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTFitsIn.h"
+#include "include/private/SkTemplates.h"
+#include "src/utils/win/SkDWriteFontFileStream.h"
+#include "src/utils/win/SkHRESULT.h"
+#include "src/utils/win/SkTScopedComPtr.h"
 
 #include <dwrite.h>
 
diff --git a/src/utils/win/SkDWriteFontFileStream.h b/src/utils/win/SkDWriteFontFileStream.h
index bdc66c7..ddafe79 100644
--- a/src/utils/win/SkDWriteFontFileStream.h
+++ b/src/utils/win/SkDWriteFontFileStream.h
@@ -8,11 +8,11 @@
 #ifndef SkDWriteFontFileStream_DEFINED
 #define SkDWriteFontFileStream_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "SkMutex.h"
-#include "SkStream.h"
-#include "SkTScopedComPtr.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkMutex.h"
+#include "src/utils/win/SkTScopedComPtr.h"
 
 #include <dwrite.h>
 
diff --git a/src/utils/win/SkDWriteGeometrySink.cpp b/src/utils/win/SkDWriteGeometrySink.cpp
index 27c10ce..d8a0975 100644
--- a/src/utils/win/SkDWriteGeometrySink.cpp
+++ b/src/utils/win/SkDWriteGeometrySink.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_WIN)
 
-#include "SkDWriteGeometrySink.h"
-#include "SkFloatUtils.h"
-#include "SkPath.h"
+#include "include/core/SkPath.h"
+#include "src/utils/SkFloatUtils.h"
+#include "src/utils/win/SkDWriteGeometrySink.h"
 
 #include <dwrite.h>
 #include <d2d1.h>
diff --git a/src/utils/win/SkDWriteGeometrySink.h b/src/utils/win/SkDWriteGeometrySink.h
index 417c7f0..30b337f 100644
--- a/src/utils/win/SkDWriteGeometrySink.h
+++ b/src/utils/win/SkDWriteGeometrySink.h
@@ -8,7 +8,7 @@
 #ifndef SkDWriteToPath_DEFINED
 #define SkDWriteToPath_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 class SkPath;
 
diff --git a/src/utils/win/SkHRESULT.cpp b/src/utils/win/SkHRESULT.cpp
index b4caeb6..2be6331 100644
--- a/src/utils/win/SkHRESULT.cpp
+++ b/src/utils/win/SkHRESULT.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_WIN)
 
-#include "SkHRESULT.h"
+#include "src/utils/win/SkHRESULT.h"
 
 void SkTraceHR(const char* file, unsigned long line, HRESULT hr, const char* msg) {
     if (msg) {
diff --git a/src/utils/win/SkHRESULT.h b/src/utils/win/SkHRESULT.h
index cdce69b..352866f 100644
--- a/src/utils/win/SkHRESULT.h
+++ b/src/utils/win/SkHRESULT.h
@@ -8,10 +8,10 @@
 #ifndef SkHRESULT_DEFINED
 #define SkHRESULT_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #ifdef SK_BUILD_FOR_WIN
 
-#include "SkLeanWindows.h"
+#include "include/private/SkLeanWindows.h"
 
 void SkTraceHR(const char* file, unsigned long line,
                HRESULT hr, const char* msg);
diff --git a/src/utils/win/SkIStream.cpp b/src/utils/win/SkIStream.cpp
index 04d7625..3e10209a 100644
--- a/src/utils/win/SkIStream.cpp
+++ b/src/utils/win/SkIStream.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_WIN)
 
-#include "SkIStream.h"
-#include "SkStream.h"
+#include "include/core/SkStream.h"
+#include "src/utils/win/SkIStream.h"
 
 /**
  * SkBaseIStream
diff --git a/src/utils/win/SkIStream.h b/src/utils/win/SkIStream.h
index a3315c1..245d58f 100644
--- a/src/utils/win/SkIStream.h
+++ b/src/utils/win/SkIStream.h
@@ -10,11 +10,11 @@
 #ifndef SkIStream_DEFINED
 #define SkIStream_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #ifdef SK_BUILD_FOR_WIN
 
-#include "SkLeanWindows.h"
+#include "include/private/SkLeanWindows.h"
 #include <ole2.h>
 
 class SkStream;
diff --git a/src/utils/win/SkTScopedComPtr.h b/src/utils/win/SkTScopedComPtr.h
index 8b12c07..aa5ce21 100644
--- a/src/utils/win/SkTScopedComPtr.h
+++ b/src/utils/win/SkTScopedComPtr.h
@@ -8,7 +8,7 @@
 #ifndef SkTScopedComPtr_DEFINED
 #define SkTScopedComPtr_DEFINED
 
-#include "SkLeanWindows.h"
+#include "include/private/SkLeanWindows.h"
 
 #ifdef SK_BUILD_FOR_WIN
 
diff --git a/src/utils/win/SkWGL.h b/src/utils/win/SkWGL.h
index 6aafdcd..1e396de 100644
--- a/src/utils/win/SkWGL.h
+++ b/src/utils/win/SkWGL.h
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
 
 #ifndef SkWGL_DEFINED
 #define SkWGL_DEFINED
 
-#include "SkLeanWindows.h"
+#include "include/private/SkLeanWindows.h"
 
 /**
  * Working with WGL extensions can be a pain. Among the reasons is that You must
diff --git a/src/utils/win/SkWGL_win.cpp b/src/utils/win/SkWGL_win.cpp
index d5a6632..067e5cf 100644
--- a/src/utils/win/SkWGL_win.cpp
+++ b/src/utils/win/SkWGL_win.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_WIN) && !defined(_M_ARM64)
 
-#include "SkWGL.h"
+#include "src/utils/win/SkWGL.h"
 
-#include "SkOnce.h"
-#include "SkTDArray.h"
-#include "SkTSearch.h"
-#include "SkTSort.h"
+#include "include/private/SkOnce.h"
+#include "include/private/SkTDArray.h"
+#include "include/private/SkTSearch.h"
+#include "src/core/SkTSort.h"
 
 bool SkWGLExtensions::hasExtension(HDC dc, const char* ext) const {
     if (nullptr == this->fGetExtensionsString) {
diff --git a/src/xml/SkDOM.cpp b/src/xml/SkDOM.cpp
index e6c3435..0f39135 100644
--- a/src/xml/SkDOM.cpp
+++ b/src/xml/SkDOM.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkDOM.h"
+#include "src/xml/SkDOM.h"
 
-#include "SkStream.h"
-#include "SkTo.h"
-#include "SkXMLParser.h"
-#include "SkXMLWriter.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkTo.h"
+#include "src/xml/SkXMLParser.h"
+#include "src/xml/SkXMLWriter.h"
 
 bool SkXMLParser::parse(const SkDOM& dom, const SkDOMNode* node) {
     const char* elemName = dom.getName(node);
@@ -174,8 +174,8 @@
 
 //////////////////////////////////////////////////////////////////////////////
 
-#include "SkXMLParser.h"
-#include "SkTDArray.h"
+#include "include/private/SkTDArray.h"
+#include "src/xml/SkXMLParser.h"
 
 static char* dupstr(SkArenaAlloc* chunk, const char src[]) {
     SkASSERT(chunk && src);
@@ -372,7 +372,7 @@
 
 //////////////////////////////////////////////////////////////////////////
 
-#include "SkParse.h"
+#include "include/utils/SkParse.h"
 
 bool SkDOM::findS32(const Node* node, const char name[], int32_t* value) const {
     const char* vstr = this->findAttr(node, name);
diff --git a/src/xml/SkDOM.h b/src/xml/SkDOM.h
index d3b7b95..4d0ab9d 100644
--- a/src/xml/SkDOM.h
+++ b/src/xml/SkDOM.h
@@ -8,11 +8,11 @@
 #ifndef SkDOM_DEFINED
 #define SkDOM_DEFINED
 
-#include "SkArenaAlloc.h"
-#include "SkNoncopyable.h"
-#include "SkScalar.h"
-#include "SkTemplates.h"
-#include "SkTypes.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkArenaAlloc.h"
+#include "include/private/SkNoncopyable.h"
+#include "include/private/SkTemplates.h"
 
 struct SkDOMNode;
 struct SkDOMAttr;
diff --git a/src/xml/SkXMLParser.cpp b/src/xml/SkXMLParser.cpp
index 8e5b554..2e258da 100644
--- a/src/xml/SkXMLParser.cpp
+++ b/src/xml/SkXMLParser.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkXMLParser.h"
+#include "src/xml/SkXMLParser.h"
 
 #include "expat.h"
 
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkTo.h"
-#include "SkTypes.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTo.h"
 
 static char const* const gErrorStrings[] = {
     "empty or missing file ",
diff --git a/src/xml/SkXMLParser.h b/src/xml/SkXMLParser.h
index a20c763..3fe317a 100644
--- a/src/xml/SkXMLParser.h
+++ b/src/xml/SkXMLParser.h
@@ -10,7 +10,7 @@
 #ifndef SkXMLParser_DEFINED
 #define SkXMLParser_DEFINED
 
-#include "SkString.h"
+#include "include/core/SkString.h"
 
 class SkStream;
 
diff --git a/src/xml/SkXMLWriter.cpp b/src/xml/SkXMLWriter.cpp
index 0be9c55..25d59b4 100644
--- a/src/xml/SkXMLWriter.cpp
+++ b/src/xml/SkXMLWriter.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkXMLWriter.h"
+#include "src/xml/SkXMLWriter.h"
 
-#include "SkStream.h"
-#include "SkTo.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkTo.h"
 
 SkXMLWriter::SkXMLWriter(bool doEscapeMarkup) : fDoEscapeMarkup(doEscapeMarkup)
 {}
@@ -260,7 +260,7 @@
 
 ////////////////////////////////////////////////////////////////////////////////////////////////
 
-#include "SkXMLParser.h"
+#include "src/xml/SkXMLParser.h"
 
 SkXMLParserWriter::SkXMLParserWriter(SkXMLParser* parser)
     : SkXMLWriter(false), fParser(*parser)
diff --git a/src/xml/SkXMLWriter.h b/src/xml/SkXMLWriter.h
index c500e16..49fb4be 100644
--- a/src/xml/SkXMLWriter.h
+++ b/src/xml/SkXMLWriter.h
@@ -8,9 +8,9 @@
 #ifndef SkXMLWriter_DEFINED
 #define SkXMLWriter_DEFINED
 
-#include "../private/SkTDArray.h"
-#include "SkString.h"
-#include "SkDOM.h"
+#include "include/core/SkString.h"
+#include "include/private/SkTDArray.h"
+#include "src/xml/SkDOM.h"
 
 class SkWStream;
 class SkXMLParser;
diff --git a/src/xps/SkXPSDevice.cpp b/src/xps/SkXPSDevice.cpp
index f3c6f4e..6f1d16d 100644
--- a/src/xps/SkXPSDevice.cpp
+++ b/src/xps/SkXPSDevice.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_WIN)
 
-#include "SkLeanWindows.h"
+#include "include/private/SkLeanWindows.h"
 
 #ifndef UNICODE
 #define UNICODE
@@ -22,37 +22,37 @@
 #include <FontSub.h>
 #include <limits>
 
-#include "SkColor.h"
-#include "SkData.h"
-#include "SkDraw.h"
-#include "SkEndian.h"
-#include "SkGeometry.h"
-#include "SkHRESULT.h"
-#include "SkIStream.h"
-#include "SkImage.h"
-#include "SkImageEncoder.h"
-#include "SkImagePriv.h"
-#include "SkMaskFilterBase.h"
-#include "SkPaint.h"
-#include "SkPathEffect.h"
-#include "SkPathOps.h"
-#include "SkPoint.h"
-#include "SkRasterClip.h"
-#include "SkSFNTHeader.h"
-#include "SkShader.h"
-#include "SkShaderBase.h"
-#include "SkSize.h"
-#include "SkStream.h"
-#include "SkStrikeCache.h"
-#include "SkTDArray.h"
-#include "SkTLazy.h"
-#include "SkTScopedComPtr.h"
-#include "SkTTCFHeader.h"
-#include "SkTo.h"
-#include "SkTypefacePriv.h"
-#include "SkUtils.h"
-#include "SkVertices.h"
-#include "SkXPSDevice.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageEncoder.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkVertices.h"
+#include "include/pathops/SkPathOps.h"
+#include "include/private/SkTDArray.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkEndian.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkImagePriv.h"
+#include "src/core/SkMaskFilterBase.h"
+#include "src/core/SkRasterClip.h"
+#include "src/core/SkStrikeCache.h"
+#include "src/core/SkTLazy.h"
+#include "src/core/SkTypefacePriv.h"
+#include "src/core/SkUtils.h"
+#include "src/sfnt/SkSFNTHeader.h"
+#include "src/sfnt/SkTTCFHeader.h"
+#include "src/shaders/SkShaderBase.h"
+#include "src/utils/win/SkHRESULT.h"
+#include "src/utils/win/SkIStream.h"
+#include "src/utils/win/SkTScopedComPtr.h"
+#include "src/xps/SkXPSDevice.h"
 
 //Windows defines a FLOAT type,
 //make it clear when converting a scalar that this is what is wanted.
diff --git a/src/xps/SkXPSDevice.h b/src/xps/SkXPSDevice.h
index 9bafb02..d9b7bab 100644
--- a/src/xps/SkXPSDevice.h
+++ b/src/xps/SkXPSDevice.h
@@ -8,27 +8,27 @@
 #ifndef SkXPSDevice_DEFINED
 #define SkXPSDevice_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #ifdef SK_BUILD_FOR_WIN
 
 #include <ObjBase.h>
 #include <XpsObjectModel.h>
 
-#include "SkAutoCoInitialize.h"
-#include "SkBitSet.h"
-#include "SkBitmapDevice.h"
-#include "SkCanvas.h"
-#include "SkClipStackDevice.h"
-#include "SkColor.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPoint.h"
-#include "SkShader.h"
-#include "SkSize.h"
-#include "SkTArray.h"
-#include "SkTScopedComPtr.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkTArray.h"
+#include "src/core/SkBitmapDevice.h"
+#include "src/core/SkClipStackDevice.h"
+#include "src/utils/SkBitSet.h"
+#include "src/utils/win/SkAutoCoInitialize.h"
+#include "src/utils/win/SkTScopedComPtr.h"
 
 class SkGlyphRunList;
 
diff --git a/src/xps/SkXPSDocument.cpp b/src/xps/SkXPSDocument.cpp
index b0a88b0..b7000bf 100644
--- a/src/xps/SkXPSDocument.cpp
+++ b/src/xps/SkXPSDocument.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #if defined(SK_BUILD_FOR_WIN)
 
-#include "SkXPSDocument.h"
+#include "include/docs/SkXPSDocument.h"
 
-#include "SkHRESULT.h"
-#include "SkStream.h"
-#include "SkTScopedComPtr.h"
-#include "SkXPSDevice.h"
+#include "include/core/SkStream.h"
+#include "src/utils/win/SkHRESULT.h"
+#include "src/utils/win/SkTScopedComPtr.h"
+#include "src/xps/SkXPSDevice.h"
 
 #include <XpsObjectModel.h>
 
diff --git a/tests/AAClipTest.cpp b/tests/AAClipTest.cpp
index b7ec31b..4162def 100644
--- a/tests/AAClipTest.cpp
+++ b/tests/AAClipTest.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "SkAAClip.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkImageInfo.h"
-#include "SkMalloc.h"
-#include "SkMask.h"
-#include "SkMatrix.h"
-#include "SkPath.h"
-#include "SkRRect.h"
-#include "SkRandom.h"
-#include "SkRasterClip.h"
-#include "SkRect.h"
-#include "SkRegion.h"
-#include "SkScalar.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkMalloc.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkAAClip.h"
+#include "src/core/SkMask.h"
+#include "src/core/SkRasterClip.h"
+#include "tests/Test.h"
 
 #include <string.h>
 
diff --git a/tests/AdvancedBlendTest.cpp b/tests/AdvancedBlendTest.cpp
index 3ff2a71..a008013 100644
--- a/tests/AdvancedBlendTest.cpp
+++ b/tests/AdvancedBlendTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "GrContextPriv.h"
-#include "GrPaint.h"
-#include "GrProcessorSet.h"
-#include "effects/GrCustomXfermode.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrPaint.h"
+#include "src/gpu/GrProcessorSet.h"
+#include "src/gpu/effects/GrCustomXfermode.h"
 
 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(AdvancedBlendTest, reporter, ctxInfo) {
     static constexpr auto opaque = GrProcessorAnalysisColor::Opaque::kYes;
diff --git a/tests/AndroidCodecTest.cpp b/tests/AndroidCodecTest.cpp
index 748c50b..cdb8c5f 100644
--- a/tests/AndroidCodecTest.cpp
+++ b/tests/AndroidCodecTest.cpp
@@ -5,22 +5,22 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkAndroidCodec.h"
-#include "SkBitmap.h"
-#include "SkCodec.h"
-#include "SkCodecImageGenerator.h"
-#include "SkColor.h"
-#include "SkData.h"
-#include "SkEncodedImageFormat.h"
-#include "SkImageGenerator.h"
-#include "SkImageInfo.h"
-#include "SkPixmapPriv.h"
-#include "SkRefCnt.h"
-#include "SkSize.h"
-#include "SkString.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/codec/SkAndroidCodec.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkData.h"
+#include "include/core/SkEncodedImageFormat.h"
+#include "include/core/SkImageGenerator.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "src/codec/SkCodecImageGenerator.h"
+#include "src/core/SkPixmapPriv.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
 
 #include <algorithm>
 #include <memory>
diff --git a/tests/AnimatedImageTest.cpp b/tests/AnimatedImageTest.cpp
index 93292d1..3382495c 100644
--- a/tests/AnimatedImageTest.cpp
+++ b/tests/AnimatedImageTest.cpp
@@ -5,24 +5,24 @@
  * found in the LICENSE file.
  */
 
-#include "CodecPriv.h"
-#include "Resources.h"
-#include "SkAndroidCodec.h"
-#include "SkAnimatedImage.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkCodec.h"
-#include "SkColor.h"
-#include "SkData.h"
-#include "SkImageInfo.h"
-#include "SkPicture.h"
-#include "SkRefCnt.h"
-#include "SkSize.h"
-#include "SkString.h"
-#include "SkTypes.h"
-#include "SkUnPreMultiply.h"
-#include "Test.h"
-#include "ToolUtils.h"
+#include "include/android/SkAnimatedImage.h"
+#include "include/codec/SkAndroidCodec.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "include/core/SkUnPreMultiply.h"
+#include "tests/CodecPriv.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
 #include <algorithm>
 #include <memory>
diff --git a/tests/AnnotationTest.cpp b/tests/AnnotationTest.cpp
index aec85cd..d89541a 100644
--- a/tests/AnnotationTest.cpp
+++ b/tests/AnnotationTest.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkAnnotation.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkData.h"
-#include "SkPDFDocument.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkStream.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkAnnotation.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkData.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypes.h"
+#include "include/docs/SkPDFDocument.h"
+#include "tests/Test.h"
 
 #include <string.h>
 #include <memory>
@@ -88,8 +88,8 @@
 }
 
 #if defined(SK_XML)
-    #include "SkSVGCanvas.h"
-    #include "SkXMLWriter.h"
+    #include "include/svg/SkSVGCanvas.h"
+    #include "src/xml/SkXMLWriter.h"
 
     DEF_TEST(Annotation_SvgLink, reporter) {
         SkDynamicMemoryWStream outStream;
diff --git a/tests/ApplyGammaTest.cpp b/tests/ApplyGammaTest.cpp
index 62d843a..76c6601 100644
--- a/tests/ApplyGammaTest.cpp
+++ b/tests/ApplyGammaTest.cpp
@@ -5,28 +5,28 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "GrShaderCaps.h"
-#include "GrTypes.h"
-#include "SkBitmap.h"
-#include "SkBlendMode.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkColorFilter.h"
-#include "SkColorPriv.h"
-#include "SkImageInfo.h"
-#include "SkPaint.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkSurface.h"
-#include "SkTemplates.h"
-#include "SkUtils.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkUtils.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "tests/Test.h"
+#include "tools/gpu/GrContextFactory.h"
 
 #include <math.h>
 
diff --git a/tests/ArenaAllocTest.cpp b/tests/ArenaAllocTest.cpp
index adcdb55..b4a8d56 100644
--- a/tests/ArenaAllocTest.cpp
+++ b/tests/ArenaAllocTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkArenaAlloc.h"
-#include "SkRefCnt.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkArenaAlloc.h"
+#include "tests/Test.h"
 
 #include <memory>
 #include <new>
diff --git a/tests/AsADashTest.cpp b/tests/AsADashTest.cpp
index b612f23..a7ecfd6 100644
--- a/tests/AsADashTest.cpp
+++ b/tests/AsADashTest.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkCornerPathEffect.h"
-#include "SkDashPathEffect.h"
-#include "SkPathEffect.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkTemplates.h"
-#include "Test.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/effects/SkCornerPathEffect.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "include/private/SkTemplates.h"
+#include "tests/Test.h"
 
 DEF_TEST(AsADashTest_noneDash, reporter) {
     sk_sp<SkPathEffect> pe(SkCornerPathEffect::Make(1.0));
diff --git a/tests/BadIcoTest.cpp b/tests/BadIcoTest.cpp
index e549b86..7863084 100644
--- a/tests/BadIcoTest.cpp
+++ b/tests/BadIcoTest.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkBitmap.h"
-#include "SkCodec.h"
-#include "SkOSPath.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "src/utils/SkOSPath.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
 
 #include <memory>
 #include <utility>
diff --git a/tests/BitSetTest.cpp b/tests/BitSetTest.cpp
index 3bbb074..c9105b0 100644
--- a/tests/BitSetTest.cpp
+++ b/tests/BitSetTest.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitSet.h"
-#include "Test.h"
+#include "src/utils/SkBitSet.h"
+#include "tests/Test.h"
 
 #include <vector>
 
diff --git a/tests/BitmapCopyTest.cpp b/tests/BitmapCopyTest.cpp
index 5b02491..0e3cef2 100644
--- a/tests/BitmapCopyTest.cpp
+++ b/tests/BitmapCopyTest.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkColor.h"
-#include "SkColorSpace.h"
-#include "SkImageInfo.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkSize.h"
-#include "SkTypes.h"
-#include "Test.h"
-#include "ToolUtils.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkTypes.h"
+#include "tests/Test.h"
+#include "tools/ToolUtils.h"
 
 static void init_src(const SkBitmap& bitmap) {
     if (bitmap.getPixels()) {
@@ -128,8 +128,8 @@
     }
 }
 
-#include "SkColorPriv.h"
-#include "SkUtils.h"
+#include "include/core/SkColorPriv.h"
+#include "src/core/SkUtils.h"
 
 /**
  *  Construct 4x4 pixels where we can look at a color and determine where it should be in the grid.
diff --git a/tests/BitmapGetColorTest.cpp b/tests/BitmapGetColorTest.cpp
index 89c8ecb..c27cb2f 100644
--- a/tests/BitmapGetColorTest.cpp
+++ b/tests/BitmapGetColorTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkColor.h"
-#include "SkImageInfo.h"
-#include "SkRect.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkTypes.h"
+#include "tests/Test.h"
 
 DEF_TEST(GetColor, reporter) {
     static const struct Rec {
diff --git a/tests/BitmapTest.cpp b/tests/BitmapTest.cpp
index be5b972..d859a6c 100644
--- a/tests/BitmapTest.cpp
+++ b/tests/BitmapTest.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkColor.h"
-#include "SkImageInfo.h"
-#include "SkMallocPixelRef.h"
-#include "SkPixelRef.h"
-#include "SkPixmap.h"
-#include "SkRandom.h"
-#include "SkRefCnt.h"
-#include "SkTypes.h"
-#include "Test.h"
-#include "ToolUtils.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMallocPixelRef.h"
+#include "include/core/SkPixelRef.h"
+#include "include/core/SkPixmap.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypes.h"
+#include "include/utils/SkRandom.h"
+#include "tests/Test.h"
+#include "tools/ToolUtils.h"
 
 static void test_peekpixels(skiatest::Reporter* reporter) {
     const SkImageInfo info = SkImageInfo::MakeN32Premul(10, 10);
diff --git a/tests/BlendTest.cpp b/tests/BlendTest.cpp
index 8e52c25..fe701ee 100644
--- a/tests/BlendTest.cpp
+++ b/tests/BlendTest.cpp
@@ -5,27 +5,27 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkBlendMode.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkColorSpace.h"
-#include "SkImageInfo.h"
-#include "SkPaint.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkSurface.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTypes.h"
+#include "tests/Test.h"
 
-#include "GrBackendSurface.h"
-#include "GrContext.h"
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "GrResourceProvider.h"
-#include "GrTexture.h"
-#include "GrTypes.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTexture.h"
+#include "include/gpu/GrTypes.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "tools/gpu/GrContextFactory.h"
 
 #include <vector>
 
diff --git a/tests/BlitMaskClip.cpp b/tests/BlitMaskClip.cpp
index 240a0cf..967b1b4 100644
--- a/tests/BlitMaskClip.cpp
+++ b/tests/BlitMaskClip.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlitter.h"
-#include "SkColor.h"
-#include "SkMask.h"
-#include "SkRect.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkTypes.h"
+#include "src/core/SkBlitter.h"
+#include "src/core/SkMask.h"
+#include "tests/Test.h"
 
 #include <string.h>
 
diff --git a/tests/BlurTest.cpp b/tests/BlurTest.cpp
index 40a911a..c066085 100644
--- a/tests/BlurTest.cpp
+++ b/tests/BlurTest.cpp
@@ -5,42 +5,42 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkBlendMode.h"
-#include "SkBlurDrawLooper.h"
-#include "SkBlurMask.h"
-#include "SkBlurPriv.h"
-#include "SkBlurTypes.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkColorPriv.h"
-#include "SkDrawLooper.h"
-#include "SkEmbossMaskFilter.h"
-#include "SkFloatBits.h"
-#include "SkImageInfo.h"
-#include "SkLayerDrawLooper.h"
-#include "SkMask.h"
-#include "SkMaskFilter.h"
-#include "SkMaskFilterBase.h"
-#include "SkMath.h"
-#include "SkMathPriv.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPerlinNoiseShader.h"
-#include "SkPixmap.h"
-#include "SkPoint.h"
-#include "SkRRect.h"
-#include "SkRectPriv.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkShader.h"
-#include "SkSize.h"
-#include "SkSurface.h"
-#include "SkTypes.h"
-#include "Test.h"
-#include "ToolUtils.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkBlurTypes.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkDrawLooper.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkMath.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPixmap.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTypes.h"
+#include "include/effects/SkBlurDrawLooper.h"
+#include "include/effects/SkLayerDrawLooper.h"
+#include "include/effects/SkPerlinNoiseShader.h"
+#include "include/private/SkFloatBits.h"
+#include "src/core/SkBlurMask.h"
+#include "src/core/SkBlurPriv.h"
+#include "src/core/SkMask.h"
+#include "src/core/SkMaskFilterBase.h"
+#include "src/core/SkMathPriv.h"
+#include "src/core/SkRectPriv.h"
+#include "src/effects/SkEmbossMaskFilter.h"
+#include "tests/Test.h"
+#include "tools/ToolUtils.h"
 
-#include "GrContextFactory.h"
+#include "tools/gpu/GrContextFactory.h"
 
 #include <math.h>
 #include <string.h>
diff --git a/tests/CTest.cpp b/tests/CTest.cpp
index cd9522f..884e1b9 100644
--- a/tests/CTest.cpp
+++ b/tests/CTest.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
-#include "sk_canvas.h"
-#include "sk_imageinfo.h"
-#include "sk_paint.h"
-#include "sk_shader.h"
-#include "sk_surface.h"
-#include "sk_types.h"
+#include "include/c/sk_canvas.h"
+#include "include/c/sk_imageinfo.h"
+#include "include/c/sk_paint.h"
+#include "include/c/sk_shader.h"
+#include "include/c/sk_surface.h"
+#include "include/c/sk_types.h"
+#include "tests/Test.h"
 
 #include <stdint.h>
 
diff --git a/tests/CachedDataTest.cpp b/tests/CachedDataTest.cpp
index efb4d71..856b83c 100644
--- a/tests/CachedDataTest.cpp
+++ b/tests/CachedDataTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkCachedData.h"
-#include "SkDiscardableMemoryPool.h"
-#include "SkMalloc.h"
-#include "SkRefCnt.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkMalloc.h"
+#include "src/core/SkCachedData.h"
+#include "src/lazy/SkDiscardableMemoryPool.h"
+#include "tests/Test.h"
 
 #include <cstring>
 
diff --git a/tests/CachedDecodingPixelRefTest.cpp b/tests/CachedDecodingPixelRefTest.cpp
index a09fe62..f4fa442 100644
--- a/tests/CachedDecodingPixelRefTest.cpp
+++ b/tests/CachedDecodingPixelRefTest.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkColorData.h"
-#include "SkImage.h"
-#include "SkImageGenerator.h"
-#include "SkImageInfo.h"
-#include "SkMakeUnique.h"
-#include "SkRefCnt.h"
-#include "SkTypes.h"
-#include "SkUtils.h"
-#include "Test.h"
-#include "ToolUtils.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageGenerator.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkColorData.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkUtils.h"
+#include "tests/Test.h"
+#include "tools/ToolUtils.h"
 
 #include <utility>
 
diff --git a/tests/CanvasStateHelpers.cpp b/tests/CanvasStateHelpers.cpp
index e84615d..95d35fb 100644
--- a/tests/CanvasStateHelpers.cpp
+++ b/tests/CanvasStateHelpers.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #ifdef SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG
-#include "CanvasStateHelpers.h"
-#include "SkCanvas.h"
-#include "SkCanvasStateUtils.h"
-#include "SkClipOp.h"
-#include "SkColor.h"
-#include "SkPaint.h"
-#include "SkRect.h"
-#include "SkRegion.h"
-#include "SkScalar.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkClipOp.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkScalar.h"
+#include "include/utils/SkCanvasStateUtils.h"
+#include "tests/CanvasStateHelpers.h"
 
 #include <memory>
 
diff --git a/tests/CanvasStateHelpers.h b/tests/CanvasStateHelpers.h
index aa3c178..c02d9ec 100644
--- a/tests/CanvasStateHelpers.h
+++ b/tests/CanvasStateHelpers.h
@@ -8,7 +8,7 @@
 #ifndef CanvasStateHelpers_DEFINED
 #define CanvasStateHelpers_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #ifdef SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG
 class SkCanvas;
diff --git a/tests/CanvasStateTest.cpp b/tests/CanvasStateTest.cpp
index f4ed5a4..7c2c798 100644
--- a/tests/CanvasStateTest.cpp
+++ b/tests/CanvasStateTest.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "CanvasStateHelpers.h"
-#include "CommandLineFlags.h"
-#include "SkBitmap.h"
-#include "SkCanvasPriv.h"
-#include "SkCanvasStateUtils.h"
-#include "SkClipOpPriv.h"
-#include "SkColor.h"
-#include "SkImageInfo.h"
-#include "SkPaint.h"
-#include "SkRRect.h"
-#include "SkRect.h"
-#include "SkRegion.h"
-#include "SkScalar.h"
-#include "SkTDArray.h"
-#include "SkTLazy.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTDArray.h"
+#include "include/utils/SkCanvasStateUtils.h"
+#include "src/core/SkCanvasPriv.h"
+#include "src/core/SkClipOpPriv.h"
+#include "src/core/SkTLazy.h"
+#include "tests/CanvasStateHelpers.h"
+#include "tests/Test.h"
+#include "tools/flags/CommandLineFlags.h"
 
 #include <cstring>
 #include <memory>
diff --git a/tests/CanvasTest.cpp b/tests/CanvasTest.cpp
index f66f163..986f124 100644
--- a/tests/CanvasTest.cpp
+++ b/tests/CanvasTest.cpp
@@ -45,44 +45,44 @@
  *      that the invoked method returns a non-zero value.
  */
 
-#include "SkBitmap.h"
-#include "SkBlendMode.h"
-#include "SkCanvas.h"
-#include "SkCanvasStack.h"
-#include "SkClipOp.h"
-#include "SkClipOpPriv.h"
-#include "SkColor.h"
-#include "SkImageFilter.h"
-#include "SkImageInfo.h"
-#include "SkMalloc.h"
-#include "SkMatrix.h"
-#include "SkNWayCanvas.h"
-#include "SkPDFDocument.h"
-#include "SkPaint.h"
-#include "SkPaintFilterCanvas.h"
-#include "SkPath.h"
-#include "SkPictureRecorder.h"
-#include "SkPixmap.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkRegion.h"
-#include "SkScalar.h"
-#include "SkShader.h"
-#include "SkSize.h"
-#include "SkSpecialImage.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkSurface.h"
-#include "SkTDArray.h"
-#include "SkTemplates.h"
-#include "SkTypes.h"
-#include "SkVertices.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkClipOp.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkPixmap.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTypes.h"
+#include "include/core/SkVertices.h"
+#include "include/docs/SkPDFDocument.h"
+#include "include/private/SkMalloc.h"
+#include "include/private/SkTDArray.h"
+#include "include/private/SkTemplates.h"
+#include "include/utils/SkNWayCanvas.h"
+#include "include/utils/SkPaintFilterCanvas.h"
+#include "src/core/SkClipOpPriv.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/utils/SkCanvasStack.h"
+#include "tests/Test.h"
 
 #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
-#include "SkColorData.h"
-#include "SkColorSpace.h"
+#include "include/core/SkColorSpace.h"
+#include "include/private/SkColorData.h"
 #endif
 
 #include <memory>
@@ -869,7 +869,7 @@
     canvas.restore();
 }
 
-#include "SkPaintImageFilter.h"
+#include "include/effects/SkPaintImageFilter.h"
 
 // Test that we don't crash/assert when building a canvas with degenerate coordintes
 // (esp. big ones, that might invoke tiling).
@@ -890,7 +890,7 @@
     }
 }
 
-#include "SkBlurImageFilter.h"
+#include "include/effects/SkBlurImageFilter.h"
 
 DEF_TEST(Canvas_ClippedOutImageFilter, reporter) {
     SkCanvas canvas(100, 100);
diff --git a/tests/ChecksumTest.cpp b/tests/ChecksumTest.cpp
index 6a92ed6..ecea56c 100644
--- a/tests/ChecksumTest.cpp
+++ b/tests/ChecksumTest.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkChecksum.h"
-#include "SkOpts.h"
-#include "SkRandom.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkChecksum.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkOpts.h"
+#include "tests/Test.h"
 
 DEF_TEST(Checksum, r) {
     // Put 128 random bytes into two identical buffers.  Any multiple of 4 will do.
diff --git a/tests/ClearTest.cpp b/tests/ClearTest.cpp
index 03bfc58..3209609 100644
--- a/tests/ClearTest.cpp
+++ b/tests/ClearTest.cpp
@@ -5,25 +5,25 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrColor.h"
-#include "GrContext.h"
-#include "GrContextFactory.h"
-#include "GrContextOptions.h"
-#include "GrContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrTypes.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkColorSpace.h"
-#include "SkImageInfo.h"
-#include "SkPaint.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkSurface.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrContextOptions.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/GrColor.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "tests/Test.h"
+#include "tools/gpu/GrContextFactory.h"
 
 #include <cstring>
 #include <memory>
diff --git a/tests/ClipBoundsTest.cpp b/tests/ClipBoundsTest.cpp
index 32b17ad..ca1cb3e 100644
--- a/tests/ClipBoundsTest.cpp
+++ b/tests/ClipBoundsTest.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrClipStackClip.h"
-#include "SkClipOpPriv.h"
-#include "SkClipStack.h"
-#include "SkMatrix.h"
-#include "SkRect.h"
-#include "Test.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkRect.h"
+#include "src/core/SkClipOpPriv.h"
+#include "src/core/SkClipStack.h"
+#include "src/gpu/GrClipStackClip.h"
+#include "tests/Test.h"
 
 // Ensure that the 'getConservativeBounds' calls are returning bounds clamped
 // to the render target
diff --git a/tests/ClipCubicTest.cpp b/tests/ClipCubicTest.cpp
index ca2f623..342f2cc 100644
--- a/tests/ClipCubicTest.cpp
+++ b/tests/ClipCubicTest.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkCubicClipper.h"
-#include "SkFloatBits.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkSurface.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkFloatBits.h"
+#include "src/core/SkCubicClipper.h"
+#include "tests/Test.h"
 
 // Currently the supersampler blitter uses int16_t for its index into an array
 // the width of the clip. Test that we don't crash/assert if we try to draw
@@ -171,7 +171,7 @@
     test_giantClip();
 }
 
-#include "SkSurface.h"
+#include "include/core/SkSurface.h"
 
 DEF_TEST(test_fuzz_crbug_698714, reporter) {
     auto surface(SkSurface::MakeRasterN32Premul(500, 500));
diff --git a/tests/ClipStackTest.cpp b/tests/ClipStackTest.cpp
index c95bdc7..1bd1007 100644
--- a/tests/ClipStackTest.cpp
+++ b/tests/ClipStackTest.cpp
@@ -5,40 +5,40 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkClipOp.h"
-#include "SkClipOpPriv.h"
-#include "SkClipStack.h"
-#include "SkImageInfo.h"
-#include "SkMatrix.h"
-#include "SkPath.h"
-#include "SkPoint.h"
-#include "SkRRect.h"
-#include "SkRandom.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkRegion.h"
-#include "SkScalar.h"
-#include "SkSize.h"
-#include "SkString.h"
-#include "SkSurface.h"
-#include "SkTemplates.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkClipOp.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkString.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTemplates.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkClipOpPriv.h"
+#include "src/core/SkClipStack.h"
+#include "tests/Test.h"
 
-#include "GrCaps.h"
-#include "GrClip.h"
-#include "GrClipStackClip.h"
-#include "GrConfig.h"
-#include "GrContext.h"
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "GrReducedClip.h"
-#include "GrResourceCache.h"
-#include "GrResourceKey.h"
-#include "GrSurfaceProxyPriv.h"
-#include "GrTexture.h"
-#include "GrTextureProxy.h"
+#include "include/gpu/GrConfig.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrResourceKey.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrClipStackClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrReducedClip.h"
+#include "src/gpu/GrResourceCache.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
+#include "tools/gpu/GrContextFactory.h"
 typedef GrReducedClip::ElementList ElementList;
 typedef GrReducedClip::InitialState InitialState;
 
diff --git a/tests/ClipperTest.cpp b/tests/ClipperTest.cpp
index 3cebd78..efedad8 100644
--- a/tests/ClipperTest.cpp
+++ b/tests/ClipperTest.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkEdgeClipper.h"
-#include "SkLineClipper.h"
-#include "SkPaint.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkScalar.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkTypes.h"
+#include "src/core/SkEdgeClipper.h"
+#include "src/core/SkLineClipper.h"
+#include "tests/Test.h"
 
 #include <cstring>
 
@@ -157,7 +157,7 @@
     test_hairclipping(reporter);
 }
 
-#include "SkLineClipper.h"
+#include "src/core/SkLineClipper.h"
 
 DEF_TEST(LineClipper_skbug_7981, r) {
     SkPoint src[] = {{ -5.77698802E+17f, -1.81758057E+23f}, {38127, 2}};
diff --git a/tests/CodecAnimTest.cpp b/tests/CodecAnimTest.cpp
index ec4ca18..96915f5 100644
--- a/tests/CodecAnimTest.cpp
+++ b/tests/CodecAnimTest.cpp
@@ -5,22 +5,22 @@
  * found in the LICENSE file.
  */
 
-#include "CodecPriv.h"
-#include "Resources.h"
-#include "SkAndroidCodec.h"
-#include "SkAnimCodecPlayer.h"
-#include "SkBitmap.h"
-#include "SkCodec.h"
-#include "SkCodecAnimation.h"
-#include "SkData.h"
-#include "SkImageInfo.h"
-#include "SkMakeUnique.h"
-#include "SkRefCnt.h"
-#include "SkSize.h"
-#include "SkString.h"
-#include "SkTypes.h"
-#include "Test.h"
-#include "ToolUtils.h"
+#include "include/codec/SkAndroidCodec.h"
+#include "include/codec/SkCodec.h"
+#include "include/codec/SkCodecAnimation.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "include/utils/SkAnimCodecPlayer.h"
+#include "src/core/SkMakeUnique.h"
+#include "tests/CodecPriv.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
 #include <cstring>
 #include <memory>
diff --git a/tests/CodecExactReadTest.cpp b/tests/CodecExactReadTest.cpp
index 86702a1..f4cac6f 100644
--- a/tests/CodecExactReadTest.cpp
+++ b/tests/CodecExactReadTest.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkBitmap.h"
-#include "SkCodec.h"
-#include "SkData.h"
-#include "SkImageInfo.h"
-#include "SkMakeUnique.h"
-#include "SkRefCnt.h"
-#include "SkStream.h"
-#include "SkTemplates.h"
-#include "Test.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkMakeUnique.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
 
 #include <cstring>
 #include <memory>
diff --git a/tests/CodecPartialTest.cpp b/tests/CodecPartialTest.cpp
index 84bc03e..f1c5437 100644
--- a/tests/CodecPartialTest.cpp
+++ b/tests/CodecPartialTest.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "CodecPriv.h"
-#include "FakeStreams.h"
-#include "Resources.h"
-#include "SkBitmap.h"
-#include "SkCodec.h"
-#include "SkData.h"
-#include "SkImageInfo.h"
-#include "SkMakeUnique.h"
-#include "SkRefCnt.h"
-#include "SkStream.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypes.h"
+#include "src/core/SkMakeUnique.h"
+#include "tests/CodecPriv.h"
+#include "tests/FakeStreams.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
 
 #include <cstring>
 #include <memory>
diff --git a/tests/CodecPriv.h b/tests/CodecPriv.h
index d4457b9..b36f0eb 100644
--- a/tests/CodecPriv.h
+++ b/tests/CodecPriv.h
@@ -7,14 +7,14 @@
 #ifndef CodecPriv_DEFINED
 #define CodecPriv_DEFINED
 
-#include "CommandLineFlags.h"
-#include "SkBitmap.h"
-#include "SkCodec.h"
-#include "SkData.h"
-#include "SkEncodedImageFormat.h"
-#include "SkImageEncoder.h"
-#include "SkOSPath.h"
-#include "SkStream.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkData.h"
+#include "include/core/SkEncodedImageFormat.h"
+#include "include/core/SkImageEncoder.h"
+#include "include/core/SkStream.h"
+#include "src/utils/SkOSPath.h"
+#include "tools/flags/CommandLineFlags.h"
 
 static DEFINE_string(codecWritePath, "",
                      "Dump image decodes from codec unit tests here.");
diff --git a/tests/CodecRecommendedTypeTest.cpp b/tests/CodecRecommendedTypeTest.cpp
index 53b6427..e041c7e 100644
--- a/tests/CodecRecommendedTypeTest.cpp
+++ b/tests/CodecRecommendedTypeTest.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkAndroidCodec.h"
-#include "SkBitmap.h"
-#include "SkColor.h"
-#include "SkColorSpace.h"
-#include "SkData.h"
-#include "SkEncodedImageFormat.h"
-#include "SkImageEncoder.h"
-#include "SkImageInfo.h"
-#include "SkStream.h"
-#include "Test.h"
+#include "include/codec/SkAndroidCodec.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkData.h"
+#include "include/core/SkEncodedImageFormat.h"
+#include "include/core/SkImageEncoder.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkStream.h"
+#include "tests/Test.h"
 
 #include <memory>
 #include <utility>
diff --git a/tests/CodecTest.cpp b/tests/CodecTest.cpp
index 2be8b20..78e9e4b 100644
--- a/tests/CodecTest.cpp
+++ b/tests/CodecTest.cpp
@@ -5,43 +5,43 @@
  * found in the LICENSE file.
  */
 
-#include "FakeStreams.h"
-#include "Resources.h"
-#include "SkAndroidCodec.h"
-#include "SkAutoMalloc.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkCodec.h"
-#include "SkCodecImageGenerator.h"
-#include "SkColor.h"
-#include "SkColorSpace.h"
-#include "SkColorSpacePriv.h"
-#include "SkData.h"
-#include "SkEncodedImageFormat.h"
-#include "SkFrontBufferedStream.h"
-#include "SkImage.h"
-#include "SkImageGenerator.h"
-#include "SkImageInfo.h"
-#include "SkJpegEncoder.h"
-#include "SkMD5.h"
-#include "SkMakeUnique.h"
-#include "SkMalloc.h"
-#include "SkPixmap.h"
-#include "SkPngChunkReader.h"
-#include "SkPngEncoder.h"
-#include "SkRandom.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkSize.h"
-#include "SkStream.h"
-#include "SkStreamPriv.h"
-#include "SkString.h"
-#include "SkTemplates.h"
-#include "SkTypes.h"
-#include "SkUnPreMultiply.h"
-#include "SkWebpEncoder.h"
-#include "Test.h"
-#include "ToolUtils.h"
+#include "include/codec/SkAndroidCodec.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkData.h"
+#include "include/core/SkEncodedImageFormat.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageGenerator.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkPixmap.h"
+#include "include/core/SkPngChunkReader.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "include/core/SkUnPreMultiply.h"
+#include "include/encode/SkJpegEncoder.h"
+#include "include/encode/SkPngEncoder.h"
+#include "include/encode/SkWebpEncoder.h"
+#include "include/private/SkMalloc.h"
+#include "include/private/SkTemplates.h"
+#include "include/utils/SkFrontBufferedStream.h"
+#include "include/utils/SkRandom.h"
+#include "src/codec/SkCodecImageGenerator.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkMD5.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkStreamPriv.h"
+#include "tests/FakeStreams.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 #include "png.h"
 
 #include <setjmp.h>
diff --git a/tests/ColorFilterTest.cpp b/tests/ColorFilterTest.cpp
index 2b05f94..4852802 100644
--- a/tests/ColorFilterTest.cpp
+++ b/tests/ColorFilterTest.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkAutoMalloc.h"
-#include "SkBlendMode.h"
-#include "SkColor.h"
-#include "SkColorFilter.h"
-#include "SkRandom.h"
-#include "SkReadBuffer.h"
-#include "SkRefCnt.h"
-#include "SkWriteBuffer.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypes.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "tests/Test.h"
 
 class SkFlattenable;
 
diff --git a/tests/ColorMatrixTest.cpp b/tests/ColorMatrixTest.cpp
index 371c332..52a19b0 100644
--- a/tests/ColorMatrixTest.cpp
+++ b/tests/ColorMatrixTest.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkColorFilter.h"
-#include "SkPaint.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "tests/Test.h"
 
 #include <cmath>
 #include <cstdlib>
diff --git a/tests/ColorPrivTest.cpp b/tests/ColorPrivTest.cpp
index c43873b..89f8d99 100644
--- a/tests/ColorPrivTest.cpp
+++ b/tests/ColorPrivTest.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkColor.h"
-#include "SkColorData.h"
-#include "SkColorPriv.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkColorData.h"
+#include "tests/Test.h"
 
 #define ASSERT(expr) REPORTER_ASSERT(r, expr)
 
diff --git a/tests/ColorSpaceTest.cpp b/tests/ColorSpaceTest.cpp
index 556a30d..e8864d4 100644
--- a/tests/ColorSpaceTest.cpp
+++ b/tests/ColorSpaceTest.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkCodec.h"
-#include "SkColorSpace.h"
-#include "SkColorSpacePriv.h"
-#include "SkData.h"
-#include "SkImageInfo.h"
-#include "SkRefCnt.h"
-#include "SkStream.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypes.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
 
 #include "skcms.h"
 #include "png.h"
diff --git a/tests/ColorTest.cpp b/tests/ColorTest.cpp
index e8bc9ec..e9e9479 100644
--- a/tests/ColorTest.cpp
+++ b/tests/ColorTest.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkColor.h"
-#include "SkColorData.h"
-#include "SkColorPriv.h"
-#include "SkMathPriv.h"
-#include "SkRandom.h"
-#include "SkTypes.h"
-#include "SkUnPreMultiply.h"
-#include "Test.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkTypes.h"
+#include "include/core/SkUnPreMultiply.h"
+#include "include/private/SkColorData.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkMathPriv.h"
+#include "tests/Test.h"
 
 #define GetPackedR16As32(packed)    (SkGetPackedR16(dc) << (8 - SK_R16_BITS))
 #define GetPackedG16As32(packed)    (SkGetPackedG16(dc) << (8 - SK_G16_BITS))
diff --git a/tests/CopySurfaceTest.cpp b/tests/CopySurfaceTest.cpp
index 2e66351..0674d04 100644
--- a/tests/CopySurfaceTest.cpp
+++ b/tests/CopySurfaceTest.cpp
@@ -5,24 +5,24 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrContext.h"
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "GrSurfaceContext.h"
-#include "GrSurfaceProxy.h"
-#include "GrTextureProxy.h"
-#include "GrTypes.h"
-#include "ProxyUtils.h"
-#include "SkGr.h"
-#include "SkImageInfo.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkTemplates.h"
-#include "SkUtils.h"
-#include "Test.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "include/private/GrTextureProxy.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkUtils.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrSurfaceContext.h"
+#include "src/gpu/SkGr.h"
+#include "tests/Test.h"
+#include "tools/gpu/GrContextFactory.h"
+#include "tools/gpu/ProxyUtils.h"
 
 #include <utility>
 
diff --git a/tests/CubicMapTest.cpp b/tests/CubicMapTest.cpp
index db44dc0..3bc0d098 100644
--- a/tests/CubicMapTest.cpp
+++ b/tests/CubicMapTest.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkCubicMap.h"
-#include "SkGeometry.h"
-#include "SkRandom.h"
-#include "Test.h"
-#include "../../src/pathops/SkPathOpsCubic.h"
+#include "include/core/SkCubicMap.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkGeometry.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "tests/Test.h"
 
 static float accurate_t(float A, float B, float C, float D) {
     double roots[3];
diff --git a/tests/DashPathEffectTest.cpp b/tests/DashPathEffectTest.cpp
index c50c88d..cc38b1b 100644
--- a/tests/DashPathEffectTest.cpp
+++ b/tests/DashPathEffectTest.cpp
@@ -5,21 +5,21 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkDashPathEffect.h"
-#include "SkImageInfo.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPathEffect.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkStrokeRec.h"
-#include "SkSurface.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTypes.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "tests/Test.h"
 
 // crbug.com/348821 was rooted in SkDashPathEffect refusing to flatten and unflatten itself when
 // the effect is nonsense.  Here we test that it fails when passed nonsense parameters.
diff --git a/tests/DataRefTest.cpp b/tests/DataRefTest.cpp
index e7ada5f..52a848f 100644
--- a/tests/DataRefTest.cpp
+++ b/tests/DataRefTest.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkData.h"
-#include "SkDataTable.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkRWBuffer.h"
-#include "SkRefCnt.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkTArray.h"
-#include "SkTaskGroup.h"
-#include "SkTemplates.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkData.h"
+#include "include/core/SkDataTable.h"
+#include "include/core/SkRWBuffer.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkOSFile.h"
+#include "src/core/SkTaskGroup.h"
+#include "src/utils/SkOSPath.h"
+#include "tests/Test.h"
 
 #include <cstdio>
 #include <cstring>
diff --git a/tests/DefaultPathRendererTest.cpp b/tests/DefaultPathRendererTest.cpp
index 8de67d0..17b2126 100644
--- a/tests/DefaultPathRendererTest.cpp
+++ b/tests/DefaultPathRendererTest.cpp
@@ -5,30 +5,30 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrClip.h"
-#include "GrColor.h"
-#include "GrContext.h"
-#include "GrContextFactory.h"
-#include "GrContextOptions.h"
-#include "GrContextPriv.h"
-#include "GrFragmentProcessor.h"
-#include "GrPaint.h"
-#include "GrRenderTargetContext.h"
-#include "GrStyle.h"
-#include "GrTypesPriv.h"
-#include "SkBitmap.h"
-#include "SkColor.h"
-#include "SkColorSpace.h"
-#include "SkImageInfo.h"
-#include "SkMatrix.h"
-#include "SkPath.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkStrokeRec.h"
-#include "Test.h"
-#include "effects/generated/GrConstColorProcessor.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrContextOptions.h"
+#include "include/private/GrColor.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrFragmentProcessor.h"
+#include "src/gpu/GrPaint.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrStyle.h"
+#include "src/gpu/effects/generated/GrConstColorProcessor.h"
+#include "tests/Test.h"
+#include "tools/gpu/GrContextFactory.h"
 
 #include <utility>
 
diff --git a/tests/DeferredDisplayListTest.cpp b/tests/DeferredDisplayListTest.cpp
index 29cffb0..24e3a91 100644
--- a/tests/DeferredDisplayListTest.cpp
+++ b/tests/DeferredDisplayListTest.cpp
@@ -8,40 +8,40 @@
 #include <initializer_list>
 #include <memory>
 #include <utility>
-#include "GrBackendSurface.h"
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetProxy.h"
-#include "GrTextureProxy.h"
-#include "GrTextureProxyPriv.h"
-#include "GrTypes.h"
-#include "GrTypesPriv.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColorSpace.h"
-#include "SkDeferredDisplayList.h"
-#include "SkDeferredDisplayListPriv.h"
-#include "SkDeferredDisplayListRecorder.h"
-#include "SkGpuDevice.h"
-#include "SkImage.h"
-#include "SkImageInfo.h"
-#include "SkImage_Gpu.h"
-#include "SkPaint.h"
-#include "SkPromiseImageTexture.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkSurface.h"
-#include "SkSurfaceCharacterization.h"
-#include "SkSurfaceProps.h"
-#include "SkSurface_Gpu.h"
-#include "Test.h"
-#include "gl/GrGLCaps.h"
-#include "gl/GrGLDefines.h"
-#include "gl/GrGLTypes.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkDeferredDisplayListRecorder.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPromiseImageTexture.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkSurfaceCharacterization.h"
+#include "include/core/SkSurfaceProps.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTypes.h"
+#include "include/gpu/gl/GrGLTypes.h"
+#include "include/private/GrRenderTargetProxy.h"
+#include "include/private/GrTextureProxy.h"
+#include "include/private/GrTypesPriv.h"
+#include "include/private/SkDeferredDisplayList.h"
+#include "src/core/SkDeferredDisplayListPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrTextureProxyPriv.h"
+#include "src/gpu/SkGpuDevice.h"
+#include "src/gpu/gl/GrGLCaps.h"
+#include "src/gpu/gl/GrGLDefines.h"
+#include "src/image/SkImage_Gpu.h"
+#include "src/image/SkSurface_Gpu.h"
+#include "tests/Test.h"
+#include "tools/gpu/GrContextFactory.h"
 #ifdef SK_VULKAN
 #include <vulkan/vulkan_core.h>
 #endif
diff --git a/tests/DequeTest.cpp b/tests/DequeTest.cpp
index b41262f..b3e4515 100644
--- a/tests/DequeTest.cpp
+++ b/tests/DequeTest.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkDeque.h"
-#include "Test.h"
+#include "include/core/SkDeque.h"
+#include "tests/Test.h"
 
 static void assert_count(skiatest::Reporter* reporter, const SkDeque& deq, int count) {
     if (0 == count) {
diff --git a/tests/DescriptorTest.cpp b/tests/DescriptorTest.cpp
index 42f0727..7426084 100644
--- a/tests/DescriptorTest.cpp
+++ b/tests/DescriptorTest.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkDescriptor.h"
-#include "Test.h"
+#include "src/core/SkDescriptor.h"
+#include "tests/Test.h"
 
 class SkDescriptorTestHelper {
 public:
diff --git a/tests/DetermineDomainModeTest.cpp b/tests/DetermineDomainModeTest.cpp
index 74e2b8a..577f333 100644
--- a/tests/DetermineDomainModeTest.cpp
+++ b/tests/DetermineDomainModeTest.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrContext.h"
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "GrProxyProvider.h"
-#include "GrSamplerState.h"
-#include "GrTextureProducer.h"
-#include "GrTextureProxy.h"
-#include "GrTypes.h"
-#include "GrTypesPriv.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "Test.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrSamplerState.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/GrTextureProxy.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrTextureProducer.h"
+#include "tests/Test.h"
+#include "tools/gpu/GrContextFactory.h"
 
 #include <initializer_list>
 
diff --git a/tests/DeviceTest.cpp b/tests/DeviceTest.cpp
index 5b1676c..2f96ff6 100644
--- a/tests/DeviceTest.cpp
+++ b/tests/DeviceTest.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "GrContextFactory.h"
-#include "GrTypes.h"
-#include "SkBitmap.h"
-#include "SkDevice.h"
-#include "SkGpuDevice.h"
-#include "SkImage.h"
-#include "SkImageInfo.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkSpecialImage.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypes.h"
+#include "include/gpu/GrTypes.h"
+#include "src/core/SkDevice.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/gpu/SkGpuDevice.h"
+#include "tests/Test.h"
+#include "tools/gpu/GrContextFactory.h"
 
 class SkColorSpace;
 class GrContext;
diff --git a/tests/DiscardableMemoryPoolTest.cpp b/tests/DiscardableMemoryPoolTest.cpp
index 6ea0e9b..6d7923f 100644
--- a/tests/DiscardableMemoryPoolTest.cpp
+++ b/tests/DiscardableMemoryPoolTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkDiscardableMemory.h"
-#include "SkDiscardableMemoryPool.h"
-#include "SkRefCnt.h"
-#include "Test.h"
+#include "include/core/SkRefCnt.h"
+#include "src/core/SkDiscardableMemory.h"
+#include "src/lazy/SkDiscardableMemoryPool.h"
+#include "tests/Test.h"
 
 #include <memory>
 
diff --git a/tests/DiscardableMemoryTest.cpp b/tests/DiscardableMemoryTest.cpp
index 8447e4d..cb90124 100644
--- a/tests/DiscardableMemoryTest.cpp
+++ b/tests/DiscardableMemoryTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkDiscardableMemory.h"
-#include "SkDiscardableMemoryPool.h"
-#include "SkRefCnt.h"
-#include "Test.h"
+#include "include/core/SkRefCnt.h"
+#include "src/core/SkDiscardableMemory.h"
+#include "src/lazy/SkDiscardableMemoryPool.h"
+#include "tests/Test.h"
 
 #include <cstring>
 #include <memory>
diff --git a/tests/DrawBitmapRectTest.cpp b/tests/DrawBitmapRectTest.cpp
index 6d3c1be..9f54e48 100644
--- a/tests/DrawBitmapRectTest.cpp
+++ b/tests/DrawBitmapRectTest.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkMatrix.h"
-#include "SkMatrixUtils.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkRect.h"
-#include "SkScalar.h"
-#include "SkShader.h"
-#include "SkSize.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkTypes.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkMatrixUtils.h"
+#include "tests/Test.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 
diff --git a/tests/DrawOpAtlasTest.cpp b/tests/DrawOpAtlasTest.cpp
index dc6cd2a..eda7d0f 100644
--- a/tests/DrawOpAtlasTest.cpp
+++ b/tests/DrawOpAtlasTest.cpp
@@ -5,36 +5,36 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrContext.h"
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "GrDeferredUpload.h"
-#include "GrDrawOpAtlas.h"
-#include "GrDrawingManager.h"
-#include "GrMemoryPool.h"
-#include "GrOnFlushResourceProvider.h"
-#include "GrOpFlushState.h"
-#include "GrRenderTargetContext.h"
-#include "GrSurfaceProxyPriv.h"
-#include "GrTextureProxy.h"
-#include "GrTypesPriv.h"
-#include "GrXferProcessor.h"
-#include "SkBitmap.h"
-#include "SkColor.h"
-#include "SkColorSpace.h"
-#include "SkIPoint16.h"
-#include "SkImageInfo.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkPoint.h"
-#include "SkRefCnt.h"
-#include "Test.h"
-#include "ops/GrDrawOp.h"
-#include "text/GrAtlasManager.h"
-#include "text/GrTextContext.h"
-#include "text/GrTextTarget.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/core/SkIPoint16.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrDeferredUpload.h"
+#include "src/gpu/GrDrawOpAtlas.h"
+#include "src/gpu/GrDrawingManager.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOnFlushResourceProvider.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
+#include "src/gpu/GrXferProcessor.h"
+#include "src/gpu/ops/GrDrawOp.h"
+#include "src/gpu/text/GrAtlasManager.h"
+#include "src/gpu/text/GrTextContext.h"
+#include "src/gpu/text/GrTextTarget.h"
+#include "tests/Test.h"
+#include "tools/gpu/GrContextFactory.h"
 
 #include <memory>
 
diff --git a/tests/DrawPathTest.cpp b/tests/DrawPathTest.cpp
index 53ebad1..940b286 100644
--- a/tests/DrawPathTest.cpp
+++ b/tests/DrawPathTest.cpp
@@ -5,24 +5,24 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkDashPathEffect.h"
-#include "SkImageInfo.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPathEffect.h"
-#include "SkPoint.h"
-#include "SkRRect.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkStrokeRec.h"
-#include "SkSurface.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTypes.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "tests/Test.h"
 
 // test that we can draw an aa-rect at coordinates > 32K (bigger than fixedpoint)
 static void test_big_aa_rect(skiatest::Reporter* reporter) {
diff --git a/tests/DrawTextTest.cpp b/tests/DrawTextTest.cpp
index 19c08f3..c0205fe 100644
--- a/tests/DrawTextTest.cpp
+++ b/tests/DrawTextTest.cpp
@@ -5,21 +5,21 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkDashPathEffect.h"
-#include "SkFont.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkPathEffect.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkSurface.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTypes.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "tests/Test.h"
 
 #include <cmath>
 
diff --git a/tests/DynamicHashTest.cpp b/tests/DynamicHashTest.cpp
index 62c070a..b2bbc40 100644
--- a/tests/DynamicHashTest.cpp
+++ b/tests/DynamicHashTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkTDynamicHash.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkTypes.h"
+#include "src/core/SkTDynamicHash.h"
+#include "tests/Test.h"
 
 #include <cstring>
 
diff --git a/tests/EGLImageTest.cpp b/tests/EGLImageTest.cpp
index 09c6bae..42f13e5 100644
--- a/tests/EGLImageTest.cpp
+++ b/tests/EGLImageTest.cpp
@@ -5,21 +5,21 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
-#include "TestUtils.h"
-#include "GrContext.h"
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrShaderCaps.h"
-#include "GrSurfacePriv.h"
-#include "GrTexture.h"
-#include "GrTextureContext.h"
-#include "GrTexturePriv.h"
-#include "GrTextureProxyPriv.h"
-#include "gl/GLTestContext.h"
-#include "gl/GrGLGpu.h"
-#include "gl/GrGLUtil.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrSurfacePriv.h"
+#include "src/gpu/GrTextureContext.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/GrTextureProxyPriv.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLUtil.h"
+#include "tests/Test.h"
+#include "tests/TestUtils.h"
+#include "tools/gpu/GrContextFactory.h"
+#include "tools/gpu/gl/GLTestContext.h"
 
 using sk_gpu_test::GLTestContext;
 
diff --git a/tests/EmptyPathTest.cpp b/tests/EmptyPathTest.cpp
index 78f1816..8212fc4 100644
--- a/tests/EmptyPathTest.cpp
+++ b/tests/EmptyPathTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "tests/Test.h"
 
 #define DIMENSION   32
 
diff --git a/tests/EncodeTest.cpp b/tests/EncodeTest.cpp
index 367dc35..9465742 100644
--- a/tests/EncodeTest.cpp
+++ b/tests/EncodeTest.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "Test.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
 
-#include "SkBitmap.h"
-#include "SkColorPriv.h"
-#include "SkEncodedImageFormat.h"
-#include "SkImage.h"
-#include "SkJpegEncoder.h"
-#include "SkPngEncoder.h"
-#include "SkStream.h"
-#include "SkWebpEncoder.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkEncodedImageFormat.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkStream.h"
+#include "include/encode/SkJpegEncoder.h"
+#include "include/encode/SkPngEncoder.h"
+#include "include/encode/SkWebpEncoder.h"
 
 #include "png.h"
 
diff --git a/tests/EncodedInfoTest.cpp b/tests/EncodedInfoTest.cpp
index 3babbd0..16535ed 100644
--- a/tests/EncodedInfoTest.cpp
+++ b/tests/EncodedInfoTest.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "Test.h"
-#include "ToolUtils.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
-#include "SkBitmap.h"
-#include "SkCodec.h"
-#include "SkData.h"
-#include "SkEncodedImageFormat.h"
-#include "SkImageInfo.h"
-#include "SkImageEncoder.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkData.h"
+#include "include/core/SkEncodedImageFormat.h"
+#include "include/core/SkImageEncoder.h"
+#include "include/core/SkImageInfo.h"
 
 DEF_TEST(AlphaEncodedInfo, r) {
     auto codec = SkCodec::MakeFromStream(GetResourceAsStream("images/grayscale.jpg"));
diff --git a/tests/ExifTest.cpp b/tests/ExifTest.cpp
index 16f62bb..ff83f1a 100644
--- a/tests/ExifTest.cpp
+++ b/tests/ExifTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkCodec.h"
-#include "Test.h"
+#include "include/codec/SkCodec.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
 
 DEF_TEST(ExifOrientation, r) {
     std::unique_ptr<SkStream> stream(GetResourceAsStream("images/exif-orientation-2-ur.jpg"));
diff --git a/tests/F16StagesTest.cpp b/tests/F16StagesTest.cpp
index 46e3fba..b9cb5a1 100644
--- a/tests/F16StagesTest.cpp
+++ b/tests/F16StagesTest.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkRasterPipeline.h"
-#include "Test.h"
+#include "src/core/SkRasterPipeline.h"
+#include "tests/Test.h"
 
 DEF_TEST(F16Stages, r) {
     // Make sure SkRasterPipeline::load_f16 and store_f16 can handle a range of
diff --git a/tests/FakeStreams.h b/tests/FakeStreams.h
index 6b510b8..a5577e9 100644
--- a/tests/FakeStreams.h
+++ b/tests/FakeStreams.h
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkData.h"
-#include "SkStream.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
 
 #ifndef FakeStreams_DEFINED
 #define FakeStreams_DEFINED
diff --git a/tests/FillPathTest.cpp b/tests/FillPathTest.cpp
index 01489d7..b5149e9 100644
--- a/tests/FillPathTest.cpp
+++ b/tests/FillPathTest.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkBlitter.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkScan.h"
-#include "Test.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "src/core/SkBlitter.h"
+#include "src/core/SkScan.h"
+#include "tests/Test.h"
 
 struct FakeBlitter : public SkBlitter {
     FakeBlitter()
diff --git a/tests/FitsInTest.cpp b/tests/FitsInTest.cpp
index 1802477..42a0bad 100644
--- a/tests/FitsInTest.cpp
+++ b/tests/FitsInTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkTFitsIn.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTFitsIn.h"
+#include "tests/Test.h"
 
 #include <limits>
 
diff --git a/tests/FlattenDrawableTest.cpp b/tests/FlattenDrawableTest.cpp
index 84f3164..e1074e0 100644
--- a/tests/FlattenDrawableTest.cpp
+++ b/tests/FlattenDrawableTest.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkDrawable.h"
-#include "SkFont.h"
-#include "SkPictureRecorder.h"
-#include "SkReadBuffer.h"
-#include "SkRect.h"
-#include "SkStream.h"
-#include "SkWriteBuffer.h"
-#include "Test.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkDrawable.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkStream.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "tests/Test.h"
 
 class IntDrawable : public SkDrawable {
 public:
diff --git a/tests/FlattenableFactoryToName.cpp b/tests/FlattenableFactoryToName.cpp
index fc47dfc..aa44e4c 100644
--- a/tests/FlattenableFactoryToName.cpp
+++ b/tests/FlattenableFactoryToName.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkAlphaThresholdFilter.h"
-#include "SkImage.h"
-#include "SkRegion.h"
-#include "Test.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkRegion.h"
+#include "include/effects/SkAlphaThresholdFilter.h"
+#include "tests/Test.h"
 
 static void test_flattenable(skiatest::Reporter* r,
                              const SkFlattenable* f,
diff --git a/tests/FlattenableNameToFactory.cpp b/tests/FlattenableNameToFactory.cpp
index d082504..1524b79 100644
--- a/tests/FlattenableNameToFactory.cpp
+++ b/tests/FlattenableNameToFactory.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkFlattenable.h"
-#include "Test.h"
+#include "include/core/SkFlattenable.h"
+#include "tests/Test.h"
 
 DEF_TEST(FlattenableNameToFactory, r) {
     if (!SkFlattenable::NameToFactory("SkImageShader")) {
diff --git a/tests/Float16Test.cpp b/tests/Float16Test.cpp
index 8524290..c223c7c 100644
--- a/tests/Float16Test.cpp
+++ b/tests/Float16Test.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkAutoPixmapStorage.h"
-#include "SkColor.h"
-#include "SkHalf.h"
-#include "SkOpts.h"
-#include "SkPixmap.h"
-#include "SkRandom.h"
-#include "SkTo.h"
-#include "Test.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPixmap.h"
+#include "include/private/SkHalf.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkAutoPixmapStorage.h"
+#include "src/core/SkOpts.h"
+#include "tests/Test.h"
 
 #include <cmath>
 
diff --git a/tests/FloatingPointTextureTest.cpp b/tests/FloatingPointTextureTest.cpp
index afb2a66..9a09e0e 100644
--- a/tests/FloatingPointTextureTest.cpp
+++ b/tests/FloatingPointTextureTest.cpp
@@ -12,14 +12,14 @@
  * have been selected to require 32 bits of precision and full IEEE conformance
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrProxyProvider.h"
-#include "GrTextureProxy.h"
-#include "ProxyUtils.h"
-#include "SkHalf.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "include/private/SkHalf.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "tools/gpu/ProxyUtils.h"
 
 #include <float.h>
 
diff --git a/tests/FontHostStreamTest.cpp b/tests/FontHostStreamTest.cpp
index 8fb699b..a03fcce 100644
--- a/tests/FontHostStreamTest.cpp
+++ b/tests/FontHostStreamTest.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkFont.h"
-#include "SkFontDescriptor.h"
-#include "SkFontPriv.h"
-#include "SkGraphics.h"
-#include "SkPaint.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkStream.h"
-#include "SkTypeface.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
+#include "include/core/SkTypes.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/core/SkFontPriv.h"
+#include "tests/Test.h"
 
 static const SkColor bgColor = SK_ColorWHITE;
 
diff --git a/tests/FontHostTest.cpp b/tests/FontHostTest.cpp
index 0b70ac6..eb4c48a 100644
--- a/tests/FontHostTest.cpp
+++ b/tests/FontHostTest.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkAutoMalloc.h"
-#include "SkEndian.h"
-#include "SkFont.h"
-#include "SkFontStream.h"
-#include "SkOSFile.h"
-#include "SkPaint.h"
-#include "SkStream.h"
-#include "SkTypeface.h"
-#include "Test.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkEndian.h"
+#include "src/core/SkFontStream.h"
+#include "src/core/SkOSFile.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
 
 //#define DUMP_TABLES
 //#define DUMP_TTC_TABLES
diff --git a/tests/FontMgrAndroidParserTest.cpp b/tests/FontMgrAndroidParserTest.cpp
index 6adcfe6..2a41b60 100644
--- a/tests/FontMgrAndroidParserTest.cpp
+++ b/tests/FontMgrAndroidParserTest.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "CommandLineFlags.h"
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkFixed.h"
-#include "SkFont.h"
-#include "SkFontMgr_android.h"
-#include "SkFontMgr_android_parser.h"
-#include "SkOSFile.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkTypeface.h"
+#include "include/ports/SkFontMgr_android.h"
+#include "include/private/SkFixed.h"
+#include "src/core/SkOSFile.h"
+#include "src/ports/SkFontMgr_android_parser.h"
+#include "tools/Resources.h"
+#include "tools/flags/CommandLineFlags.h"
 
 #include <cmath>
 #include <cstdio>
diff --git a/tests/FontMgrFontConfigTest.cpp b/tests/FontMgrFontConfigTest.cpp
index 5cb396a..7fb60e5 100644
--- a/tests/FontMgrFontConfigTest.cpp
+++ b/tests/FontMgrFontConfigTest.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkFontMgr.h"
-#include "SkFontMgr_fontconfig.h"
-#include "SkTypeface.h"
-#include "Test.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkTypeface.h"
+#include "include/ports/SkFontMgr_fontconfig.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
 
 #include <fontconfig/fontconfig.h>
 
diff --git a/tests/FontMgrTest.cpp b/tests/FontMgrTest.cpp
index 9eb8d74..7f956ea 100644
--- a/tests/FontMgrTest.cpp
+++ b/tests/FontMgrTest.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "CommandLineFlags.h"
-#include "SkAdvancedTypefaceMetrics.h"
-#include "SkFont.h"
-#include "SkFontMgr.h"
-#include "SkPaint.h"
-#include "SkStream.h"
-#include "SkTypeface.h"
-#include "Test.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
+#include "src/core/SkAdvancedTypefaceMetrics.h"
+#include "tests/Test.h"
+#include "tools/flags/CommandLineFlags.h"
 
 #include <initializer_list>
 #include <limits>
diff --git a/tests/FontNamesTest.cpp b/tests/FontNamesTest.cpp
index de6bcc9..101d98e 100644
--- a/tests/FontNamesTest.cpp
+++ b/tests/FontNamesTest.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "CommandLineFlags.h"
-#include "SkFontMgr.h"
-#include "SkOTTable_name.h"
-#include "SkTypeface.h"
-#include "Test.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkTypeface.h"
+#include "src/sfnt/SkOTTable_name.h"
+#include "tests/Test.h"
+#include "tools/flags/CommandLineFlags.h"
 
 #include <stddef.h>
 
diff --git a/tests/FrontBufferedStreamTest.cpp b/tests/FrontBufferedStreamTest.cpp
index 5452730..e3f4352 100644
--- a/tests/FrontBufferedStreamTest.cpp
+++ b/tests/FrontBufferedStreamTest.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkAutoMalloc.h"
-#include "SkBitmap.h"
-#include "SkCodec.h"
-#include "SkFrontBufferedStream.h"
-#include "SkRefCnt.h"
-#include "SkStream.h"
-#include "Test.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkStream.h"
+#include "include/utils/SkFrontBufferedStream.h"
+#include "src/core/SkAutoMalloc.h"
+#include "tests/Test.h"
 
 static void test_read(skiatest::Reporter* reporter, SkStream* bufferedStream,
                       const void* expectations, size_t bytesToRead) {
diff --git a/tests/GLProgramsTest.cpp b/tests/GLProgramsTest.cpp
index 4b230a8..7af9593 100644
--- a/tests/GLProgramsTest.cpp
+++ b/tests/GLProgramsTest.cpp
@@ -7,32 +7,32 @@
 
 // This is a GPU-backend specific test. It relies on static intializers to work
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if SK_ALLOW_STATIC_GLOBAL_INITIALIZERS
 
-#include "GrAutoLocaleSetter.h"
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "GrDrawOpTest.h"
-#include "GrDrawingManager.h"
-#include "GrPipeline.h"
-#include "GrRenderTargetContextPriv.h"
-#include "GrXferProcessor.h"
-#include "SkChecksum.h"
-#include "SkRandom.h"
-#include "Test.h"
+#include "include/private/SkChecksum.h"
+#include "include/utils/SkRandom.h"
+#include "src/gpu/GrAutoLocaleSetter.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrDrawOpTest.h"
+#include "src/gpu/GrDrawingManager.h"
+#include "src/gpu/GrPipeline.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/GrXferProcessor.h"
+#include "tests/Test.h"
+#include "tools/gpu/GrContextFactory.h"
 
-#include "ops/GrDrawOp.h"
+#include "src/gpu/ops/GrDrawOp.h"
 
-#include "effects/generated/GrConfigConversionEffect.h"
-#include "effects/GrPorterDuffXferProcessor.h"
-#include "effects/GrXfermodeFragmentProcessor.h"
+#include "src/gpu/effects/GrPorterDuffXferProcessor.h"
+#include "src/gpu/effects/GrXfermodeFragmentProcessor.h"
+#include "src/gpu/effects/generated/GrConfigConversionEffect.h"
 
-#include "gl/GrGLGpu.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLProgramBuilder.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
 
 /*
  * A dummy processor which just tries to insert a massive key and verify that it can retrieve the
diff --git a/tests/GeometryTest.cpp b/tests/GeometryTest.cpp
index 4b15e5f..2f09c24 100644
--- a/tests/GeometryTest.cpp
+++ b/tests/GeometryTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkGeometry.h"
-#include "SkPointPriv.h"
-#include "SkRandom.h"
-#include "Test.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkPointPriv.h"
+#include "tests/Test.h"
 
 #include <array>
 #include <numeric>
diff --git a/tests/GifTest.cpp b/tests/GifTest.cpp
index af2d303..a3eb0ea 100644
--- a/tests/GifTest.cpp
+++ b/tests/GifTest.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "CodecPriv.h"
-#include "Resources.h"
-#include "SkAndroidCodec.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkData.h"
-#include "SkImage.h"
-#include "SkStream.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/codec/SkAndroidCodec.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypes.h"
+#include "tests/CodecPriv.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
 
 static unsigned char gGIFData[] = {
   0x47, 0x49, 0x46, 0x38, 0x37, 0x61, 0x03, 0x00, 0x03, 0x00, 0xe3, 0x08,
diff --git a/tests/GlyphRunTest.cpp b/tests/GlyphRunTest.cpp
index 0405647..66e4725 100644
--- a/tests/GlyphRunTest.cpp
+++ b/tests/GlyphRunTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkGlyphRun.h"
+#include "src/core/SkGlyphRun.h"
 
-#include "SkTextBlob.h"
-#include "Test.h"
+#include "include/core/SkTextBlob.h"
+#include "tests/Test.h"
 
 #include <algorithm>
 #include <memory>
diff --git a/tests/GpuDrawPathTest.cpp b/tests/GpuDrawPathTest.cpp
index 39e332f..8213b64 100644
--- a/tests/GpuDrawPathTest.cpp
+++ b/tests/GpuDrawPathTest.cpp
@@ -5,21 +5,21 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrContext.h"
-#include "GrPath.h"
-#include "GrShape.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkDashPathEffect.h"
-#include "SkRRect.h"
-#include "SkRect.h"
-#include "SkSurface.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrPath.h"
+#include "src/gpu/GrShape.h"
+#include "tests/Test.h"
 
 #include <initializer_list>
 
diff --git a/tests/GpuLayerCacheTest.cpp b/tests/GpuLayerCacheTest.cpp
index b22809c..6fee532 100644
--- a/tests/GpuLayerCacheTest.cpp
+++ b/tests/GpuLayerCacheTest.cpp
@@ -9,11 +9,11 @@
 // The test fails when we add a discard to a newly created render target.
 #if 0
 
-#include "GrContext.h"
+#include "include/gpu/GrContext.h"
 #include "GrLayerCache.h"
-#include "GrResourceCache.h"
-#include "SkPictureRecorder.h"
-#include "Test.h"
+#include "include/core/SkPictureRecorder.h"
+#include "src/gpu/GrResourceCache.h"
+#include "tests/Test.h"
 
 class TestingAccess {
 public:
diff --git a/tests/GpuRectanizerTest.cpp b/tests/GpuRectanizerTest.cpp
index 0035346..48c49a5 100644
--- a/tests/GpuRectanizerTest.cpp
+++ b/tests/GpuRectanizerTest.cpp
@@ -5,12 +5,12 @@
 * found in the LICENSE file.
 */
 
-#include "GrRectanizer_pow2.h"
-#include "GrRectanizer_skyline.h"
-#include "SkRandom.h"
-#include "SkSize.h"
-#include "SkTDArray.h"
-#include "Test.h"
+#include "include/core/SkSize.h"
+#include "include/private/SkTDArray.h"
+#include "include/utils/SkRandom.h"
+#include "src/gpu/GrRectanizer_pow2.h"
+#include "src/gpu/GrRectanizer_skyline.h"
+#include "tests/Test.h"
 
 static const int kWidth = 1024;
 static const int kHeight = 1024;
diff --git a/tests/GrAHardwareBufferTest.cpp b/tests/GrAHardwareBufferTest.cpp
index 8fed798..f95f853 100644
--- a/tests/GrAHardwareBufferTest.cpp
+++ b/tests/GrAHardwareBufferTest.cpp
@@ -7,18 +7,18 @@
 
 // This is a GPU-backend specific test. It relies on static intializers to work
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if SK_SUPPORT_GPU && defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 26
 
-#include "GrAHardwareBufferImageGenerator.h"
-#include "GrContext.h"
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "SkImage.h"
-#include "SkSurface.h"
-#include "Test.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrAHardwareBufferImageGenerator.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "tests/Test.h"
+#include "tools/gpu/GrContextFactory.h"
 
 #include <android/hardware_buffer.h>
 #include <cinttypes>
diff --git a/tests/GrAllocatorTest.cpp b/tests/GrAllocatorTest.cpp
index 7c1c1fa..68b2c428 100644
--- a/tests/GrAllocatorTest.cpp
+++ b/tests/GrAllocatorTest.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
-#include "GrAllocator.h"
+#include "src/gpu/GrAllocator.h"
+#include "tests/Test.h"
 
 namespace {
 struct C {
diff --git a/tests/GrCCPRTest.cpp b/tests/GrCCPRTest.cpp
index 7cd8f10..5858724 100644
--- a/tests/GrCCPRTest.cpp
+++ b/tests/GrCCPRTest.cpp
@@ -5,28 +5,28 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkTypes.h"
+#include "tests/Test.h"
 
-#include "GrClip.h"
-#include "GrContextPriv.h"
-#include "GrDrawingManager.h"
-#include "GrPaint.h"
-#include "GrPathRenderer.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "GrShape.h"
-#include "GrTexture.h"
-#include "SkExchange.h"
-#include "SkMatrix.h"
-#include "SkPathPriv.h"
-#include "SkRect.h"
-#include "ToolUtils.h"
-#include "ccpr/GrCCPathCache.h"
-#include "ccpr/GrCoverageCountingPathRenderer.h"
-#include "mock/GrMockTypes.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkRect.h"
+#include "include/gpu/GrTexture.h"
+#include "include/gpu/mock/GrMockTypes.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/core/SkExchange.h"
+#include "src/core/SkPathPriv.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrDrawingManager.h"
+#include "src/gpu/GrPaint.h"
+#include "src/gpu/GrPathRenderer.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/ccpr/GrCCPathCache.h"
+#include "src/gpu/ccpr/GrCoverageCountingPathRenderer.h"
+#include "tools/ToolUtils.h"
 
 #include <cmath>
 
diff --git a/tests/GrContextAbandonTest.cpp b/tests/GrContextAbandonTest.cpp
index dcd18e2f..0300caa 100644
--- a/tests/GrContextAbandonTest.cpp
+++ b/tests/GrContextAbandonTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrContextFactory.h"
-#include "Test.h"
+#include "tests/Test.h"
+#include "tools/gpu/GrContextFactory.h"
 
 using namespace sk_gpu_test;
 
diff --git a/tests/GrContextFactoryTest.cpp b/tests/GrContextFactoryTest.cpp
index f061009..6d413a8 100644
--- a/tests/GrContextFactoryTest.cpp
+++ b/tests/GrContextFactoryTest.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "GrCaps.h"
-#include "SkExecutor.h"
-#include "Test.h"
+#include "include/core/SkExecutor.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "tests/Test.h"
+#include "tools/gpu/GrContextFactory.h"
 
 using namespace sk_gpu_test;
 
diff --git a/tests/GrFinishedFlushTest.cpp b/tests/GrFinishedFlushTest.cpp
index 2584113..f676b06 100644
--- a/tests/GrFinishedFlushTest.cpp
+++ b/tests/GrFinishedFlushTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "SkSurface.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
 
 using namespace sk_gpu_test;
 
diff --git a/tests/GrGLExtensionsTest.cpp b/tests/GrGLExtensionsTest.cpp
index ca59ede..480e624 100644
--- a/tests/GrGLExtensionsTest.cpp
+++ b/tests/GrGLExtensionsTest.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "gl/GrGLDefines.h"
-#include "gl/GrGLExtensions.h"
-#include "Test.h"
+#include "include/gpu/gl/GrGLExtensions.h"
+#include "src/gpu/gl/GrGLDefines.h"
+#include "tests/Test.h"
 
 const GrGLubyte* simpleGetString(GrGLenum name) {
     return (const GrGLubyte*)(name == GR_GL_VERSION ? "3.0" : "");
diff --git a/tests/GrMemoryPoolTest.cpp b/tests/GrMemoryPoolTest.cpp
index 38d68c1..3eb10ce 100644
--- a/tests/GrMemoryPoolTest.cpp
+++ b/tests/GrMemoryPoolTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
-#include "GrMemoryPool.h"
-#include "SkRandom.h"
-#include "SkTArray.h"
-#include "SkTDArray.h"
-#include "SkTemplates.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTDArray.h"
+#include "include/private/SkTemplates.h"
+#include "include/utils/SkRandom.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "tests/Test.h"
 
 // A is the top of an inheritance tree of classes that overload op new and
 // and delete to use a GrMemoryPool. The objects have values of different types
diff --git a/tests/GrMeshTest.cpp b/tests/GrMeshTest.cpp
index ae8251f..2930867 100644
--- a/tests/GrMeshTest.cpp
+++ b/tests/GrMeshTest.cpp
@@ -5,28 +5,28 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkTypes.h"
+#include "tests/Test.h"
 
 #include <array>
 #include <vector>
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGeometryProcessor.h"
-#include "GrGpuCommandBuffer.h"
-#include "GrMemoryPool.h"
-#include "GrOpFlushState.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "GrResourceKey.h"
-#include "GrResourceProvider.h"
-#include "SkBitmap.h"
-#include "SkMakeUnique.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLVarying.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
+#include "include/core/SkBitmap.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrResourceKey.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 GR_DECLARE_STATIC_UNIQUE_KEY(gIndexBufferKey);
 
diff --git a/tests/GrMipMappedTest.cpp b/tests/GrMipMappedTest.cpp
index 7e26a44..592d399 100644
--- a/tests/GrMipMappedTest.cpp
+++ b/tests/GrMipMappedTest.cpp
@@ -5,25 +5,25 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrBackendSurface.h"
-#include "GrBackendTextureImageGenerator.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrRenderTargetContext.h"
-#include "GrSemaphore.h"
-#include "GrSurfaceProxyPriv.h"
-#include "GrTexturePriv.h"
-#include "GrTextureProxy.h"
-#include "SkCanvas.h"
-#include "SkImage_Base.h"
-#include "SkGpuDevice.h"
-#include "SkPoint.h"
-#include "SkSurface.h"
-#include "SkSurface_Gpu.h"
-#include "Test.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrBackendTextureImageGenerator.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSemaphore.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/SkGpuDevice.h"
+#include "src/image/SkImage_Base.h"
+#include "src/image/SkSurface_Gpu.h"
+#include "tests/Test.h"
 
 static constexpr int kSize = 8;
 
diff --git a/tests/GrOpListFlushTest.cpp b/tests/GrOpListFlushTest.cpp
index f53a7e6..b413317 100644
--- a/tests/GrOpListFlushTest.cpp
+++ b/tests/GrOpListFlushTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "SkCanvas.h"
-#include "SkSurface.h"
-#include "Test.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "tests/Test.h"
 
 static bool check_read(skiatest::Reporter* reporter, const SkBitmap& bitmap) {
     bool result = true;
diff --git a/tests/GrPipelineDynamicStateTest.cpp b/tests/GrPipelineDynamicStateTest.cpp
index a44990a..e01d98c 100644
--- a/tests/GrPipelineDynamicStateTest.cpp
+++ b/tests/GrPipelineDynamicStateTest.cpp
@@ -5,26 +5,26 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkTypes.h"
+#include "tests/Test.h"
 
-#include "GrColor.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGeometryProcessor.h"
-#include "GrGpuCommandBuffer.h"
-#include "GrMemoryPool.h"
-#include "GrOpFlushState.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "GrResourceProvider.h"
-#include "SkMakeUnique.h"
-#include "glsl/GrGLSLVertexGeoBuilder.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLVarying.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrColor.h"
+#include "include/private/GrRecordingContext.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrGpuCommandBuffer.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/glsl/GrGLSLVertexGeoBuilder.h"
 
 /**
  * This is a GPU-backend specific test for dynamic pipeline state. It draws boxes using dynamic
diff --git a/tests/GrPorterDuffTest.cpp b/tests/GrPorterDuffTest.cpp
index d386090..372d864 100644
--- a/tests/GrPorterDuffTest.cpp
+++ b/tests/GrPorterDuffTest.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "GrBackendSurface.h"
-#include "GrContextFactory.h"
-#include "GrContextOptions.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrProxyProvider.h"
-#include "GrXferProcessor.h"
-#include "effects/GrPorterDuffXferProcessor.h"
-#include "gl/GrGLCaps.h"
-#include "ops/GrMeshDrawOp.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContextOptions.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrXferProcessor.h"
+#include "src/gpu/effects/GrPorterDuffXferProcessor.h"
+#include "src/gpu/gl/GrGLCaps.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
+#include "tools/gpu/GrContextFactory.h"
 
 ////////////////////////////////////////////////////////////////////////////////
 
diff --git a/tests/GrQuadListTest.cpp b/tests/GrQuadListTest.cpp
index fbbfab7..a9cd9b3 100644
--- a/tests/GrQuadListTest.cpp
+++ b/tests/GrQuadListTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "GrQuad.h"
+#include "src/gpu/GrQuad.h"
 
 #define ASSERT(cond) REPORTER_ASSERT(r, cond)
 #define ASSERTF(cond, ...) REPORTER_ASSERT(r, cond, __VA_ARGS__)
diff --git a/tests/GrShapeTest.cpp b/tests/GrShapeTest.cpp
index 95fd74e..047ec94 100644
--- a/tests/GrShapeTest.cpp
+++ b/tests/GrShapeTest.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
-#include "GrShape.h"
-#include "SkCanvas.h"
-#include "SkDashPathEffect.h"
-#include "SkPath.h"
-#include "SkPathOps.h"
-#include "SkRectPriv.h"
-#include "SkSurface.h"
-#include "SkClipOpPriv.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "include/pathops/SkPathOps.h"
+#include "src/core/SkClipOpPriv.h"
+#include "src/core/SkRectPriv.h"
+#include "src/gpu/GrShape.h"
+#include "tests/Test.h"
 
 #include <initializer_list>
 #include <functional>
diff --git a/tests/GrSurfaceTest.cpp b/tests/GrSurfaceTest.cpp
index d85b6f1..ffacc95 100644
--- a/tests/GrSurfaceTest.cpp
+++ b/tests/GrSurfaceTest.cpp
@@ -6,19 +6,19 @@
  */
 
 #include <set>
-#include "GrClip.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrProxyProvider.h"
-#include "GrRenderTarget.h"
-#include "GrResourceProvider.h"
-#include "GrTexture.h"
-#include "GrTexturePriv.h"
-#include "SkAutoPixmapStorage.h"
-#include "SkMipMap.h"
-#include "SkSurface.h"
-#include "Test.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "include/gpu/GrTexture.h"
+#include "src/core/SkAutoPixmapStorage.h"
+#include "src/core/SkMipMap.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "tests/Test.h"
 
 // Tests that GrSurface::asTexture(), GrSurface::asRenderTarget(), and static upcasting of texture
 // and render targets to GrSurface all work as expected.
@@ -152,9 +152,9 @@
     }
 }
 
-#include "GrDrawingManager.h"
-#include "GrSurfaceProxy.h"
-#include "GrTextureContext.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "src/gpu/GrDrawingManager.h"
+#include "src/gpu/GrTextureContext.h"
 
 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(InitialTextureClear, reporter, context_info) {
     static constexpr int kSize = 100;
diff --git a/tests/GrTRecorderTest.cpp b/tests/GrTRecorderTest.cpp
index fcdd4b6..b62954c 100644
--- a/tests/GrTRecorderTest.cpp
+++ b/tests/GrTRecorderTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkMatrix.h"
-#include "SkRandom.h"
-#include "SkString.h"
-#include "Test.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkRandom.h"
+#include "tests/Test.h"
 
-#include "GrTRecorder.h"
+#include "src/gpu/GrTRecorder.h"
 
 ////////////////////////////////////////////////////////////////////////////////
 
diff --git a/tests/GrTestingBackendTextureUploadTest.cpp b/tests/GrTestingBackendTextureUploadTest.cpp
index e42c1c62..0d4f205 100644
--- a/tests/GrTestingBackendTextureUploadTest.cpp
+++ b/tests/GrTestingBackendTextureUploadTest.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrGpu.h"
-#include "GrContextPriv.h"
-#include "GrTexture.h"
-#include "SkConvertPixels.h"
-#include "Test.h"
-#include "TestUtils.h"
+#include "include/gpu/GrTexture.h"
+#include "src/core/SkConvertPixels.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "tests/Test.h"
+#include "tests/TestUtils.h"
 
 void testing_only_texture_test(skiatest::Reporter* reporter, GrContext* context, GrColorType ct,
                                bool renderTarget, bool doDataUpload, GrMipMapped mipMapped) {
diff --git a/tests/GrTextureMipMapInvalidationTest.cpp b/tests/GrTextureMipMapInvalidationTest.cpp
index d651e35..fb57060 100644
--- a/tests/GrTextureMipMapInvalidationTest.cpp
+++ b/tests/GrTextureMipMapInvalidationTest.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrTexturePriv.h"
-#include "SkCanvas.h"
-#include "SkImage_Base.h"
-#include "SkSurface.h"
-#include "Test.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/image/SkImage_Base.h"
+#include "tests/Test.h"
 
 // Tests that MIP maps are created and invalidated as expected when drawing to and from GrTextures.
 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrTextureMipMapInvalidationTest, reporter, ctxInfo) {
diff --git a/tests/GrUploadPixelsTests.cpp b/tests/GrUploadPixelsTests.cpp
index cd0bac0..8daeeea 100644
--- a/tests/GrUploadPixelsTests.cpp
+++ b/tests/GrUploadPixelsTests.cpp
@@ -7,15 +7,15 @@
 
 // This is a GPU-backend specific test. It relies on static intializers to work
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "GrSurfaceProxy.h"
-#include "ProxyUtils.h"
-#include "SkGr.h"
-#include "Test.h"
-#include "TestUtils.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/SkGr.h"
+#include "tests/Test.h"
+#include "tests/TestUtils.h"
+#include "tools/gpu/GrContextFactory.h"
+#include "tools/gpu/ProxyUtils.h"
 
 using sk_gpu_test::GrContextFactory;
 
diff --git a/tests/GradientTest.cpp b/tests/GradientTest.cpp
index 3bd11b1..7d2b5e5 100644
--- a/tests/GradientTest.cpp
+++ b/tests/GradientTest.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkColorPriv.h"
-#include "SkColorShader.h"
-#include "SkGradientShader.h"
-#include "SkShader.h"
-#include "SkSurface.h"
-#include "SkTemplates.h"
-#include "SkTLazy.h"
-#include "Test.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkTLazy.h"
+#include "src/shaders/SkColorShader.h"
+#include "tests/Test.h"
 
 // https://code.google.com/p/chromium/issues/detail?id=448299
 // Giant (inverse) matrix causes overflow when converting/computing using 32.32
diff --git a/tests/HSVRoundTripTest.cpp b/tests/HSVRoundTripTest.cpp
index ab4d400..ceae56a 100644
--- a/tests/HSVRoundTripTest.cpp
+++ b/tests/HSVRoundTripTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "SkColor.h"
+#include "include/core/SkColor.h"
 
 DEF_TEST(ColorToHSVRoundTrip, reporter) {
     SkScalar hsv[3];
diff --git a/tests/HashTest.cpp b/tests/HashTest.cpp
index f80bd79..b60025c 100644
--- a/tests/HashTest.cpp
+++ b/tests/HashTest.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkChecksum.h"
-#include "SkRefCnt.h"
-#include "SkString.h"
-#include "SkTHash.h"
-#include "Test.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkString.h"
+#include "include/private/SkChecksum.h"
+#include "include/private/SkTHash.h"
+#include "tests/Test.h"
 
 // Tests use of const foreach().  map.count() is of course the better way to do this.
 static int count(const SkTHashMap<int, double>& map) {
diff --git a/tests/HighContrastFilterTest.cpp b/tests/HighContrastFilterTest.cpp
index 7c3fc84..052811d 100644
--- a/tests/HighContrastFilterTest.cpp
+++ b/tests/HighContrastFilterTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkHighContrastFilter.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/effects/SkHighContrastFilter.h"
+#include "tests/Test.h"
 
 DEF_TEST(HighContrastFilter_FilterImage, reporter) {
     SkHighContrastConfig config;
diff --git a/tests/ICCTest.cpp b/tests/ICCTest.cpp
index 9b2cdbfe..5a52f65 100644
--- a/tests/ICCTest.cpp
+++ b/tests/ICCTest.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "Resources.h"
-#include "SkColorSpacePriv.h"
-#include "SkICC.h"
-#include "SkString.h"
-#include "Test.h"
+#include "include/core/SkICC.h"
+#include "include/core/SkString.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
 
 #include "skcms.h"
 
diff --git a/tests/ImageCacheTest.cpp b/tests/ImageCacheTest.cpp
index 457df91..39c2e16 100644
--- a/tests/ImageCacheTest.cpp
+++ b/tests/ImageCacheTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkDiscardableMemory.h"
-#include "SkResourceCache.h"
-#include "Test.h"
+#include "src/core/SkDiscardableMemory.h"
+#include "src/core/SkResourceCache.h"
+#include "tests/Test.h"
 
 namespace {
 static void* gGlobalAddress;
@@ -105,7 +105,7 @@
     }
 }
 
-#include "SkDiscardableMemoryPool.h"
+#include "src/lazy/SkDiscardableMemoryPool.h"
 
 static SkDiscardableMemoryPool* gPool;
 static SkDiscardableMemory* pool_factory(size_t bytes) {
diff --git a/tests/ImageFilterCacheTest.cpp b/tests/ImageFilterCacheTest.cpp
index a21538f..e4388d9 100644
--- a/tests/ImageFilterCacheTest.cpp
+++ b/tests/ImageFilterCacheTest.cpp
@@ -5,16 +5,16 @@
   * found in the LICENSE file.
   */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "SkBitmap.h"
-#include "SkColorFilter.h"
-#include "SkColorFilterImageFilter.h"
-#include "SkImage.h"
-#include "SkImageFilter.h"
-#include "SkImageFilterCache.h"
-#include "SkMatrix.h"
-#include "SkSpecialImage.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkMatrix.h"
+#include "include/effects/SkColorFilterImageFilter.h"
+#include "src/core/SkImageFilterCache.h"
+#include "src/core/SkSpecialImage.h"
 
 static const int kSmallerSize = 10;
 static const int kPad = 3;
@@ -191,13 +191,13 @@
     test_image_backed(reporter, nullptr, srcImage);
 }
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrProxyProvider.h"
-#include "GrResourceProvider.h"
-#include "GrSurfaceProxyPriv.h"
-#include "GrTexture.h"
-#include "GrTextureProxy.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
 
 static sk_sp<GrTextureProxy> create_proxy(GrProxyProvider* proxyProvider) {
     SkBitmap srcBM = create_bm();
diff --git a/tests/ImageFilterTest.cpp b/tests/ImageFilterTest.cpp
index b40f17e..95d07d6 100644
--- a/tests/ImageFilterTest.cpp
+++ b/tests/ImageFilterTest.cpp
@@ -5,45 +5,45 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkArithmeticImageFilter.h"
-#include "SkBitmap.h"
-#include "SkBlurImageFilter.h"
-#include "SkCanvas.h"
-#include "SkColorFilterImageFilter.h"
-#include "SkColorMatrixFilter.h"
-#include "SkComposeImageFilter.h"
-#include "SkDisplacementMapEffect.h"
-#include "SkDropShadowImageFilter.h"
-#include "SkGradientShader.h"
-#include "SkImage.h"
-#include "SkImageFilterPriv.h"
-#include "SkImageSource.h"
-#include "SkLightingImageFilter.h"
-#include "SkMatrixConvolutionImageFilter.h"
-#include "SkMergeImageFilter.h"
-#include "SkMorphologyImageFilter.h"
-#include "SkOffsetImageFilter.h"
-#include "SkPaintImageFilter.h"
-#include "SkPerlinNoiseShader.h"
-#include "SkPicture.h"
-#include "SkPictureImageFilter.h"
-#include "SkPictureRecorder.h"
-#include "SkPoint3.h"
-#include "SkReadBuffer.h"
-#include "SkRect.h"
-#include "SkSpecialImage.h"
-#include "SkSpecialSurface.h"
-#include "SkSurface.h"
-#include "SkTableColorFilter.h"
-#include "SkTileImageFilter.h"
-#include "SkXfermodeImageFilter.h"
-#include "Test.h"
-#include "ToolUtils.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkPoint3.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkArithmeticImageFilter.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkColorFilterImageFilter.h"
+#include "include/effects/SkColorMatrixFilter.h"
+#include "include/effects/SkComposeImageFilter.h"
+#include "include/effects/SkDisplacementMapEffect.h"
+#include "include/effects/SkDropShadowImageFilter.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/effects/SkImageSource.h"
+#include "include/effects/SkLightingImageFilter.h"
+#include "include/effects/SkMatrixConvolutionImageFilter.h"
+#include "include/effects/SkMergeImageFilter.h"
+#include "include/effects/SkMorphologyImageFilter.h"
+#include "include/effects/SkOffsetImageFilter.h"
+#include "include/effects/SkPaintImageFilter.h"
+#include "include/effects/SkPerlinNoiseShader.h"
+#include "include/effects/SkPictureImageFilter.h"
+#include "include/effects/SkTableColorFilter.h"
+#include "include/effects/SkTileImageFilter.h"
+#include "include/effects/SkXfermodeImageFilter.h"
+#include "src/core/SkImageFilterPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkSpecialSurface.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
 
 static const int kBitmapSize = 4;
 
diff --git a/tests/ImageFrom565Bitmap.cpp b/tests/ImageFrom565Bitmap.cpp
index 53f65df..037010e 100644
--- a/tests/ImageFrom565Bitmap.cpp
+++ b/tests/ImageFrom565Bitmap.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkImageInfo.h"
-#include "SkImage.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageInfo.h"
+#include "tests/Test.h"
 
 DEF_TEST(ImageFrom565Bitmap, r) {
     SkBitmap bm;
diff --git a/tests/ImageGeneratorTest.cpp b/tests/ImageGeneratorTest.cpp
index 790b422..c33ab96 100644
--- a/tests/ImageGeneratorTest.cpp
+++ b/tests/ImageGeneratorTest.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkData.h"
-#include "SkCanvas.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
 
-#include "SkGraphics.h"
-#include "SkImageGenerator.h"
-#include "SkImageInfoPriv.h"
-#include "SkYUVAIndex.h"
-#include "Test.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkImageGenerator.h"
+#include "include/core/SkYUVAIndex.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "tests/Test.h"
 
 #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS)
-    #include "SkImageGeneratorCG.h"
+    #include "include/ports/SkImageGeneratorCG.h"
 #elif defined(SK_BUILD_FOR_WIN)
-    #include "SkImageGeneratorWIC.h"
+    #include "include/ports/SkImageGeneratorWIC.h"
 #endif
 
 static bool gMyFactoryWasCalled;
@@ -96,8 +96,8 @@
     }
 }
 
-#include "SkAutoMalloc.h"
-#include "SkPictureRecorder.h"
+#include "include/core/SkPictureRecorder.h"
+#include "src/core/SkAutoMalloc.h"
 
 static sk_sp<SkPicture> make_picture() {
     SkPictureRecorder recorder;
diff --git a/tests/ImageIsOpaqueTest.cpp b/tests/ImageIsOpaqueTest.cpp
index 8a2c816..d7fced9 100644
--- a/tests/ImageIsOpaqueTest.cpp
+++ b/tests/ImageIsOpaqueTest.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
-#include "Resources.h"
-#include "Test.h"
+#include "include/core/SkTypes.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
 
-#include "GrContext.h"
-#include "SkCanvas.h"
-#include "SkImage.h"
-#include "SkSurface.h"
-#include "SkReadBuffer.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrContext.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 
 static void check_isopaque(skiatest::Reporter* reporter, const sk_sp<SkSurface>& surface,
                            bool expectedOpaque) {
@@ -45,7 +45,7 @@
 }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
-#include "SkPictureRecorder.h"
+#include "include/core/SkPictureRecorder.h"
 
 static sk_sp<SkPicture> make_picture() {
     SkPictureRecorder recorder;
diff --git a/tests/ImageNewShaderTest.cpp b/tests/ImageNewShaderTest.cpp
index d96a59f..6dae947 100644
--- a/tests/ImageNewShaderTest.cpp
+++ b/tests/ImageNewShaderTest.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkImage.h"
-#include "SkShader.h"
-#include "SkSurface.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTypes.h"
+#include "tests/Test.h"
 
-#include "GrContext.h"
+#include "include/gpu/GrContext.h"
 
 static void test_bitmap_equality(skiatest::Reporter* reporter, SkBitmap& bm1, SkBitmap& bm2) {
     REPORTER_ASSERT(reporter, bm1.computeByteSize() == bm2.computeByteSize());
diff --git a/tests/ImageTest.cpp b/tests/ImageTest.cpp
index f7fa7af..0bd5db1 100644
--- a/tests/ImageTest.cpp
+++ b/tests/ImageTest.cpp
@@ -9,34 +9,34 @@
 #include <initializer_list>
 #include <vector>
 
-#include "SkAutoPixmapStorage.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColorSpacePriv.h"
-#include "SkData.h"
-#include "SkImageEncoder.h"
-#include "SkImageGenerator.h"
-#include "SkImage_Base.h"
-#include "SkImagePriv.h"
-#include "SkMakeUnique.h"
-#include "SkPicture.h"
-#include "SkPictureRecorder.h"
-#include "SkRRect.h"
-#include "SkSerialProcs.h"
-#include "SkStream.h"
-#include "SkSurface.h"
-#include "SkUtils.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageEncoder.h"
+#include "include/core/SkImageGenerator.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkSerialProcs.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkSurface.h"
+#include "src/core/SkAutoPixmapStorage.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkImagePriv.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkUtils.h"
+#include "src/image/SkImage_Base.h"
+#include "tests/Test.h"
 
-#include "Resources.h"
-#include "ToolUtils.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
-#include "GrContextPriv.h"
-#include "GrContextThreadSafeProxy.h"
-#include "GrGpu.h"
-#include "GrResourceCache.h"
-#include "GrTexture.h"
-#include "SkGr.h"
+#include "include/gpu/GrContextThreadSafeProxy.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrResourceCache.h"
+#include "src/gpu/SkGr.h"
 
 using namespace sk_gpu_test;
 
@@ -324,7 +324,7 @@
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-#include "SkBitmapCache.h"
+#include "src/core/SkBitmapCache.h"
 
 /*
  *  This tests the caching (and preemptive purge) of the raster equivalent of a gpu-image.
diff --git a/tests/IncrTopoSortTest.cpp b/tests/IncrTopoSortTest.cpp
index a950785..93fedb7 100644
--- a/tests/IncrTopoSortTest.cpp
+++ b/tests/IncrTopoSortTest.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkRefCnt.h"
-#include "SkTSort.h"
-#include "Test.h"
+#include "include/core/SkRefCnt.h"
+#include "src/core/SkTSort.h"
+#include "tests/Test.h"
 
-#include "ToolUtils.h"
+#include "tools/ToolUtils.h"
 
 // A node in the graph. This corresponds to an opList in the MDB world.
 class Node : public SkRefCnt {
diff --git a/tests/IndexedPngOverflowTest.cpp b/tests/IndexedPngOverflowTest.cpp
index 1a48b64..45d21e3 100644
--- a/tests/IndexedPngOverflowTest.cpp
+++ b/tests/IndexedPngOverflowTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "CodecPriv.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkImageInfo.h"
-#include "SkSurface.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkSurface.h"
+#include "tests/CodecPriv.h"
+#include "tests/Test.h"
 
 // A 20x1 image with 8 bits per pixel and a palette size of 2. Pixel values are 255, 254... Run
 // this test with ASAN to make sure we don't try to access before/after any palette-sized buffers.
diff --git a/tests/InfRectTest.cpp b/tests/InfRectTest.cpp
index af00bc9..5a6ec22 100644
--- a/tests/InfRectTest.cpp
+++ b/tests/InfRectTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkFloatingPoint.h"
-#include "SkRandom.h"
-#include "SkRect.h"
-#include "Test.h"
+#include "include/core/SkRect.h"
+#include "include/private/SkFloatingPoint.h"
+#include "include/utils/SkRandom.h"
+#include "tests/Test.h"
 
 static void check_invalid(skiatest::Reporter* reporter,
                           SkScalar l, SkScalar t, SkScalar r, SkScalar b) {
diff --git a/tests/InsetConvexPolyTest.cpp b/tests/InsetConvexPolyTest.cpp
index aaaf591..fa25843 100644
--- a/tests/InsetConvexPolyTest.cpp
+++ b/tests/InsetConvexPolyTest.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Test.h"
-#include "SkPolyUtils.h"
+#include "src/utils/SkPolyUtils.h"
+#include "tests/Test.h"
 
 DEF_TEST(InsetConvexPoly, reporter) {
     SkTDArray<SkPoint> rrectPoly;
diff --git a/tests/InterpolatorTest.cpp b/tests/InterpolatorTest.cpp
index 8ba1bda..813d2bf 100644
--- a/tests/InterpolatorTest.cpp
+++ b/tests/InterpolatorTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkInterpolator.h"
+#include "include/utils/SkInterpolator.h"
 
-#include "Test.h"
+#include "tests/Test.h"
 
 static SkScalar* iset(SkScalar array[3], int a, int b, int c) {
     array[0] = SkIntToScalar(a);
diff --git a/tests/InvalidIndexedPngTest.cpp b/tests/InvalidIndexedPngTest.cpp
index 5d9632d..273648f 100644
--- a/tests/InvalidIndexedPngTest.cpp
+++ b/tests/InvalidIndexedPngTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "CodecPriv.h"
-#include "SkBitmap.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "tests/CodecPriv.h"
+#include "tests/Test.h"
 
 // A valid 1x1 indexed PNG.
 unsigned char gPngData[] = {
diff --git a/tests/IsClosedSingleContourTest.cpp b/tests/IsClosedSingleContourTest.cpp
index b550998..ad6a4a2 100644
--- a/tests/IsClosedSingleContourTest.cpp
+++ b/tests/IsClosedSingleContourTest.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Test.h"
-#include "SkPathPriv.h"
+#include "src/core/SkPathPriv.h"
+#include "tests/Test.h"
 
 DEF_TEST(IsClosedSingleContourTest, reporter) {
     SkPath p;
diff --git a/tests/JSONTest.cpp b/tests/JSONTest.cpp
index f5b71bb..fface4a 100644
--- a/tests/JSONTest.cpp
+++ b/tests/JSONTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "SkArenaAlloc.h"
-#include "SkJSON.h"
-#include "SkString.h"
-#include "SkStream.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/utils/SkJSON.h"
 
 using namespace skjson;
 
diff --git a/tests/LListTest.cpp b/tests/LListTest.cpp
index f11e325..9735aee 100644
--- a/tests/LListTest.cpp
+++ b/tests/LListTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkRandom.h"
-#include "SkTInternalLList.h"
-#include "SkTLList.h"
-#include "Test.h"
+#include "include/private/SkTInternalLList.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkTLList.h"
+#include "tests/Test.h"
 
 class ListElement {
 public:
diff --git a/tests/LRUCacheTest.cpp b/tests/LRUCacheTest.cpp
index 6a65e4a..5436fcd 100644
--- a/tests/LRUCacheTest.cpp
+++ b/tests/LRUCacheTest.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkLRUCache.h"
-#include "Test.h"
+#include "src/core/SkLRUCache.h"
+#include "tests/Test.h"
 
 struct Value {
     Value(int value, int* counter)
diff --git a/tests/LayerDrawLooperTest.cpp b/tests/LayerDrawLooperTest.cpp
index e0d082a..18a756f 100644
--- a/tests/LayerDrawLooperTest.cpp
+++ b/tests/LayerDrawLooperTest.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "SkArenaAlloc.h"
-#include "SkBitmap.h"
-#include "SkBitmapDevice.h"
-#include "SkCanvas.h"
-#include "SkDraw.h"
-#include "SkLayerDrawLooper.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/effects/SkLayerDrawLooper.h"
+#include "include/private/SkArenaAlloc.h"
+#include "src/core/SkBitmapDevice.h"
+#include "src/core/SkDraw.h"
+#include "tests/Test.h"
 
 static SkBitmap make_bm(int w, int h) {
     SkBitmap bm;
diff --git a/tests/LazyProxyTest.cpp b/tests/LazyProxyTest.cpp
index 3e52d4a..e3a935f 100644
--- a/tests/LazyProxyTest.cpp
+++ b/tests/LazyProxyTest.cpp
@@ -5,26 +5,26 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "GrClip.h"
-#include "GrContextPriv.h"
-#include "GrMemoryPool.h"
-#include "GrOnFlushResourceProvider.h"
-#include "GrProxyProvider.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "GrSurfaceProxy.h"
-#include "GrSurfaceProxyPriv.h"
-#include "GrTexture.h"
-#include "GrTextureProxy.h"
-#include "GrTextureProxyPriv.h"
-#include "SkExchange.h"
-#include "SkMakeUnique.h"
-#include "SkRectPriv.h"
-#include "mock/GrMockGpu.h"
-#include "mock/GrMockTypes.h"
+#include "include/gpu/GrTexture.h"
+#include "include/gpu/mock/GrMockTypes.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/core/SkExchange.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkRectPriv.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOnFlushResourceProvider.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
+#include "src/gpu/GrTextureProxyPriv.h"
+#include "src/gpu/mock/GrMockGpu.h"
 
 // This test verifies that lazy proxy callbacks get invoked during flush, after onFlush callbacks,
 // but before Ops are executed. It also ensures that lazy proxy callbacks are invoked both for
diff --git a/tests/MD5Test.cpp b/tests/MD5Test.cpp
index 9e08738..cf03d4f 100644
--- a/tests/MD5Test.cpp
+++ b/tests/MD5Test.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkMD5.h"
-#include "Test.h"
+#include "src/core/SkMD5.h"
+#include "tests/Test.h"
 
 static bool digests_equal(const SkMD5::Digest& expectedDigest, const SkMD5::Digest& computedDigest) {
     for (size_t i = 0; i < SK_ARRAY_COUNT(expectedDigest.data); ++i) {
diff --git a/tests/MallocPixelRefTest.cpp b/tests/MallocPixelRefTest.cpp
index ac08099..fb1badb 100644
--- a/tests/MallocPixelRefTest.cpp
+++ b/tests/MallocPixelRefTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkAutoMalloc.h"
-#include "SkData.h"
-#include "SkMallocPixelRef.h"
-#include "Test.h"
+#include "include/core/SkData.h"
+#include "include/core/SkMallocPixelRef.h"
+#include "src/core/SkAutoMalloc.h"
+#include "tests/Test.h"
 
 static void delete_uint8_proc(void* ptr, void*) {
     delete[] static_cast<uint8_t*>(ptr);
diff --git a/tests/MaskCacheTest.cpp b/tests/MaskCacheTest.cpp
index 34e3edf..6ed2ca4 100644
--- a/tests/MaskCacheTest.cpp
+++ b/tests/MaskCacheTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkCachedData.h"
-#include "SkMaskCache.h"
-#include "SkResourceCache.h"
-#include "Test.h"
+#include "src/core/SkCachedData.h"
+#include "src/core/SkMaskCache.h"
+#include "src/core/SkResourceCache.h"
+#include "tests/Test.h"
 
 enum LockedState {
     kUnlocked,
diff --git a/tests/MathTest.cpp b/tests/MathTest.cpp
index 89e25b0..26eff95 100644
--- a/tests/MathTest.cpp
+++ b/tests/MathTest.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorData.h"
-#include "SkEndian.h"
-#include "SkFDot6.h"
-#include "SkFixed.h"
-#include "SkHalf.h"
-#include "SkMathPriv.h"
-#include "SkPoint.h"
-#include "SkRandom.h"
-#include "SkTo.h"
-#include "Test.h"
+#include "include/core/SkPoint.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkFixed.h"
+#include "include/private/SkHalf.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkEndian.h"
+#include "src/core/SkFDot6.h"
+#include "src/core/SkMathPriv.h"
+#include "tests/Test.h"
 
 static void test_clz(skiatest::Reporter* reporter) {
     REPORTER_ASSERT(reporter, 32 == SkCLZ(0));
diff --git a/tests/Matrix44Test.cpp b/tests/Matrix44Test.cpp
index d0311f3..ceac97c 100644
--- a/tests/Matrix44Test.cpp
+++ b/tests/Matrix44Test.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkMatrix44.h"
-#include "SkPoint3.h"
-#include "Test.h"
+#include "include/core/SkMatrix44.h"
+#include "include/core/SkPoint3.h"
+#include "tests/Test.h"
 
 static bool nearly_equal_double(double a, double b) {
     const double tolerance = 1e-7;
diff --git a/tests/MatrixClipCollapseTest.cpp b/tests/MatrixClipCollapseTest.cpp
index 3d2db4e..c38ed56 100644
--- a/tests/MatrixClipCollapseTest.cpp
+++ b/tests/MatrixClipCollapseTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "DebugCanvas.h"
-#include "SkCanvas.h"
-#include "SkPicture.h"
-#include "SkPictureFlat.h"
-#include "SkPictureRecord.h"
-#include "Test.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPicture.h"
+#include "src/core/SkPictureFlat.h"
+#include "src/core/SkPictureRecord.h"
+#include "tests/Test.h"
+#include "tools/debugger/DebugCanvas.h"
 
 // This test exercises the Matrix/Clip State collapsing system. It generates
 // example skps and the compares the actual stored operations to the expected
diff --git a/tests/MatrixTest.cpp b/tests/MatrixTest.cpp
index 87b2623..9a996a9 100644
--- a/tests/MatrixTest.cpp
+++ b/tests/MatrixTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkMath.h"
-#include "SkMatrixPriv.h"
-#include "SkMatrixUtils.h"
-#include "SkPoint3.h"
-#include "SkRandom.h"
-#include "Test.h"
+#include "include/core/SkMath.h"
+#include "include/core/SkPoint3.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkMatrixPriv.h"
+#include "src/core/SkMatrixUtils.h"
+#include "tests/Test.h"
 
 static bool nearly_equal_scalar(SkScalar a, SkScalar b) {
     const SkScalar tolerance = SK_Scalar1 / 200000;
diff --git a/tests/MemoryTest.cpp b/tests/MemoryTest.cpp
index c7eff30..9e5d5d3 100644
--- a/tests/MemoryTest.cpp
+++ b/tests/MemoryTest.cpp
@@ -1,4 +1,4 @@
-#include "Test.h"
+#include "tests/Test.h"
 
 DEF_TEST(memory_calloc, reporter) {
     const size_t kNum = 200;
diff --git a/tests/MemsetTest.cpp b/tests/MemsetTest.cpp
index b68844c..2e4e028 100644
--- a/tests/MemsetTest.cpp
+++ b/tests/MemsetTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkRandom.h"
-#include "SkUtils.h"
-#include "Test.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkUtils.h"
+#include "tests/Test.h"
 
 static void set_zero(void* dst, size_t bytes) {
     char* ptr = (char*)dst;
diff --git a/tests/MessageBusTest.cpp b/tests/MessageBusTest.cpp
index d184149..1bc4dbb 100644
--- a/tests/MessageBusTest.cpp
+++ b/tests/MessageBusTest.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkMessageBus.h"
-#include "Test.h"
+#include "include/private/SkMessageBus.h"
+#include "tests/Test.h"
 
 namespace {
 
diff --git a/tests/MetaDataTest.cpp b/tests/MetaDataTest.cpp
index 2567398..7e9a774 100644
--- a/tests/MetaDataTest.cpp
+++ b/tests/MetaDataTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkMetaData.h"
-#include "Test.h"
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
+#include "src/utils/SkMetaData.h"
+#include "tests/Test.h"
 
 static void test_ptrs(skiatest::Reporter* reporter) {
     SkRefCnt ref;
diff --git a/tests/MipMapTest.cpp b/tests/MipMapTest.cpp
index f90704f..da241de 100644
--- a/tests/MipMapTest.cpp
+++ b/tests/MipMapTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkMipMap.h"
-#include "SkRandom.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkMipMap.h"
+#include "tests/Test.h"
 
 static void make_bitmap(SkBitmap* bm, int width, int height) {
     bm->allocN32Pixels(width, height);
diff --git a/tests/NonlinearBlendingTest.cpp b/tests/NonlinearBlendingTest.cpp
index fdd4b74..9c1d286 100644
--- a/tests/NonlinearBlendingTest.cpp
+++ b/tests/NonlinearBlendingTest.cpp
@@ -6,9 +6,9 @@
  */
 
 #include "skcms.h"
-#include "SkColorSpace.h"
-#include "SkColorSpaceXformSteps.h"
-#include "Test.h"
+#include "include/core/SkColorSpace.h"
+#include "src/core/SkColorSpaceXformSteps.h"
+#include "tests/Test.h"
 
 DEF_TEST(SkColorSpaceXformSteps_vs_skcms, r) {
     auto srgb = SkColorSpace::MakeSRGB();
diff --git a/tests/OSPathTest.cpp b/tests/OSPathTest.cpp
index 22deff8..9a39428 100644
--- a/tests/OSPathTest.cpp
+++ b/tests/OSPathTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkOSPath.h"
-#include "SkString.h"
-#include "Test.h"
+#include "include/core/SkString.h"
+#include "src/utils/SkOSPath.h"
+#include "tests/Test.h"
 
 /**
  *  Test SkOSPath::Join, SkOSPath::Basename, and SkOSPath::Dirname.
diff --git a/tests/OffsetSimplePolyTest.cpp b/tests/OffsetSimplePolyTest.cpp
index 0f4f18f..965a9c9 100644
--- a/tests/OffsetSimplePolyTest.cpp
+++ b/tests/OffsetSimplePolyTest.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Test.h"
-#include "SkPolyUtils.h"
+#include "src/utils/SkPolyUtils.h"
+#include "tests/Test.h"
 
 DEF_TEST(OffsetSimplePoly, reporter) {
     SkTDArray<SkPoint> rrectPoly;
diff --git a/tests/OnFlushCallbackTest.cpp b/tests/OnFlushCallbackTest.cpp
index c560d6c..12d2767 100644
--- a/tests/OnFlushCallbackTest.cpp
+++ b/tests/OnFlushCallbackTest.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "GrBackendSemaphore.h"
-#include "GrClip.h"
-#include "GrContextPriv.h"
-#include "GrDefaultGeoProcFactory.h"
-#include "GrOnFlushResourceProvider.h"
-#include "GrProxyProvider.h"
-#include "GrQuad.h"
-#include "GrRenderTargetContextPriv.h"
-#include "GrResourceProvider.h"
-#include "GrTexture.h"
+#include "include/gpu/GrBackendSemaphore.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrDefaultGeoProcFactory.h"
+#include "src/gpu/GrOnFlushResourceProvider.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrQuad.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/GrResourceProvider.h"
 
-#include "SkBitmap.h"
-#include "SkPointPriv.h"
-#include "effects/generated/GrSimpleTextureEffect.h"
-#include "ops/GrSimpleMeshDrawOpHelper.h"
+#include "include/core/SkBitmap.h"
+#include "src/core/SkPointPriv.h"
+#include "src/gpu/effects/generated/GrSimpleTextureEffect.h"
+#include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h"
 
 namespace {
 // This is a simplified mesh drawing op that can be used in the atlas generation test.
@@ -473,8 +473,8 @@
 // atlas
 #if 0
 #include "SkGrPriv.h"
-#include "SkImageEncoder.h"
-#include "ToolUtils.h"
+#include "include/core/SkImageEncoder.h"
+#include "tools/ToolUtils.h"
 
 static void save_bm(const SkBitmap& bm, const char name[]) {
     bool result = ToolUtils::EncodeImageToFile(name, bm, SkEncodedImageFormat::kPNG, 100);
diff --git a/tests/OnceTest.cpp b/tests/OnceTest.cpp
index ef8d3d9..fdc6437 100644
--- a/tests/OnceTest.cpp
+++ b/tests/OnceTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkOnce.h"
-#include "SkTaskGroup.h"
-#include "Test.h"
+#include "include/private/SkOnce.h"
+#include "src/core/SkTaskGroup.h"
+#include "tests/Test.h"
 
 static void add_five(int* x) {
     *x += 5;
diff --git a/tests/OpChainTest.cpp b/tests/OpChainTest.cpp
index 576f807..046881f 100644
--- a/tests/OpChainTest.cpp
+++ b/tests/OpChainTest.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrMemoryPool.h"
-#include "GrOpFlushState.h"
-#include "GrRenderTargetOpList.h"
-#include "Test.h"
-#include "ops/GrOp.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrRenderTargetOpList.h"
+#include "src/gpu/ops/GrOp.h"
+#include "tests/Test.h"
 
 // We create Ops that write a value into a range of a buffer. We create ranges from
 // kNumOpPositions starting positions x kRanges canonical ranges. We repeat each range kNumRepeats
diff --git a/tests/OverAlignedTest.cpp b/tests/OverAlignedTest.cpp
index fcc3e16..879947e 100644
--- a/tests/OverAlignedTest.cpp
+++ b/tests/OverAlignedTest.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
-#include "SkRandom.h"
+#include "include/utils/SkRandom.h"
+#include "tests/Test.h"
 
 // Clang seems to think only 32-bit alignment is guaranteed on 32-bit x86 Android.
 // See https://reviews.llvm.org/D8357
diff --git a/tests/PDFDeflateWStreamTest.cpp b/tests/PDFDeflateWStreamTest.cpp
index d32828c..20ee249 100644
--- a/tests/PDFDeflateWStreamTest.cpp
+++ b/tests/PDFDeflateWStreamTest.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
 #ifdef SK_SUPPORT_PDF
 
-#include "SkDeflate.h"
-#include "SkRandom.h"
-#include "SkTo.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkRandom.h"
+#include "src/pdf/SkDeflate.h"
 
 namespace {
 
diff --git a/tests/PDFDocumentTest.cpp b/tests/PDFDocumentTest.cpp
index c3d6ed2..a1c64ed 100644
--- a/tests/PDFDocumentTest.cpp
+++ b/tests/PDFDocumentTest.cpp
@@ -4,17 +4,17 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkExecutor.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkPDFDocument.h"
-#include "SkStream.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkExecutor.h"
+#include "include/core/SkStream.h"
+#include "include/docs/SkPDFDocument.h"
+#include "src/core/SkOSFile.h"
+#include "src/utils/SkOSPath.h"
+#include "tools/Resources.h"
 
-#include "ToolUtils.h"
+#include "tools/ToolUtils.h"
 
 static void test_empty(skiatest::Reporter* reporter) {
     SkDynamicMemoryWStream stream;
diff --git a/tests/PDFGlyphsToUnicodeTest.cpp b/tests/PDFGlyphsToUnicodeTest.cpp
index 71d75dd..7b9131d 100644
--- a/tests/PDFGlyphsToUnicodeTest.cpp
+++ b/tests/PDFGlyphsToUnicodeTest.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
 #ifdef SK_SUPPORT_PDF
 
-#include "SkBitSet.h"
-#include "SkData.h"
-#include "SkPDFMakeToUnicodeCmap.h"
-#include "SkStream.h"
-#include "SkTo.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkTo.h"
+#include "src/pdf/SkPDFMakeToUnicodeCmap.h"
+#include "src/utils/SkBitSet.h"
 
 static constexpr SkGlyphID kMaximumGlyphIndex = UINT16_MAX;
 
diff --git a/tests/PDFJpegEmbedTest.cpp b/tests/PDFJpegEmbedTest.cpp
index 055f457..87577ac 100644
--- a/tests/PDFJpegEmbedTest.cpp
+++ b/tests/PDFJpegEmbedTest.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkData.h"
-#include "SkImageGenerator.h"
-#include "SkPDFDocument.h"
-#include "SkStream.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageGenerator.h"
+#include "include/core/SkStream.h"
+#include "include/docs/SkPDFDocument.h"
 
-#include "Resources.h"
-#include "Test.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
 
 static bool is_subset_of(SkData* smaller, SkData* larger) {
     SkASSERT(smaller && larger);
@@ -81,7 +81,7 @@
 
 #ifdef SK_SUPPORT_PDF
 
-#include "SkJpegInfo.h"
+#include "src/pdf/SkJpegInfo.h"
 
 struct SkJFIFInfo {
     SkISize fSize;
diff --git a/tests/PDFMetadataAttributeTest.cpp b/tests/PDFMetadataAttributeTest.cpp
index 964d0e7..e736fac 100644
--- a/tests/PDFMetadataAttributeTest.cpp
+++ b/tests/PDFMetadataAttributeTest.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkData.h"
-#include "SkPDFDocument.h"
-#include "SkStream.h"
-#include "Test.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
+#include "include/docs/SkPDFDocument.h"
+#include "tests/Test.h"
 
 DEF_TEST(SkPDF_Metadata, r) {
     REQUIRE_PDF_DOCUMENT(SkPDF_Metadata, r);
diff --git a/tests/PDFOpaqueSrcModeToSrcOverTest.cpp b/tests/PDFOpaqueSrcModeToSrcOverTest.cpp
index c3c5fbc..e01b159 100644
--- a/tests/PDFOpaqueSrcModeToSrcOverTest.cpp
+++ b/tests/PDFOpaqueSrcModeToSrcOverTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkPDFDocument.h"
-#include "SkStream.h"
-#include "Test.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkStream.h"
+#include "include/docs/SkPDFDocument.h"
+#include "tests/Test.h"
 
 static void run_test(SkWStream* out, SkBlendMode mode, U8CPU alpha) {
     auto pdfDoc = SkPDF::MakeDocument(out);
diff --git a/tests/PDFPrimitivesTest.cpp b/tests/PDFPrimitivesTest.cpp
index 42804b9..53a369a1 100644
--- a/tests/PDFPrimitivesTest.cpp
+++ b/tests/PDFPrimitivesTest.cpp
@@ -5,34 +5,34 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
 #ifdef SK_SUPPORT_PDF
 
-#include "Resources.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkClusterator.h"
-#include "SkData.h"
-#include "SkDeflate.h"
-#include "SkGlyphRun.h"
-#include "SkImageEncoder.h"
-#include "SkImageFilterPriv.h"
-#include "SkMakeUnique.h"
-#include "SkMatrix.h"
-#include "SkPDFDevice.h"
-#include "SkPDFDocumentPriv.h"
-#include "SkPDFFont.h"
-#include "SkPDFTypes.h"
-#include "SkPDFUnion.h"
-#include "SkPDFUtils.h"
-#include "SkReadBuffer.h"
-#include "SkScalar.h"
-#include "SkSpecialImage.h"
-#include "SkStream.h"
-#include "SkTo.h"
-#include "SkTypes.h"
-#include "ToolUtils.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageEncoder.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkGlyphRun.h"
+#include "src/core/SkImageFilterPriv.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/pdf/SkClusterator.h"
+#include "src/pdf/SkDeflate.h"
+#include "src/pdf/SkPDFDevice.h"
+#include "src/pdf/SkPDFDocumentPriv.h"
+#include "src/pdf/SkPDFFont.h"
+#include "src/pdf/SkPDFTypes.h"
+#include "src/pdf/SkPDFUnion.h"
+#include "src/pdf/SkPDFUtils.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
 #include <cstdlib>
 #include <cmath>
diff --git a/tests/PDFTaggedTest.cpp b/tests/PDFTaggedTest.cpp
index 60ae538..a4a11db 100644
--- a/tests/PDFTaggedTest.cpp
+++ b/tests/PDFTaggedTest.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "SkCanvas.h"
-#include "SkPDFDocument.h"
-#include "SkStream.h"
-#include "SkFont.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkStream.h"
+#include "include/docs/SkPDFDocument.h"
 
 using PDFTag = SkPDF::StructureElementNode;
 
diff --git a/tests/PackBitsTest.cpp b/tests/PackBitsTest.cpp
index ac9a0ae..4d73372 100644
--- a/tests/PackBitsTest.cpp
+++ b/tests/PackBitsTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkPackBits.h"
-#include "Test.h"
+#include "src/effects/SkPackBits.h"
+#include "tests/Test.h"
 
-#include "SkRandom.h"
+#include "include/utils/SkRandom.h"
 static SkRandom gRand;
 static const uint8_t gTest80[] = { 0, 0, 1, 1 };
 static const uint8_t gTest81[] = { 1, 2, 3, 4, 5, 6 };
diff --git a/tests/PackedConfigsTextureTest.cpp b/tests/PackedConfigsTextureTest.cpp
index d66be09..f69b1db 100644
--- a/tests/PackedConfigsTextureTest.cpp
+++ b/tests/PackedConfigsTextureTest.cpp
@@ -11,13 +11,13 @@
  * as valid texturing configs.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrProxyProvider.h"
-#include "GrTextureProxy.h"
-#include "ProxyUtils.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "tools/gpu/ProxyUtils.h"
 
 static const int DEV_W = 10, DEV_H = 10;
 static const uint8_t TOL = 0x4;
diff --git a/tests/PaintImageFilterTest.cpp b/tests/PaintImageFilterTest.cpp
index b9035a3..246896d 100644
--- a/tests/PaintImageFilterTest.cpp
+++ b/tests/PaintImageFilterTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkPaintImageFilter.h"
-#include "SkShader.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkShader.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/effects/SkPaintImageFilter.h"
+#include "tests/Test.h"
 
 static void test_unscaled(skiatest::Reporter* reporter) {
     int w = 10, h = 10;
diff --git a/tests/PaintTest.cpp b/tests/PaintTest.cpp
index 8641511..7c7dd51 100644
--- a/tests/PaintTest.cpp
+++ b/tests/PaintTest.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "SkAutoMalloc.h"
-#include "SkBlurMask.h"
-#include "SkFont.h"
-#include "SkLayerDrawLooper.h"
-#include "SkMaskFilter.h"
-#include "SkPaintPriv.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkReadBuffer.h"
-#include "SkTo.h"
-#include "SkTypeface.h"
-#include "SkUTF.h"
-#include "SkWriteBuffer.h"
-#include "Test.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkLayerDrawLooper.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkBlurMask.h"
+#include "src/core/SkPaintPriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/utils/SkUTF.h"
+#include "tests/Test.h"
 #undef ASSERT
 
 // temparary api for bicubic, just be sure we can set/clear it
@@ -218,7 +218,7 @@
     REPORTER_ASSERT(r, paint.getHash() == defaultHash);
 }
 
-#include "SkColorMatrixFilter.h"
+#include "include/effects/SkColorMatrixFilter.h"
 
 DEF_TEST(Paint_nothingToDraw, r) {
     SkPaint paint;
diff --git a/tests/ParametricStageTest.cpp b/tests/ParametricStageTest.cpp
index 9dcaa00..6ec62b8 100644
--- a/tests/ParametricStageTest.cpp
+++ b/tests/ParametricStageTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorSpace.h"
-#include "SkRasterPipeline.h"
-#include "Test.h"
+#include "include/core/SkColorSpace.h"
+#include "src/core/SkRasterPipeline.h"
+#include "tests/Test.h"
 
 static void check_error(skiatest::Reporter* r, float limit, skcms_TransferFunction fn) {
     float in[256], out[256];
diff --git a/tests/ParsePathTest.cpp b/tests/ParsePathTest.cpp
index 408f780..bfdea3a 100644
--- a/tests/ParsePathTest.cpp
+++ b/tests/ParsePathTest.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkParsePath.h"
-#include "Test.h"
+#include "include/utils/SkParsePath.h"
+#include "tests/Test.h"
 
 static void test_to_from(skiatest::Reporter* reporter, const SkPath& path) {
     SkString str, str2;
@@ -72,8 +72,8 @@
     REPORTER_ASSERT(r, !success);
 }
 
-#include "random_parse_path.h"
-#include "SkRandom.h"
+#include "include/utils/SkRandom.h"
+#include "tools/random_parse_path.h"
 
 DEF_TEST(ParsePathRandom, r) {
     SkRandom rand;
diff --git a/tests/PathCoverageTest.cpp b/tests/PathCoverageTest.cpp
index ed5ed0e..a6f676b 100644
--- a/tests/PathCoverageTest.cpp
+++ b/tests/PathCoverageTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkMathPriv.h"
-#include "SkPointPriv.h"
-#include "SkScalar.h"
-#include "Test.h"
+#include "include/core/SkScalar.h"
+#include "src/core/SkMathPriv.h"
+#include "src/core/SkPointPriv.h"
+#include "tests/Test.h"
 
 /*
    Duplicates lots of code from gpu/src/GrPathUtils.cpp
diff --git a/tests/PathMeasureTest.cpp b/tests/PathMeasureTest.cpp
index 166fe44..0873122 100644
--- a/tests/PathMeasureTest.cpp
+++ b/tests/PathMeasureTest.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkPathMeasure.h"
-#include "Test.h"
+#include "include/core/SkPathMeasure.h"
+#include "tests/Test.h"
 
 static void test_small_segment3() {
     SkPath path;
@@ -228,7 +228,7 @@
     REPORTER_ASSERT(reporter, !meas.nextContour());
 }
 
-#include "SkContourMeasure.h"
+#include "include/core/SkContourMeasure.h"
 
 static void test_90_degrees(sk_sp<SkContourMeasure> cm, SkScalar radius,
                             skiatest::Reporter* reporter) {
diff --git a/tests/PathOpsAngleIdeas.cpp b/tests/PathOpsAngleIdeas.cpp
index e6a75cd..bbf5e7a 100644
--- a/tests/PathOpsAngleIdeas.cpp
+++ b/tests/PathOpsAngleIdeas.cpp
@@ -4,14 +4,14 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
-#include "SkIntersections.h"
-#include "SkOpContour.h"
-#include "SkOpSegment.h"
-#include "SkRandom.h"
-#include "SkTArray.h"
-#include "SkTSort.h"
-#include "Test.h"
+#include "include/private/SkTArray.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkTSort.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkOpSegment.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 static bool gPathOpsAngleIdeasVerbose = false;
 static bool gPathOpsAngleIdeasEnableBruteCheck = false;
diff --git a/tests/PathOpsAngleTest.cpp b/tests/PathOpsAngleTest.cpp
index cd99915..7d8c4bd 100644
--- a/tests/PathOpsAngleTest.cpp
+++ b/tests/PathOpsAngleTest.cpp
@@ -4,13 +4,13 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
-#include "SkIntersections.h"
-#include "SkOpContour.h"
-#include "SkOpSegment.h"
-#include "SkRandom.h"
-#include "SkTSort.h"
-#include "Test.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkTSort.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkOpSegment.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 static bool gDisableAngleTests = true;
 
diff --git a/tests/PathOpsAsWindingTest.cpp b/tests/PathOpsAsWindingTest.cpp
index 55d5130..e92dc0d 100644
--- a/tests/PathOpsAsWindingTest.cpp
+++ b/tests/PathOpsAsWindingTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "PathOpsExtendedTest.h"
-#include "PathOpsThreadedCommon.h"
-#include "Test.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsThreadedCommon.h"
+#include "tests/Test.h"
 
 static SkPath build_squircle(SkPath::Verb verb, const SkRect& rect, SkPath::Direction dir) {
     SkPath path;
diff --git a/tests/PathOpsBattles.cpp b/tests/PathOpsBattles.cpp
index 9927cde..f3c5140 100644
--- a/tests/PathOpsBattles.cpp
+++ b/tests/PathOpsBattles.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsExtendedTest.h"
-#include "PathOpsTestCommon.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsTestCommon.h"
 
 #define TEST(name) { name, #name }
 
diff --git a/tests/PathOpsBoundsTest.cpp b/tests/PathOpsBoundsTest.cpp
index 573a0ce..91856ca 100644
--- a/tests/PathOpsBoundsTest.cpp
+++ b/tests/PathOpsBoundsTest.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
-#include "SkPathOpsBounds.h"
-#include "SkPathOpsCurve.h"
-#include "Test.h"
+#include "src/pathops/SkPathOpsBounds.h"
+#include "src/pathops/SkPathOpsCurve.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 static const SkRect sectTests[][2] = {
     {{2, 0, 4, 1}, {4, 0, 6, 1}},
diff --git a/tests/PathOpsBuildUseTest.cpp b/tests/PathOpsBuildUseTest.cpp
index 0d72008..4ad239d 100644
--- a/tests/PathOpsBuildUseTest.cpp
+++ b/tests/PathOpsBuildUseTest.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsExtendedTest.h"
-#include "PathOpsTestCommon.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsTestCommon.h"
 
 #define TEST(name) { name, #name }
 
diff --git a/tests/PathOpsBuilderConicTest.cpp b/tests/PathOpsBuilderConicTest.cpp
index 297dc02..1addea7 100644
--- a/tests/PathOpsBuilderConicTest.cpp
+++ b/tests/PathOpsBuilderConicTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "PathOpsExtendedTest.h"
-#include "SkRandom.h"
-#include "SkRegion.h"
-#include "SubsetPath.h"
+#include "include/core/SkRegion.h"
+#include "include/utils/SkRandom.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/SubsetPath.h"
 
 #define DEBUG_SIMPLIFY_FAILS 0
 
@@ -88,7 +88,7 @@
     testOne(reporter, set);
 }
 
-#include "CommandLineFlags.h"
+#include "tools/flags/CommandLineFlags.h"
 
 static DEFINE_int(processOffset, 0,
                     "Offset the test by this value. This permits multiple processes "
@@ -623,7 +623,7 @@
 " Q 146.3946533203125 126.4554138183594 146.4066772460938 129.8022613525391"
 " Q 146.4187316894531 133.1491088867188 146.4187316894531 136.5 Z";
 
-#include "SkParsePath.h"
+#include "include/utils/SkParsePath.h"
 
 DEF_TEST(PathOpsOvalsAsQuads, reporter) {
     return; // don't execute this for now
diff --git a/tests/PathOpsBuilderTest.cpp b/tests/PathOpsBuilderTest.cpp
index ffeff5f..9069802 100644
--- a/tests/PathOpsBuilderTest.cpp
+++ b/tests/PathOpsBuilderTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "PathOpsExtendedTest.h"
-#include "PathOpsTestCommon.h"
-#include "SkBitmap.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 DEF_TEST(PathOpsBuilder, reporter) {
     SkOpBuilder builder;
diff --git a/tests/PathOpsChalkboardTest.cpp b/tests/PathOpsChalkboardTest.cpp
index cdf1fc6..6c03f2c 100644
--- a/tests/PathOpsChalkboardTest.cpp
+++ b/tests/PathOpsChalkboardTest.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsExtendedTest.h"
-#include "PathOpsThreadedCommon.h"
-#include "SkRandom.h"
+#include "include/utils/SkRandom.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsThreadedCommon.h"
 #include <atomic>
 
 #define TEST(name) { name, #name }
diff --git a/tests/PathOpsConicIntersectionTest.cpp b/tests/PathOpsConicIntersectionTest.cpp
index 7389556..b9033f9 100644
--- a/tests/PathOpsConicIntersectionTest.cpp
+++ b/tests/PathOpsConicIntersectionTest.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
-#include "SkGeometry.h"
-#include "SkIntersections.h"
-#include "Test.h"
+#include "src/core/SkGeometry.h"
+#include "src/pathops/SkIntersections.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 /*
 manually compute the intersection of a pair of circles and see if the conic intersection matches
@@ -60,12 +60,12 @@
 #endif
 }
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkImageEncoder.h"
-#include "SkPathOpsRect.h"
-#include "SkPaint.h"
-#include "SkString.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImageEncoder.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkString.h"
+#include "src/pathops/SkPathOpsRect.h"
 
 #define DEBUG_VISUALIZE_CONICS 0
 
diff --git a/tests/PathOpsConicLineIntersectionTest.cpp b/tests/PathOpsConicLineIntersectionTest.cpp
index 8a96519..40bb5f6 100644
--- a/tests/PathOpsConicLineIntersectionTest.cpp
+++ b/tests/PathOpsConicLineIntersectionTest.cpp
@@ -4,14 +4,14 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsExtendedTest.h"
-#include "PathOpsTestCommon.h"
-#include "SkGeometry.h"
-#include "SkIntersections.h"
-#include "SkPathOpsConic.h"
-#include "SkPathOpsLine.h"
-#include "SkReduceOrder.h"
-#include "Test.h"
+#include "src/core/SkGeometry.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkReduceOrder.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 #include <utility>
 
diff --git a/tests/PathOpsConicQuadIntersectionTest.cpp b/tests/PathOpsConicQuadIntersectionTest.cpp
index 8f47e76..fd46f18 100644
--- a/tests/PathOpsConicQuadIntersectionTest.cpp
+++ b/tests/PathOpsConicQuadIntersectionTest.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
-#include "SkIntersections.h"
-#include "SkPathOpsConic.h"
-#include "SkPathOpsQuad.h"
-#include "SkReduceOrder.h"
-#include "Test.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkReduceOrder.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 static struct conicQuad {
     ConicPts conic;
diff --git a/tests/PathOpsCubicConicIntersectionTest.cpp b/tests/PathOpsCubicConicIntersectionTest.cpp
index aa8a9d8..9f8034f 100644
--- a/tests/PathOpsCubicConicIntersectionTest.cpp
+++ b/tests/PathOpsCubicConicIntersectionTest.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
-#include "SkIntersections.h"
-#include "SkPathOpsConic.h"
-#include "SkPathOpsCubic.h"
-#include "SkReduceOrder.h"
-#include "Test.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkReduceOrder.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 static struct cubicConic {
     CubicPts cubic;
diff --git a/tests/PathOpsCubicIntersectionTest.cpp b/tests/PathOpsCubicIntersectionTest.cpp
index 8a7ec1a..30a0b38 100644
--- a/tests/PathOpsCubicIntersectionTest.cpp
+++ b/tests/PathOpsCubicIntersectionTest.cpp
@@ -4,13 +4,13 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsCubicIntersectionTestData.h"
-#include "PathOpsTestCommon.h"
-#include "SkGeometry.h"
-#include "SkIntersections.h"
-#include "SkPathOpsRect.h"
-#include "SkReduceOrder.h"
-#include "Test.h"
+#include "src/core/SkGeometry.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsRect.h"
+#include "src/pathops/SkReduceOrder.h"
+#include "tests/PathOpsCubicIntersectionTestData.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 #include <stdlib.h>
 
diff --git a/tests/PathOpsCubicIntersectionTestData.cpp b/tests/PathOpsCubicIntersectionTestData.cpp
index 58dbfde..55eda4c 100644
--- a/tests/PathOpsCubicIntersectionTestData.cpp
+++ b/tests/PathOpsCubicIntersectionTestData.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "PathOpsCubicIntersectionTestData.h"
+#include "tests/PathOpsCubicIntersectionTestData.h"
 
 #include <limits>
 
diff --git a/tests/PathOpsCubicIntersectionTestData.h b/tests/PathOpsCubicIntersectionTestData.h
index 4c9894c..e70b907 100644
--- a/tests/PathOpsCubicIntersectionTestData.h
+++ b/tests/PathOpsCubicIntersectionTestData.h
@@ -4,7 +4,7 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
+#include "tests/PathOpsTestCommon.h"
 
 extern const CubicPts pointDegenerates[];
 extern const CubicPts notPointDegenerates[];
diff --git a/tests/PathOpsCubicLineIntersectionIdeas.cpp b/tests/PathOpsCubicLineIntersectionIdeas.cpp
index 1555475..449cdb3 100644
--- a/tests/PathOpsCubicLineIntersectionIdeas.cpp
+++ b/tests/PathOpsCubicLineIntersectionIdeas.cpp
@@ -4,14 +4,14 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
-#include "SkIntersections.h"
-#include "SkPathOpsCubic.h"
-#include "SkPathOpsLine.h"
-#include "SkPathOpsQuad.h"
-#include "SkRandom.h"
-#include "SkReduceOrder.h"
-#include "Test.h"
+#include "include/utils/SkRandom.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkReduceOrder.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 static bool gPathOpsCubicLineIntersectionIdeasVerbose = false;
 
diff --git a/tests/PathOpsCubicLineIntersectionTest.cpp b/tests/PathOpsCubicLineIntersectionTest.cpp
index 87e6cea..ac13736 100644
--- a/tests/PathOpsCubicLineIntersectionTest.cpp
+++ b/tests/PathOpsCubicLineIntersectionTest.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
-#include "SkIntersections.h"
-#include "SkPathOpsCubic.h"
-#include "SkPathOpsLine.h"
-#include "SkReduceOrder.h"
-#include "Test.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkReduceOrder.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 #include <utility>
 
diff --git a/tests/PathOpsCubicQuadIntersectionTest.cpp b/tests/PathOpsCubicQuadIntersectionTest.cpp
index 87c7e13..6f4b3db 100644
--- a/tests/PathOpsCubicQuadIntersectionTest.cpp
+++ b/tests/PathOpsCubicQuadIntersectionTest.cpp
@@ -4,13 +4,13 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
-#include "SkIntersections.h"
-#include "SkPathOpsCubic.h"
-#include "SkPathOpsQuad.h"
-#include "SkRandom.h"
-#include "SkReduceOrder.h"
-#include "Test.h"
+#include "include/utils/SkRandom.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkReduceOrder.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 static struct quadCubic {
     CubicPts cubic;
diff --git a/tests/PathOpsCubicReduceOrderTest.cpp b/tests/PathOpsCubicReduceOrderTest.cpp
index 89a263c..b3d4ef9 100644
--- a/tests/PathOpsCubicReduceOrderTest.cpp
+++ b/tests/PathOpsCubicReduceOrderTest.cpp
@@ -4,13 +4,13 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsCubicIntersectionTestData.h"
-#include "PathOpsQuadIntersectionTestData.h"
-#include "PathOpsTestCommon.h"
-#include "SkIntersections.h"
-#include "SkPathOpsRect.h"
-#include "SkReduceOrder.h"
-#include "Test.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsRect.h"
+#include "src/pathops/SkReduceOrder.h"
+#include "tests/PathOpsCubicIntersectionTestData.h"
+#include "tests/PathOpsQuadIntersectionTestData.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 #if 0 // disable test until stroke reduction is supported
 static bool controls_inside(const SkDCubic& cubic) {
diff --git a/tests/PathOpsDCubicTest.cpp b/tests/PathOpsDCubicTest.cpp
index b8c08df..e41135e 100644
--- a/tests/PathOpsDCubicTest.cpp
+++ b/tests/PathOpsDCubicTest.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
-#include "SkPathOpsCubic.h"
-#include "Test.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 static const CubicPts hullTests[] = {
 {{{2.6250000819563866, 2.3750000223517418}, {2.833333432674408, 2.3333333432674408}, {3.1111112236976624, 2.3333333134651184}, {3.4074075222015381, 2.3333332538604736}}},
diff --git a/tests/PathOpsDLineTest.cpp b/tests/PathOpsDLineTest.cpp
index 1e16002..3d04ff8 100644
--- a/tests/PathOpsDLineTest.cpp
+++ b/tests/PathOpsDLineTest.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
-#include "SkPathOpsLine.h"
-#include "Test.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 static const SkDLine tests[] = {
     {{{2, 1}, {2, 1}}},
diff --git a/tests/PathOpsDPointTest.cpp b/tests/PathOpsDPointTest.cpp
index e197d5d..1b9a009 100644
--- a/tests/PathOpsDPointTest.cpp
+++ b/tests/PathOpsDPointTest.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
-#include "SkPathOpsPoint.h"
-#include "Test.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 static const SkDPoint tests[] = {
     {0, 0},
diff --git a/tests/PathOpsDRectTest.cpp b/tests/PathOpsDRectTest.cpp
index fa52e78..72b7be0 100644
--- a/tests/PathOpsDRectTest.cpp
+++ b/tests/PathOpsDRectTest.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
-#include "SkPathOpsCubic.h"
-#include "SkPathOpsLine.h"
-#include "SkPathOpsQuad.h"
-#include "SkPathOpsRect.h"
-#include "Test.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsRect.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 static const QuadPts quadTests[] = {
     {{{1, 1}, {2, 1}, {0, 2}}},
diff --git a/tests/PathOpsDVectorTest.cpp b/tests/PathOpsDVectorTest.cpp
index 5eced8f..e588193 100644
--- a/tests/PathOpsDVectorTest.cpp
+++ b/tests/PathOpsDVectorTest.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
-#include "SkPathOpsPoint.h"
-#include "Test.h"
+#include "src/pathops/SkPathOpsPoint.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 static const SkDPoint tests[] = {
     {0, 0},
diff --git a/tests/PathOpsDebug.cpp b/tests/PathOpsDebug.cpp
index 428585b..94664c1 100644
--- a/tests/PathOpsDebug.cpp
+++ b/tests/PathOpsDebug.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "PathOpsDebug.h"
-#include "PathOpsTSectDebug.h"
-#include "SkOpCoincidence.h"
-#include "SkOpContour.h"
-#include "SkIntersectionHelper.h"
-#include "SkMutex.h"
-#include "SkOpSegment.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "include/private/SkMutex.h"
+#include "src/pathops/SkIntersectionHelper.h"
+#include "src/pathops/SkOpCoincidence.h"
+#include "src/pathops/SkOpContour.h"
+#include "src/pathops/SkOpSegment.h"
+#include "tests/PathOpsDebug.h"
+#include "tests/PathOpsTSectDebug.h"
 
 bool PathOpsDebug::gJson;
 bool PathOpsDebug::gMarkJsonFlaky;
diff --git a/tests/PathOpsExtendedTest.cpp b/tests/PathOpsExtendedTest.cpp
index 857ba63..f55cba3 100644
--- a/tests/PathOpsExtendedTest.cpp
+++ b/tests/PathOpsExtendedTest.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "PathOpsDebug.h"
-#include "PathOpsExtendedTest.h"
-#include "PathOpsThreadedCommon.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkMatrix.h"
-#include "SkMutex.h"
-#include "SkPaint.h"
-#include "SkParsePath.h"
-#include "SkRegion.h"
-#include "SkStream.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkMutex.h"
+#include "include/utils/SkParsePath.h"
+#include "tests/PathOpsDebug.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsThreadedCommon.h"
 
 #include <stdlib.h>
 #include <vector>
diff --git a/tests/PathOpsExtendedTest.h b/tests/PathOpsExtendedTest.h
index 37bc396..a9f2b25 100644
--- a/tests/PathOpsExtendedTest.h
+++ b/tests/PathOpsExtendedTest.h
@@ -7,11 +7,11 @@
 #ifndef PathOpsExtendedTest_DEFINED
 #define PathOpsExtendedTest_DEFINED
 
-#include "SkBitmap.h"
-#include "SkPath.h"
-#include "SkPathOpsTypes.h"
-#include "SkStream.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkStream.h"
+#include "src/pathops/SkPathOpsTypes.h"
+#include "tests/Test.h"
 
 struct PathOpsThreadState;
 
diff --git a/tests/PathOpsFuzz763Test.cpp b/tests/PathOpsFuzz763Test.cpp
index c9d13fc..3e864bf 100644
--- a/tests/PathOpsFuzz763Test.cpp
+++ b/tests/PathOpsFuzz763Test.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsExtendedTest.h"
-#include "PathOpsTestCommon.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsTestCommon.h"
 
 #define TEST(name) { name, #name }
 
diff --git a/tests/PathOpsInverseTest.cpp b/tests/PathOpsInverseTest.cpp
index a75522e..6f0034b 100644
--- a/tests/PathOpsInverseTest.cpp
+++ b/tests/PathOpsInverseTest.cpp
@@ -4,7 +4,7 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsExtendedTest.h"
+#include "tests/PathOpsExtendedTest.h"
 
 DEF_TEST(PathOpsInverse, reporter) {
     SkPath one, two;
diff --git a/tests/PathOpsIssue3651.cpp b/tests/PathOpsIssue3651.cpp
index 7b0392c..43d4092 100644
--- a/tests/PathOpsIssue3651.cpp
+++ b/tests/PathOpsIssue3651.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsExtendedTest.h"
-#include "PathOpsTestCommon.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsTestCommon.h"
 
 #define TEST(name) { name, #name }
 
diff --git a/tests/PathOpsLineIntersectionTest.cpp b/tests/PathOpsLineIntersectionTest.cpp
index bc0259c..e094978 100644
--- a/tests/PathOpsLineIntersectionTest.cpp
+++ b/tests/PathOpsLineIntersectionTest.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
-#include "SkIntersections.h"
-#include "SkPathOpsLine.h"
-#include "Test.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 // FIXME: add tests for intersecting, non-intersecting, degenerate, coincident
 static const SkDLine tests[][2] = {
diff --git a/tests/PathOpsLineParametetersTest.cpp b/tests/PathOpsLineParametetersTest.cpp
index 66a4be2..696de71 100644
--- a/tests/PathOpsLineParametetersTest.cpp
+++ b/tests/PathOpsLineParametetersTest.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
-#include "SkLineParameters.h"
-#include "Test.h"
+#include "src/pathops/SkLineParameters.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 // tests to verify that distance calculations are coded correctly
 static const CubicPts tests[] = {
diff --git a/tests/PathOpsOpCircleThreadedTest.cpp b/tests/PathOpsOpCircleThreadedTest.cpp
index b6c19d5..cb99acd 100644
--- a/tests/PathOpsOpCircleThreadedTest.cpp
+++ b/tests/PathOpsOpCircleThreadedTest.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsDebug.h"
-#include "PathOpsExtendedTest.h"
-#include "PathOpsThreadedCommon.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "tests/PathOpsDebug.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsThreadedCommon.h"
 
 #include <atomic>
 
diff --git a/tests/PathOpsOpCubicThreadedTest.cpp b/tests/PathOpsOpCubicThreadedTest.cpp
index b087cbed..50eb414 100644
--- a/tests/PathOpsOpCubicThreadedTest.cpp
+++ b/tests/PathOpsOpCubicThreadedTest.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsDebug.h"
-#include "PathOpsExtendedTest.h"
-#include "PathOpsThreadedCommon.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "tests/PathOpsDebug.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsThreadedCommon.h"
 
 #include <atomic>
 
diff --git a/tests/PathOpsOpLoopThreadedTest.cpp b/tests/PathOpsOpLoopThreadedTest.cpp
index 496bc8c..60528fb 100644
--- a/tests/PathOpsOpLoopThreadedTest.cpp
+++ b/tests/PathOpsOpLoopThreadedTest.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsDebug.h"
-#include "PathOpsExtendedTest.h"
-#include "PathOpsThreadedCommon.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "tests/PathOpsDebug.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsThreadedCommon.h"
 
 #include <atomic>
 
diff --git a/tests/PathOpsOpRectThreadedTest.cpp b/tests/PathOpsOpRectThreadedTest.cpp
index 5e69ef8..059ece2 100644
--- a/tests/PathOpsOpRectThreadedTest.cpp
+++ b/tests/PathOpsOpRectThreadedTest.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsDebug.h"
-#include "PathOpsExtendedTest.h"
-#include "PathOpsThreadedCommon.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "tests/PathOpsDebug.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsThreadedCommon.h"
 #include <atomic>
 
 // four rects, of four sizes
diff --git a/tests/PathOpsOpTest.cpp b/tests/PathOpsOpTest.cpp
index 070f802..5c04a8f 100644
--- a/tests/PathOpsOpTest.cpp
+++ b/tests/PathOpsOpTest.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsDebug.h"
-#include "PathOpsExtendedTest.h"
-#include "PathOpsTestCommon.h"
+#include "tests/PathOpsDebug.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsTestCommon.h"
 
 class PathTest_Private {
 public:
@@ -3590,7 +3590,7 @@
     testPathOp(reporter, path, pathB, kIntersect_SkPathOp, filename);
 }
 
-#include "SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsCubic.h"
 
 static void loop1asQuad(skiatest::Reporter* reporter, const char* filename) {
     CubicPts cubic1 = {{{0,1}, {1,5}, {-5.66666651f,3.33333349f}, {8.83333302f,2.33333349f}}};
@@ -3656,7 +3656,7 @@
     testPathOp(reporter, path, pathB, kIntersect_SkPathOp, filename);
 }
 
-#include "SkParsePath.h"
+#include "include/utils/SkParsePath.h"
 
 static void issue3517(skiatest::Reporter* reporter, const char* filename) {
     SkPath path, pathB;
@@ -3848,7 +3848,7 @@
     testPathOp(reporter, path, pathB, kDifference_SkPathOp, filename);
 }
 
-#include "SkGeometry.h"
+#include "src/core/SkGeometry.h"
 
 static void complex_to_quads(const SkPoint pts[], SkPath* path) {
     SkScalar loopT[3];
diff --git a/tests/PathOpsQuadIntersectionTest.cpp b/tests/PathOpsQuadIntersectionTest.cpp
index f5eb32f..e126c63 100644
--- a/tests/PathOpsQuadIntersectionTest.cpp
+++ b/tests/PathOpsQuadIntersectionTest.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsQuadIntersectionTestData.h"
-#include "PathOpsTestCommon.h"
-#include "SkIntersections.h"
-#include "SkPathOpsRect.h"
-#include "SkReduceOrder.h"
-#include "Test.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsRect.h"
+#include "src/pathops/SkReduceOrder.h"
+#include "tests/PathOpsQuadIntersectionTestData.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 static void standardTestCases(skiatest::Reporter* reporter) {
     bool showSkipped = false;
diff --git a/tests/PathOpsQuadIntersectionTestData.cpp b/tests/PathOpsQuadIntersectionTestData.cpp
index 537b509..13b7677 100644
--- a/tests/PathOpsQuadIntersectionTestData.cpp
+++ b/tests/PathOpsQuadIntersectionTestData.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "PathOpsQuadIntersectionTestData.h"
+#include "tests/PathOpsQuadIntersectionTestData.h"
 
 const QuadPts quadraticPoints[] = {
     {{{0, 0}, {1, 0}, {0, 0}}},
diff --git a/tests/PathOpsQuadIntersectionTestData.h b/tests/PathOpsQuadIntersectionTestData.h
index be46a33..6255922 100644
--- a/tests/PathOpsQuadIntersectionTestData.h
+++ b/tests/PathOpsQuadIntersectionTestData.h
@@ -4,7 +4,7 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
+#include "tests/PathOpsTestCommon.h"
 
 extern const QuadPts quadraticLines[];
 extern const QuadPts quadraticPoints[];
diff --git a/tests/PathOpsQuadLineIntersectionTest.cpp b/tests/PathOpsQuadLineIntersectionTest.cpp
index 5bbd845..0bef7d3 100644
--- a/tests/PathOpsQuadLineIntersectionTest.cpp
+++ b/tests/PathOpsQuadLineIntersectionTest.cpp
@@ -4,13 +4,13 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsExtendedTest.h"
-#include "PathOpsTestCommon.h"
-#include "SkIntersections.h"
-#include "SkPathOpsLine.h"
-#include "SkPathOpsQuad.h"
-#include "SkReduceOrder.h"
-#include "Test.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkReduceOrder.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 #include <utility>
 
diff --git a/tests/PathOpsQuadLineIntersectionThreadedTest.cpp b/tests/PathOpsQuadLineIntersectionThreadedTest.cpp
index c615894..bc2a516 100644
--- a/tests/PathOpsQuadLineIntersectionThreadedTest.cpp
+++ b/tests/PathOpsQuadLineIntersectionThreadedTest.cpp
@@ -4,14 +4,14 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsExtendedTest.h"
-#include "PathOpsTestCommon.h"
-#include "PathOpsThreadedCommon.h"
-#include "SkIntersections.h"
-#include "SkPathOpsLine.h"
-#include "SkPathOpsQuad.h"
-#include "SkReduceOrder.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkReduceOrder.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/PathOpsThreadedCommon.h"
 
 #include <utility>
 
diff --git a/tests/PathOpsQuadReduceOrderTest.cpp b/tests/PathOpsQuadReduceOrderTest.cpp
index 4f62026..0f0e334 100644
--- a/tests/PathOpsQuadReduceOrderTest.cpp
+++ b/tests/PathOpsQuadReduceOrderTest.cpp
@@ -4,11 +4,11 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsQuadIntersectionTestData.h"
-#include "SkIntersections.h"
-#include "SkPathOpsRect.h"
-#include "SkReduceOrder.h"
-#include "Test.h"
+#include "src/pathops/SkIntersections.h"
+#include "src/pathops/SkPathOpsRect.h"
+#include "src/pathops/SkReduceOrder.h"
+#include "tests/PathOpsQuadIntersectionTestData.h"
+#include "tests/Test.h"
 
 static const QuadPts testSet[] = {
     {{{1, 1}, {2, 2}, {1, 1.000003}}},
diff --git a/tests/PathOpsSimplifyDegenerateThreadedTest.cpp b/tests/PathOpsSimplifyDegenerateThreadedTest.cpp
index 3f49718..cf36924 100644
--- a/tests/PathOpsSimplifyDegenerateThreadedTest.cpp
+++ b/tests/PathOpsSimplifyDegenerateThreadedTest.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsExtendedTest.h"
-#include "PathOpsThreadedCommon.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsThreadedCommon.h"
 
 static void testSimplifyDegeneratesMain(PathOpsThreadState* data) {
     SkASSERT(data);
diff --git a/tests/PathOpsSimplifyFailTest.cpp b/tests/PathOpsSimplifyFailTest.cpp
index e50d19e..6e7c650 100644
--- a/tests/PathOpsSimplifyFailTest.cpp
+++ b/tests/PathOpsSimplifyFailTest.cpp
@@ -4,11 +4,11 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsExtendedTest.h"
-#include "SkPath.h"
-#include "SkPathOps.h"
-#include "SkPoint.h"
-#include "Test.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint.h"
+#include "include/pathops/SkPathOps.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/Test.h"
 
 static const SkPoint nonFinitePts[] = {
     { SK_ScalarInfinity, 0 },
diff --git a/tests/PathOpsSimplifyQuadThreadedTest.cpp b/tests/PathOpsSimplifyQuadThreadedTest.cpp
index 55dc07b..fc5f646 100644
--- a/tests/PathOpsSimplifyQuadThreadedTest.cpp
+++ b/tests/PathOpsSimplifyQuadThreadedTest.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsExtendedTest.h"
-#include "PathOpsThreadedCommon.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsThreadedCommon.h"
 
 static int quadTest = 66;
 
diff --git a/tests/PathOpsSimplifyQuadralateralsThreadedTest.cpp b/tests/PathOpsSimplifyQuadralateralsThreadedTest.cpp
index 6133042..2cfca49 100644
--- a/tests/PathOpsSimplifyQuadralateralsThreadedTest.cpp
+++ b/tests/PathOpsSimplifyQuadralateralsThreadedTest.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsExtendedTest.h"
-#include "PathOpsThreadedCommon.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsThreadedCommon.h"
 
 static int loopNo = 1;
 
diff --git a/tests/PathOpsSimplifyRectThreadedTest.cpp b/tests/PathOpsSimplifyRectThreadedTest.cpp
index d7c40b1..e3b58a3 100644
--- a/tests/PathOpsSimplifyRectThreadedTest.cpp
+++ b/tests/PathOpsSimplifyRectThreadedTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "PathOpsExtendedTest.h"
-#include "PathOpsThreadedCommon.h"
-#include "SkMacros.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "include/private/SkMacros.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsThreadedCommon.h"
 
 // four rects, of four sizes
 // for 3 smaller sizes, tall, wide
diff --git a/tests/PathOpsSimplifyTest.cpp b/tests/PathOpsSimplifyTest.cpp
index b0a1110..e95a902 100644
--- a/tests/PathOpsSimplifyTest.cpp
+++ b/tests/PathOpsSimplifyTest.cpp
@@ -4,7 +4,7 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsExtendedTest.h"
+#include "tests/PathOpsExtendedTest.h"
 
 #define TEST(name) { name, #name }
 
diff --git a/tests/PathOpsSimplifyTrianglesThreadedTest.cpp b/tests/PathOpsSimplifyTrianglesThreadedTest.cpp
index 372b667..52f0a84 100644
--- a/tests/PathOpsSimplifyTrianglesThreadedTest.cpp
+++ b/tests/PathOpsSimplifyTrianglesThreadedTest.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsExtendedTest.h"
-#include "PathOpsThreadedCommon.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsThreadedCommon.h"
 
 static void testSimplifyTrianglesMain(PathOpsThreadState* data) {
     SkASSERT(data);
diff --git a/tests/PathOpsSkpTest.cpp b/tests/PathOpsSkpTest.cpp
index c89b408..efbe0e5 100644
--- a/tests/PathOpsSkpTest.cpp
+++ b/tests/PathOpsSkpTest.cpp
@@ -4,7 +4,7 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsExtendedTest.h"
+#include "tests/PathOpsExtendedTest.h"
 
 #define TEST(name) { name, #name }
 
diff --git a/tests/PathOpsTSectDebug.h b/tests/PathOpsTSectDebug.h
index 7467d3e..c2224d5 100644
--- a/tests/PathOpsTSectDebug.h
+++ b/tests/PathOpsTSectDebug.h
@@ -7,7 +7,7 @@
 #ifndef PathOpsTSectDebug_DEFINED
 #define PathOpsTSectDebug_DEFINED
 
-#include "SkPathOpsTSect.h"
+#include "src/pathops/SkPathOpsTSect.h"
 
 
 #endif  // PathOpsTSectDebug_DEFINED
diff --git a/tests/PathOpsTestCommon.cpp b/tests/PathOpsTestCommon.cpp
index c067d1d..4d7ee1c 100644
--- a/tests/PathOpsTestCommon.cpp
+++ b/tests/PathOpsTestCommon.cpp
@@ -4,15 +4,15 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
-#include "SkPathOpsBounds.h"
-#include "SkPathOpsConic.h"
-#include "SkPathOpsCubic.h"
-#include "SkPathOpsLine.h"
-#include "SkPathOpsQuad.h"
-#include "SkPathOpsTSect.h"
-#include "SkReduceOrder.h"
-#include "SkTSort.h"
+#include "src/core/SkTSort.h"
+#include "src/pathops/SkPathOpsBounds.h"
+#include "src/pathops/SkPathOpsConic.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "src/pathops/SkPathOpsLine.h"
+#include "src/pathops/SkPathOpsQuad.h"
+#include "src/pathops/SkPathOpsTSect.h"
+#include "src/pathops/SkReduceOrder.h"
+#include "tests/PathOpsTestCommon.h"
 
 #include <utility>
 
diff --git a/tests/PathOpsTestCommon.h b/tests/PathOpsTestCommon.h
index ba64d93..5b5cd0f 100644
--- a/tests/PathOpsTestCommon.h
+++ b/tests/PathOpsTestCommon.h
@@ -7,8 +7,8 @@
 #ifndef PathOpsTestCommon_DEFINED
 #define PathOpsTestCommon_DEFINED
 
-#include "SkPathOpsQuad.h"
-#include "SkTArray.h"
+#include "include/private/SkTArray.h"
+#include "src/pathops/SkPathOpsQuad.h"
 
 struct SkPathOpsBounds;
 
diff --git a/tests/PathOpsThreadedCommon.cpp b/tests/PathOpsThreadedCommon.cpp
index a1a65b7..8717922 100644
--- a/tests/PathOpsThreadedCommon.cpp
+++ b/tests/PathOpsThreadedCommon.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "PathOpsExtendedTest.h"
-#include "PathOpsThreadedCommon.h"
-#include "SkTaskGroup.h"
+#include "src/core/SkTaskGroup.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsThreadedCommon.h"
 
 PathOpsThreadedTestRunner::~PathOpsThreadedTestRunner() {
     for (int index = 0; index < fRunnables.count(); index++) {
diff --git a/tests/PathOpsThreadedCommon.h b/tests/PathOpsThreadedCommon.h
index 32902c8..4b4c9b8 100644
--- a/tests/PathOpsThreadedCommon.h
+++ b/tests/PathOpsThreadedCommon.h
@@ -7,11 +7,11 @@
 #ifndef PathOpsThreadedCommon_DEFINED
 #define PathOpsThreadedCommon_DEFINED
 
-#include "SkBitmap.h"
-#include "SkGraphics.h"
-#include "SkPath.h"
-#include "SkPathOps.h"
-#include "SkTDArray.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPath.h"
+#include "include/pathops/SkPathOps.h"
+#include "include/private/SkTDArray.h"
 
 #include <string>
 
diff --git a/tests/PathOpsThreeWayTest.cpp b/tests/PathOpsThreeWayTest.cpp
index b86ff65..0a4127b 100644
--- a/tests/PathOpsThreeWayTest.cpp
+++ b/tests/PathOpsThreeWayTest.cpp
@@ -4,10 +4,10 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
-#include "SkIntersections.h"
-#include "SkTDArray.h"
-#include "Test.h"
+#include "include/private/SkTDArray.h"
+#include "src/pathops/SkIntersections.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 // check intersections for consistency
 
diff --git a/tests/PathOpsTigerTest.cpp b/tests/PathOpsTigerTest.cpp
index 99af9b9..afcac8b 100644
--- a/tests/PathOpsTigerTest.cpp
+++ b/tests/PathOpsTigerTest.cpp
@@ -4,9 +4,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsDebug.h"
-#include "PathOpsExtendedTest.h"
-#include "PathOpsThreadedCommon.h"
+#include "tests/PathOpsDebug.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsThreadedCommon.h"
 
 #include <atomic>
 
@@ -182,7 +182,7 @@
 testSimplify(reporter, path, testName.c_str());
 }
 
-#include "SkRandom.h"
+#include "include/utils/SkRandom.h"
 
 static void tiger8a_h_1(skiatest::Reporter* reporter, const char* ) {
     uint64_t testlines = 0x0000000000002008;  // best so far: 0x0000001d14c14bb1;
diff --git a/tests/PathOpsTightBoundsTest.cpp b/tests/PathOpsTightBoundsTest.cpp
index a2e7bca..2af11be 100644
--- a/tests/PathOpsTightBoundsTest.cpp
+++ b/tests/PathOpsTightBoundsTest.cpp
@@ -4,12 +4,12 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsExtendedTest.h"
-#include "PathOpsThreadedCommon.h"
-#include "SkCanvas.h"
-#include "SkRandom.h"
-#include "SkTSort.h"
-#include "Test.h"
+#include "include/core/SkCanvas.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkTSort.h"
+#include "tests/PathOpsExtendedTest.h"
+#include "tests/PathOpsThreadedCommon.h"
+#include "tests/Test.h"
 
 static void testTightBoundsLines(PathOpsThreadState* data) {
     SkRandom ran;
diff --git a/tests/PathOpsTypesTest.cpp b/tests/PathOpsTypesTest.cpp
index a3b051e..e513c95 100644
--- a/tests/PathOpsTypesTest.cpp
+++ b/tests/PathOpsTypesTest.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "PathOpsTestCommon.h"
-#include "Test.h"
+#include "tests/PathOpsTestCommon.h"
+#include "tests/Test.h"
 
 static const double roughlyTests[][2] = {
     {5.0402503619650929e-005, 4.3178054475078825e-005}
diff --git a/tests/PathRendererCacheTests.cpp b/tests/PathRendererCacheTests.cpp
index b02517c..ae59b55 100644
--- a/tests/PathRendererCacheTests.cpp
+++ b/tests/PathRendererCacheTests.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "GrClip.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrResourceCache.h"
-#include "GrShape.h"
-#include "GrSoftwarePathRenderer.h"
-#include "GrStyle.h"
-#include "SkPath.h"
-#include "effects/GrPorterDuffXferProcessor.h"
-#include "ops/GrTessellatingPathRenderer.h"
+#include "include/core/SkPath.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrResourceCache.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/GrSoftwarePathRenderer.h"
+#include "src/gpu/GrStyle.h"
+#include "src/gpu/effects/GrPorterDuffXferProcessor.h"
+#include "src/gpu/ops/GrTessellatingPathRenderer.h"
 
 static SkPath create_concave_path() {
     SkPath path;
diff --git a/tests/PathTest.cpp b/tests/PathTest.cpp
index a1e170c..beaafd0 100644
--- a/tests/PathTest.cpp
+++ b/tests/PathTest.cpp
@@ -5,26 +5,26 @@
  * found in the LICENSE file.
  */
 
-#include "SkAutoMalloc.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkGeometry.h"
-#include "SkNullCanvas.h"
-#include "SkPaint.h"
-#include "SkParse.h"
-#include "SkParsePath.h"
-#include "SkPathEffect.h"
-#include "SkPathPriv.h"
-#include "SkRRect.h"
-#include "SkRandom.h"
-#include "SkReader32.h"
-#include "SkSize.h"
-#include "SkStream.h"
-#include "SkStrokeRec.h"
-#include "SkSurface.h"
-#include "SkTo.h"
-#include "SkWriter32.h"
-#include "Test.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkStrokeRec.h"
+#include "include/core/SkSurface.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkNullCanvas.h"
+#include "include/utils/SkParse.h"
+#include "include/utils/SkParsePath.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkPathPriv.h"
+#include "src/core/SkReader32.h"
+#include "src/core/SkWriter32.h"
+#include "tests/Test.h"
 
 #include <cmath>
 #include <utility>
@@ -733,7 +733,7 @@
 #endif
 }
 
-#include "SkSurface.h"
+#include "include/core/SkSurface.h"
 static void test_fuzz_crbug_627414(skiatest::Reporter* reporter) {
     SkPath path;
     path.moveTo(0, 0);
@@ -4606,7 +4606,7 @@
     test_interp(reporter);
 }
 
-#include "SkSurface.h"
+#include "include/core/SkSurface.h"
 DEF_TEST(PathBigCubic, reporter) {
     SkPath path;
     path.moveTo(SkBits2Float(0x00000000), SkBits2Float(0x00000000));  // 0, 0
@@ -4837,7 +4837,7 @@
     }
 }
 
-#include "SkPathOps.h"
+#include "include/pathops/SkPathOps.h"
 DEF_TEST(path_tight_bounds, reporter) {
     SkRandom rand;
 
@@ -5202,7 +5202,7 @@
     }
 }
 
-#include "SkVertices.h"
+#include "include/core/SkVertices.h"
 static void draw_triangle(SkCanvas* canvas, const SkPoint pts[]) {
     // draw in different ways, looking for an assert
 
diff --git a/tests/PictureBBHTest.cpp b/tests/PictureBBHTest.cpp
index da8543c..c80eee5 100644
--- a/tests/PictureBBHTest.cpp
+++ b/tests/PictureBBHTest.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkBBoxHierarchy.h"
-#include "SkPaint.h"
-#include "SkPicture.h"
-#include "SkPictureRecorder.h"
-#include "SkRectPriv.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "src/core/SkBBoxHierarchy.h"
+#include "src/core/SkRectPriv.h"
 
-#include "Test.h"
+#include "tests/Test.h"
 
 class PictureBBHTestBase {
 public:
diff --git a/tests/PictureShaderTest.cpp b/tests/PictureShaderTest.cpp
index 6970ffe..1698724 100644
--- a/tests/PictureShaderTest.cpp
+++ b/tests/PictureShaderTest.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkPicture.h"
-#include "SkPictureRecorder.h"
-#include "SkPictureShader.h"
-#include "SkShader.h"
-#include "SkSurface.h"
-#include "Test.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSurface.h"
+#include "src/shaders/SkPictureShader.h"
+#include "tests/Test.h"
 
 // Test that the SkPictureShader cache is purged on shader deletion.
 DEF_TEST(PictureShader_caching, reporter) {
diff --git a/tests/PictureTest.cpp b/tests/PictureTest.cpp
index 068189f..e851cfb 100644
--- a/tests/PictureTest.cpp
+++ b/tests/PictureTest.cpp
@@ -5,34 +5,34 @@
  * found in the LICENSE file.
  */
 
-#include "SkBBHFactory.h"
-#include "SkBBoxHierarchy.h"
-#include "SkBigPicture.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkClipOp.h"
-#include "SkClipOpPriv.h"
-#include "SkColor.h"
-#include "SkData.h"
-#include "SkFontStyle.h"
-#include "SkImageInfo.h"
-#include "SkMatrix.h"
-#include "SkMiniRecorder.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPicturePriv.h"
-#include "SkPictureRecorder.h"
-#include "SkPixelRef.h"
-#include "SkRandom.h"
-#include "SkRect.h"
-#include "SkRectPriv.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkShader.h"
-#include "SkStream.h"
-#include "SkTypeface.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkBBHFactory.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkClipOp.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkData.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkPixelRef.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
+#include "include/core/SkTypes.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkBBoxHierarchy.h"
+#include "src/core/SkBigPicture.h"
+#include "src/core/SkClipOpPriv.h"
+#include "src/core/SkMiniRecorder.h"
+#include "src/core/SkPicturePriv.h"
+#include "src/core/SkRectPriv.h"
+#include "tests/Test.h"
 
 #include <memory>
 
diff --git a/tests/PinnedImageTest.cpp b/tests/PinnedImageTest.cpp
index 00720a5..6ec2bb0 100644
--- a/tests/PinnedImageTest.cpp
+++ b/tests/PinnedImageTest.cpp
@@ -7,15 +7,15 @@
 
 // This is a GPU-backend specific test.
 
-#include "Test.h"
+#include "tests/Test.h"
 
 using namespace sk_gpu_test;
 
-#include "GrContextFactory.h"
+#include "tools/gpu/GrContextFactory.h"
 
-#include "SkCanvas.h"
-#include "SkImagePriv.h"
-#include "SkSurface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "src/core/SkImagePriv.h"
 
 static bool surface_is_expected_color(SkSurface* surf, const SkImageInfo& ii, SkColor color) {
     SkBitmap bm;
diff --git a/tests/PixelRefTest.cpp b/tests/PixelRefTest.cpp
index c978d81..734c952 100644
--- a/tests/PixelRefTest.cpp
+++ b/tests/PixelRefTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "SkMallocPixelRef.h"
-#include "SkPixelRef.h"
+#include "include/core/SkMallocPixelRef.h"
+#include "include/core/SkPixelRef.h"
 
 static void decrement_counter_proc(void* pixels, void* ctx) {
     int* counter = (int*)ctx;
diff --git a/tests/Point3Test.cpp b/tests/Point3Test.cpp
index d131007..9a20a04 100644
--- a/tests/Point3Test.cpp
+++ b/tests/Point3Test.cpp
@@ -7,9 +7,9 @@
 
 // Unit tests for src/core/SkPoint3.cpp and its header
 
-#include "SkPoint3.h"
-#include "SkRandom.h"
-#include "Test.h"
+#include "include/core/SkPoint3.h"
+#include "include/utils/SkRandom.h"
+#include "tests/Test.h"
 
 static void test_eq_ops(skiatest::Reporter* reporter) {
     const SkPoint3 p0 = SkPoint3::Make(0, 0, 0);
diff --git a/tests/PointTest.cpp b/tests/PointTest.cpp
index 23729b5..ea01ad0 100644
--- a/tests/PointTest.cpp
+++ b/tests/PointTest.cpp
@@ -6,9 +6,9 @@
  */
 // Unit tests for src/core/SkPoint.cpp and its header
 
-#include "SkPointPriv.h"
-#include "SkRect.h"
-#include "Test.h"
+#include "include/core/SkRect.h"
+#include "src/core/SkPointPriv.h"
+#include "tests/Test.h"
 
 static void test_casts(skiatest::Reporter* reporter) {
     SkPoint p = { 0, 0 };
diff --git a/tests/PolyUtilsTest.cpp b/tests/PolyUtilsTest.cpp
index 837443e..8535157 100644
--- a/tests/PolyUtilsTest.cpp
+++ b/tests/PolyUtilsTest.cpp
@@ -4,8 +4,8 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Test.h"
-#include "SkPolyUtils.h"
+#include "src/utils/SkPolyUtils.h"
+#include "tests/Test.h"
 
 DEF_TEST(PolyUtils, reporter) {
 
diff --git a/tests/PremulAlphaRoundTripTest.cpp b/tests/PremulAlphaRoundTripTest.cpp
index 3c26df5..168ea01 100644
--- a/tests/PremulAlphaRoundTripTest.cpp
+++ b/tests/PremulAlphaRoundTripTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkSurface.h"
-#include "Test.h"
-#include "ToolUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "tests/Test.h"
+#include "tools/ToolUtils.h"
 
-#include "GrContext.h"
+#include "include/gpu/GrContext.h"
 
 static uint32_t pack_unpremul_rgba(SkColor c) {
     uint32_t packed;
diff --git a/tests/PrimitiveProcessorTest.cpp b/tests/PrimitiveProcessorTest.cpp
index 38b3270..ef4d102 100644
--- a/tests/PrimitiveProcessorTest.cpp
+++ b/tests/PrimitiveProcessorTest.cpp
@@ -7,23 +7,23 @@
 
 // This is a GPU-backend specific test. It relies on static intializers to work
 
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkTypes.h"
+#include "tests/Test.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGeometryProcessor.h"
-#include "GrGpu.h"
-#include "GrMemoryPool.h"
-#include "GrOpFlushState.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "SkPointPriv.h"
-#include "SkString.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "glsl/GrGLSLGeometryProcessor.h"
-#include "glsl/GrGLSLVarying.h"
-#include "ops/GrMeshDrawOp.h"
+#include "include/core/SkString.h"
+#include "include/gpu/GrContext.h"
+#include "src/core/SkPointPriv.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGeometryProcessor.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrOpFlushState.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
+#include "src/gpu/glsl/GrGLSLVarying.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
 
 namespace {
 class Op : public GrMeshDrawOp {
diff --git a/tests/ProcessorTest.cpp b/tests/ProcessorTest.cpp
index 4fd7fea..8068701 100644
--- a/tests/ProcessorTest.cpp
+++ b/tests/ProcessorTest.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkTypes.h"
+#include "tests/Test.h"
 
-#include "GrClip.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpuResource.h"
-#include "GrMemoryPool.h"
-#include "GrProxyProvider.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "GrResourceProvider.h"
-#include "glsl/GrGLSLFragmentProcessor.h"
-#include "glsl/GrGLSLFragmentShaderBuilder.h"
-#include "ops/GrFillRectOp.h"
-#include "ops/GrMeshDrawOp.h"
-#include "TestUtils.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrGpuResource.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
+#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
+#include "src/gpu/ops/GrFillRectOp.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
+#include "tests/TestUtils.h"
 
 #include <atomic>
 #include <random>
@@ -230,7 +230,7 @@
 // This test uses the random GrFragmentProcessor test factory, which relies on static initializers.
 #if SK_ALLOW_STATIC_GLOBAL_INITIALIZERS
 
-#include "CommandLineFlags.h"
+#include "tools/flags/CommandLineFlags.h"
 static DEFINE_bool(randomProcessorTest, false,
                    "Use non-deterministic seed for random processor tests?");
 static DEFINE_int(processorSeed, 0,
diff --git a/tests/PromiseImageTest.cpp b/tests/PromiseImageTest.cpp
index 89bcefa..7aaf84c 100644
--- a/tests/PromiseImageTest.cpp
+++ b/tests/PromiseImageTest.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "GrBackendSurface.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrTexture.h"
-#include "SkImage_Gpu.h"
-#include "SkColorFilter.h"
-#include "SkPromiseImageTexture.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkPromiseImageTexture.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/image/SkImage_Gpu.h"
 
 using namespace sk_gpu_test;
 
diff --git a/tests/ProxyConversionTest.cpp b/tests/ProxyConversionTest.cpp
index 58ba26b..3573d19 100644
--- a/tests/ProxyConversionTest.cpp
+++ b/tests/ProxyConversionTest.cpp
@@ -7,17 +7,17 @@
 
 // This is a GPU-backend specific test.
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "GrBackendSurface.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrProxyProvider.h"
-#include "GrRenderTarget.h"
-#include "GrRenderTargetProxy.h"
-#include "GrSurfaceProxy.h"
-#include "GrTexture.h"
-#include "GrTextureProxy.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrRenderTargetProxy.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrProxyProvider.h"
 
 static sk_sp<GrSurfaceProxy> make_wrapped_rt(GrProxyProvider* provider,
                                              GrGpu* gpu,
diff --git a/tests/ProxyRefTest.cpp b/tests/ProxyRefTest.cpp
index 90aac0c..3358079 100644
--- a/tests/ProxyRefTest.cpp
+++ b/tests/ProxyRefTest.cpp
@@ -7,16 +7,16 @@
 
 // This is a GPU-backend specific test.
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "GrContextPriv.h"
-#include "GrPendingIOResource.h"
-#include "GrProxyProvider.h"
-#include "GrRenderTargetProxy.h"
-#include "GrResourceProvider.h"
-#include "GrSurfaceProxy.h"
-#include "GrTexture.h"
-#include "GrTextureProxy.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrRenderTargetProxy.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrPendingIOResource.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrResourceProvider.h"
 
 int32_t GrIORefProxy::getBackingRefCnt_TestOnly() const {
     if (fTarget) {
diff --git a/tests/ProxyTest.cpp b/tests/ProxyTest.cpp
index c65d221..bd646e8 100644
--- a/tests/ProxyTest.cpp
+++ b/tests/ProxyTest.cpp
@@ -7,20 +7,20 @@
 
 // This is a GPU-backend specific test.
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "GrBackendSurface.h"
-#include "GrContextPriv.h"
-#include "GrProxyProvider.h"
-#include "GrRenderTargetPriv.h"
-#include "GrRenderTargetProxy.h"
-#include "GrResourceProvider.h"
-#include "GrSurfacePriv.h"
-#include "GrSurfaceProxyPriv.h"
-#include "GrTexture.h"
-#include "GrTextureProxy.h"
-#include "SkGr.h"
-#include "gl/GrGLDefines.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrRenderTargetProxy.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSurfacePriv.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/gl/GrGLDefines.h"
 
 // Check that the surface proxy's member vars are set as expected
 static void check_surface(skiatest::Reporter* reporter,
diff --git a/tests/QuickRejectTest.cpp b/tests/QuickRejectTest.cpp
index 4f5ad8f..580ba78 100644
--- a/tests/QuickRejectTest.cpp
+++ b/tests/QuickRejectTest.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkArenaAlloc.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkDrawLooper.h"
-#include "SkLightingImageFilter.h"
-#include "SkPoint3.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkDrawLooper.h"
+#include "include/core/SkPoint3.h"
+#include "include/core/SkTypes.h"
+#include "include/effects/SkLightingImageFilter.h"
+#include "include/private/SkArenaAlloc.h"
+#include "tests/Test.h"
 
 /*
  *  Subclass of looper that just draws once, with an offset in X.
@@ -166,8 +166,8 @@
     canvas.quickReject(SkRect::MakeWH(100.0f, 100.0f));
 }
 
-#include "SkLayerDrawLooper.h"
-#include "SkSurface.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkLayerDrawLooper.h"
 DEF_TEST(looper_nothingtodraw, reporter) {
     auto surf = SkSurface::MakeRasterN32Premul(20, 20);
 
diff --git a/tests/RRectInPathTest.cpp b/tests/RRectInPathTest.cpp
index 5ad3403..a25ad45 100644
--- a/tests/RRectInPathTest.cpp
+++ b/tests/RRectInPathTest.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkMatrix.h"
-#include "SkPath.h"
-#include "SkPathPriv.h"
-#include "SkRRect.h"
-#include "Test.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "src/core/SkPathPriv.h"
+#include "tests/Test.h"
 
 static SkRRect path_contains_rrect(skiatest::Reporter* reporter, const SkPath& path,
                                    SkPath::Direction* dir, unsigned* start) {
diff --git a/tests/RTreeTest.cpp b/tests/RTreeTest.cpp
index 9b451d1..061e4d3 100644
--- a/tests/RTreeTest.cpp
+++ b/tests/RTreeTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkRTree.h"
-#include "SkRandom.h"
-#include "Test.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkRTree.h"
+#include "tests/Test.h"
 
 static const int NUM_RECTS = 200;
 static const size_t NUM_ITERATIONS = 100;
diff --git a/tests/RandomTest.cpp b/tests/RandomTest.cpp
index 448f073..0e206ee 100644
--- a/tests/RandomTest.cpp
+++ b/tests/RandomTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkRandom.h"
-#include "SkTSort.h"
-#include "Test.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkTSort.h"
+#include "tests/Test.h"
 
 static bool anderson_darling_test(double p[32]) {
     // Min and max Anderson-Darling values allowable for k=32
diff --git a/tests/ReadPixelsTest.cpp b/tests/ReadPixelsTest.cpp
index 46c7d14..316db79 100644
--- a/tests/ReadPixelsTest.cpp
+++ b/tests/ReadPixelsTest.cpp
@@ -6,20 +6,20 @@
  */
 
 #include <initializer_list>
-#include "SkCanvas.h"
-#include "SkColorData.h"
-#include "SkHalf.h"
-#include "SkImageInfoPriv.h"
-#include "SkMathPriv.h"
-#include "SkSurface.h"
-#include "Test.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkHalf.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "src/core/SkMathPriv.h"
+#include "tests/Test.h"
 
-#include "GrContext.h"
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "GrProxyProvider.h"
-#include "ProxyUtils.h"
-#include "SkGr.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/SkGr.h"
+#include "tools/gpu/GrContextFactory.h"
+#include "tools/gpu/ProxyUtils.h"
 
 
 static const int DEV_W = 100, DEV_H = 100;
diff --git a/tests/ReadWriteAlphaTest.cpp b/tests/ReadWriteAlphaTest.cpp
index 826ea9a..2cb39e1 100644
--- a/tests/ReadWriteAlphaTest.cpp
+++ b/tests/ReadWriteAlphaTest.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
 // This test is specific to the GPU backend.
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrProxyProvider.h"
-#include "GrResourceProvider.h"
-#include "GrSurfaceContext.h"
-#include "GrSurfaceProxy.h"
-#include "GrTextureProxy.h"
-#include "ProxyUtils.h"
-#include "SkCanvas.h"
-#include "SkSurface.h"
-#include "SkTo.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "include/private/GrTextureProxy.h"
+#include "include/private/SkTo.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSurfaceContext.h"
+#include "tools/gpu/ProxyUtils.h"
 
 // This was made indivisible by 4 to ensure we test setting GL_PACK_ALIGNMENT properly.
 static const int X_SIZE = 13;
diff --git a/tests/Reader32Test.cpp b/tests/Reader32Test.cpp
index 301f67c..0aebc9e 100644
--- a/tests/Reader32Test.cpp
+++ b/tests/Reader32Test.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkReader32.h"
-#include "Test.h"
+#include "src/core/SkReader32.h"
+#include "tests/Test.h"
 
 static void assert_eof(skiatest::Reporter* reporter, const SkReader32& reader) {
     REPORTER_ASSERT(reporter, reader.eof());
diff --git a/tests/RecordDrawTest.cpp b/tests/RecordDrawTest.cpp
index 7a82aeb..8d579bc 100644
--- a/tests/RecordDrawTest.cpp
+++ b/tests/RecordDrawTest.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
-#include "RecordTestUtils.h"
+#include "tests/RecordTestUtils.h"
+#include "tests/Test.h"
 
-#include "DebugCanvas.h"
-#include "SkDropShadowImageFilter.h"
-#include "SkImagePriv.h"
-#include "SkRecord.h"
-#include "SkRecordDraw.h"
-#include "SkRecordOpts.h"
-#include "SkRecorder.h"
-#include "SkRecords.h"
-#include "SkSurface.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkDropShadowImageFilter.h"
+#include "src/core/SkImagePriv.h"
+#include "src/core/SkRecord.h"
+#include "src/core/SkRecordDraw.h"
+#include "src/core/SkRecordOpts.h"
+#include "src/core/SkRecorder.h"
+#include "src/core/SkRecords.h"
+#include "tools/debugger/DebugCanvas.h"
 
 static const int W = 1920, H = 1080;
 
diff --git a/tests/RecordOptsTest.cpp b/tests/RecordOptsTest.cpp
index 9037753..cd882cf 100644
--- a/tests/RecordOptsTest.cpp
+++ b/tests/RecordOptsTest.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
-#include "RecordTestUtils.h"
+#include "tests/RecordTestUtils.h"
+#include "tests/Test.h"
 
-#include "SkBlurImageFilter.h"
-#include "SkColorFilter.h"
-#include "SkRecord.h"
-#include "SkRecordOpts.h"
-#include "SkRecorder.h"
-#include "SkRecords.h"
-#include "SkPictureRecorder.h"
-#include "SkPictureImageFilter.h"
-#include "SkSurface.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkBlurImageFilter.h"
+#include "include/effects/SkPictureImageFilter.h"
+#include "src/core/SkRecord.h"
+#include "src/core/SkRecordOpts.h"
+#include "src/core/SkRecorder.h"
+#include "src/core/SkRecords.h"
 
 static const int W = 1920, H = 1080;
 
diff --git a/tests/RecordPatternTest.cpp b/tests/RecordPatternTest.cpp
index 33a0114..816ac3a 100644
--- a/tests/RecordPatternTest.cpp
+++ b/tests/RecordPatternTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "SkRecord.h"
-#include "SkRecordPattern.h"
-#include "SkRecorder.h"
-#include "SkRecords.h"
+#include "src/core/SkRecord.h"
+#include "src/core/SkRecordPattern.h"
+#include "src/core/SkRecorder.h"
+#include "src/core/SkRecords.h"
 
 using namespace SkRecords;
 typedef Pattern<Is<Save>,
diff --git a/tests/RecordTest.cpp b/tests/RecordTest.cpp
index 165532c..f1056c2 100644
--- a/tests/RecordTest.cpp
+++ b/tests/RecordTest.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "RecordTestUtils.h"
-#include "SkBitmap.h"
-#include "SkImageInfo.h"
-#include "SkRecord.h"
-#include "SkRecords.h"
-#include "SkShader.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkShader.h"
+#include "src/core/SkRecord.h"
+#include "src/core/SkRecords.h"
+#include "tests/RecordTestUtils.h"
+#include "tests/Test.h"
 
 #include <new>
 
diff --git a/tests/RecordTestUtils.h b/tests/RecordTestUtils.h
index 853ee21..2984bad 100644
--- a/tests/RecordTestUtils.h
+++ b/tests/RecordTestUtils.h
@@ -8,9 +8,9 @@
 #ifndef RecordTestUtils_DEFINED
 #define RecordTestUtils_DEFINED
 
-#include "SkRecord.h"
-#include "SkRecords.h"
-#include "Test.h"
+#include "src/core/SkRecord.h"
+#include "src/core/SkRecords.h"
+#include "tests/Test.h"
 
 // If the command we're reading is a U, set ptr to it, otherwise set it to nullptr.
 template <typename U>
diff --git a/tests/RecorderTest.cpp b/tests/RecorderTest.cpp
index 3e989e2..987cfbe 100644
--- a/tests/RecorderTest.cpp
+++ b/tests/RecorderTest.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "SkPictureRecorder.h"
-#include "SkRecord.h"
-#include "SkRecorder.h"
-#include "SkRecords.h"
-#include "SkShader.h"
-#include "SkSurface.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSurface.h"
+#include "src/core/SkRecord.h"
+#include "src/core/SkRecorder.h"
+#include "src/core/SkRecords.h"
 
 #define COUNT(T) + 1
 static const int kRecordTypes = SK_RECORD_TYPES(COUNT);
diff --git a/tests/RecordingXfermodeTest.cpp b/tests/RecordingXfermodeTest.cpp
index 41c1469..676198a 100644
--- a/tests/RecordingXfermodeTest.cpp
+++ b/tests/RecordingXfermodeTest.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "../include/core/SkBitmap.h"
-#include "../include/core/SkCanvas.h"
-#include "../include/core/SkPicture.h"
-#include "../include/core/SkStream.h"
-#include "../include/core/SkString.h"
-#include "../include/core/SkPictureRecorder.h"
-#include "../src/core/SkBlendModePriv.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "src/core/SkBlendModePriv.h"
 
 #include <cstring>
 
diff --git a/tests/RectTest.cpp b/tests/RectTest.cpp
index 72adc9a..f9dd6e2 100644
--- a/tests/RectTest.cpp
+++ b/tests/RectTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "SkRect.h"
-#include "SkRectPriv.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRect.h"
+#include "src/core/SkRectPriv.h"
+#include "tests/Test.h"
 
 static bool has_green_pixels(const SkBitmap& bm) {
     for (int j = 0; j < bm.height(); ++j) {
@@ -160,7 +160,7 @@
     REPORTER_ASSERT(reporter, !SkScalarIsFinite(r.height()));
 }
 
-#include "SkSurface.h"
+#include "include/core/SkSurface.h"
 
 // Before the fix, this sequence would trigger a release_assert in the Tiler
 // in SkBitmapDevice.cpp
diff --git a/tests/RectangleTextureTest.cpp b/tests/RectangleTextureTest.cpp
index ce6122a..d429adb 100644
--- a/tests/RectangleTextureTest.cpp
+++ b/tests/RectangleTextureTest.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
-#include "TestUtils.h"
+#include "tests/Test.h"
+#include "tests/TestUtils.h"
 
-#include "GrClip.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrProxyProvider.h"
-#include "GrRenderTargetContext.h"
-#include "GrSurfacePriv.h"
-#include "GrTexturePriv.h"
-#include "GrTextureProxyPriv.h"
-#include "gl/GLTestContext.h"
-#include "gl/GrGLGpu.h"
-#include "gl/GrGLUtil.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfacePriv.h"
+#include "src/gpu/GrTexturePriv.h"
+#include "src/gpu/GrTextureProxyPriv.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLUtil.h"
+#include "tools/gpu/gl/GLTestContext.h"
 
 // skbug.com/5932
 static void test_basic_draw_as_src(skiatest::Reporter* reporter, GrContext* context,
diff --git a/tests/RefCntTest.cpp b/tests/RefCntTest.cpp
index c79e87f..16e96fa 100644
--- a/tests/RefCntTest.cpp
+++ b/tests/RefCntTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkRefCnt.h"
-#include "SkTypes.h"
-#include "SkWeakRefCnt.h"
-#include "Test.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkWeakRefCnt.h"
+#include "tests/Test.h"
 
 #include <thread>
 
diff --git a/tests/RegionTest.cpp b/tests/RegionTest.cpp
index 821c36c..707cd3f 100644
--- a/tests/RegionTest.cpp
+++ b/tests/RegionTest.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkAutoMalloc.h"
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkRegion.h"
-#include "Test.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRegion.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkAutoMalloc.h"
+#include "tests/Test.h"
 
 static void Union(SkRegion* rgn, const SkIRect& rect) {
     rgn->op(rect, SkRegion::kUnion_Op);
diff --git a/tests/RenderTargetContextTest.cpp b/tests/RenderTargetContextTest.cpp
index c93a608..1f0ed4b 100644
--- a/tests/RenderTargetContextTest.cpp
+++ b/tests/RenderTargetContextTest.cpp
@@ -7,14 +7,14 @@
 
 // This is a GPU-backend specific test.
 
-#include "Test.h"
+#include "tests/Test.h"
 
 // MDB TODO: the early instantiation of the renderTargetContext's backing GrRenderTargetProxy
 // mixes this test up. Re-enable once backing GPU resources are distributed by MDB at flush time.
 #if 0
 
-#include "GrTextureProxy.h"
-#include "GrRenderTargetContext.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrRenderTargetContext.h"
 
 static const int kSize = 64;
 
diff --git a/tests/ResourceAllocatorTest.cpp b/tests/ResourceAllocatorTest.cpp
index b40107a..11984f5 100644
--- a/tests/ResourceAllocatorTest.cpp
+++ b/tests/ResourceAllocatorTest.cpp
@@ -5,21 +5,21 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "GrContextPriv.h"
-#include "GrDeinstantiateProxyTracker.h"
-#include "GrGpu.h"
-#include "GrProxyProvider.h"
-#include "GrResourceAllocator.h"
-#include "GrResourceProvider.h"
-#include "GrSurfaceProxyPriv.h"
-#include "GrTexture.h"
-#include "GrTextureProxy.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrDeinstantiateProxyTracker.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrResourceAllocator.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSurfaceProxyPriv.h"
 
-#include "SkSurface.h"
+#include "include/core/SkSurface.h"
 
 struct ProxyParams {
     int             fSize;
diff --git a/tests/ResourceCacheTest.cpp b/tests/ResourceCacheTest.cpp
index 747bf2c..c7bfc72 100644
--- a/tests/ResourceCacheTest.cpp
+++ b/tests/ResourceCacheTest.cpp
@@ -5,26 +5,26 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrContextFactory.h"
-#include "GrGpu.h"
-#include "GrGpuResourceCacheAccess.h"
-#include "GrGpuResourcePriv.h"
-#include "GrProxyProvider.h"
-#include "GrRenderTargetPriv.h"
-#include "GrResourceCache.h"
-#include "GrResourceProvider.h"
-#include "GrTexture.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrGpuResourceCacheAccess.h"
+#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrRenderTargetPriv.h"
+#include "src/gpu/GrResourceCache.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "tools/gpu/GrContextFactory.h"
 
-#include "SkCanvas.h"
-#include "SkGr.h"
-#include "SkMessageBus.h"
-#include "SkMipMap.h"
-#include "SkSurface.h"
-#include "Test.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "include/private/SkMessageBus.h"
+#include "src/core/SkMipMap.h"
+#include "src/gpu/SkGr.h"
+#include "tests/Test.h"
 
 #include <thread>
 
diff --git a/tests/RoundRectTest.cpp b/tests/RoundRectTest.cpp
index f2f1eb8..171dbbb 100644
--- a/tests/RoundRectTest.cpp
+++ b/tests/RoundRectTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkMatrix.h"
-#include "SkPointPriv.h"
-#include "SkRRect.h"
-#include "Test.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkRRect.h"
+#include "src/core/SkPointPriv.h"
+#include "tests/Test.h"
 
 static void test_tricky_radii(skiatest::Reporter* reporter) {
     {
diff --git a/tests/SRGBReadWritePixelsTest.cpp b/tests/SRGBReadWritePixelsTest.cpp
index 54a1193..84f37ff 100644
--- a/tests/SRGBReadWritePixelsTest.cpp
+++ b/tests/SRGBReadWritePixelsTest.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrSurfaceContext.h"
-#include "SkCanvas.h"
-#include "SkGr.h"
-#include "SkSurface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrSurfaceContext.h"
+#include "src/gpu/SkGr.h"
+#include "tests/Test.h"
 
 // using anonymous namespace because these functions are used as template params.
 namespace {
diff --git a/tests/SRGBTest.cpp b/tests/SRGBTest.cpp
index cd0fa59..a2c09d9 100644
--- a/tests/SRGBTest.cpp
+++ b/tests/SRGBTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorSpaceXformSteps.h"
-#include "SkRasterPipeline.h"
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkTypes.h"
+#include "src/core/SkColorSpaceXformSteps.h"
+#include "src/core/SkRasterPipeline.h"
+#include "tests/Test.h"
 
 #include <math.h>
 
diff --git a/tests/SVGDeviceTest.cpp b/tests/SVGDeviceTest.cpp
index 9a99c0f..e9e58e7 100644
--- a/tests/SVGDeviceTest.cpp
+++ b/tests/SVGDeviceTest.cpp
@@ -13,26 +13,26 @@
         }                                                          \
     } while (0)
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "SkData.h"
-#include "SkImage.h"
-#include "SkImageShader.h"
-#include "SkMakeUnique.h"
-#include "SkParse.h"
-#include "SkShader.h"
-#include "SkStream.h"
-#include "SkTo.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkParse.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/shaders/SkImageShader.h"
+#include "tests/Test.h"
 
 #include <string.h>
 
 #ifdef SK_XML
 
-#include "SkDOM.h"
-#include "../src/svg/SkSVGDevice.h"
-#include "SkXMLWriter.h"
+#include "src/svg/SkSVGDevice.h"
+#include "src/xml/SkDOM.h"
+#include "src/xml/SkXMLWriter.h"
 
 static std::unique_ptr<SkCanvas> MakeDOMCanvas(SkDOM* dom) {
     auto svgDevice = SkSVGDevice::Make(SkISize::Make(100, 100),
diff --git a/tests/SafeMathTest.cpp b/tests/SafeMathTest.cpp
index 7f59739..99a16e0 100644
--- a/tests/SafeMathTest.cpp
+++ b/tests/SafeMathTest.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
-#include "SkSafeMath.h"
+#include "src/core/SkSafeMath.h"
+#include "tests/Test.h"
 
 DEF_TEST(SafeMath, r) {
     size_t max = std::numeric_limits<size_t>::max();
diff --git a/tests/SamplePatternDictionaryTest.cpp b/tests/SamplePatternDictionaryTest.cpp
index 66b9b68..3cb7b4c 100644
--- a/tests/SamplePatternDictionaryTest.cpp
+++ b/tests/SamplePatternDictionaryTest.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
-#include "SkPoint.h"
-#include "SkRandom.h"
-#include "Test.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkTypes.h"
+#include "include/utils/SkRandom.h"
+#include "tests/Test.h"
 #include <vector>
 
 #if SK_SUPPORT_GPU
 
-#include "GrSamplePatternDictionary.h"
+#include "src/gpu/GrSamplePatternDictionary.h"
 
 static SkTArray<SkPoint> make_sample_pattern(const std::vector<SkPoint>& sampleLocations) {
     return SkTArray<SkPoint>(sampleLocations.data(), sampleLocations.size());
diff --git a/tests/ScalarTest.cpp b/tests/ScalarTest.cpp
index f2f924e..2209f0d 100644
--- a/tests/ScalarTest.cpp
+++ b/tests/ScalarTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkFloatingPoint.h"
-#include "SkMath.h"
-#include "SkPoint.h"
-#include "SkRandom.h"
-#include "SkRect.h"
-#include "Test.h"
+#include "include/core/SkMath.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/private/SkFloatingPoint.h"
+#include "include/utils/SkRandom.h"
+#include "tests/Test.h"
 
 static void test_roundtoint(skiatest::Reporter* reporter) {
     SkScalar x = 0.49999997f;
diff --git a/tests/ScaleToSidesTest.cpp b/tests/ScaleToSidesTest.cpp
index b56df0d..79d2678 100644
--- a/tests/ScaleToSidesTest.cpp
+++ b/tests/ScaleToSidesTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkScaleToSides.h"
+#include "src/core/SkScaleToSides.h"
 
-#include "Test.h"
+#include "tests/Test.h"
 
 #include <algorithm>
 
diff --git a/tests/SerialProcsTest.cpp b/tests/SerialProcsTest.cpp
index 2e11a0e..fd42de0 100644
--- a/tests/SerialProcsTest.cpp
+++ b/tests/SerialProcsTest.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkImageSource.h"
-#include "SkPicture.h"
-#include "SkPictureRecorder.h"
-#include "SkSerialProcs.h"
-#include "SkSurface.h"
-#include "Test.h"
-#include "ToolUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkSerialProcs.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkImageSource.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
 static sk_sp<SkImage> picture_to_image(sk_sp<SkPicture> pic) {
     SkIRect r = pic->cullRect().round();
diff --git a/tests/SerializationTest.cpp b/tests/SerializationTest.cpp
index ddfe073..724991a 100644
--- a/tests/SerializationTest.cpp
+++ b/tests/SerializationTest.cpp
@@ -5,32 +5,32 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkAnnotationKeys.h"
-#include "SkCanvas.h"
-#include "SkDashPathEffect.h"
-#include "SkFixed.h"
-#include "SkFontDescriptor.h"
-#include "SkImage.h"
-#include "SkImageSource.h"
-#include "SkLightingShader.h"
-#include "SkMakeUnique.h"
-#include "SkMallocPixelRef.h"
-#include "SkMatrixPriv.h"
-#include "SkNormalSource.h"
-#include "SkOSFile.h"
-#include "SkPicturePriv.h"
-#include "SkPictureRecorder.h"
-#include "SkReadBuffer.h"
-#include "SkShaderBase.h"
-#include "SkTableColorFilter.h"
-#include "SkTemplates.h"
-#include "SkTextBlob.h"
-#include "SkTypeface.h"
-#include "SkWriteBuffer.h"
-#include "SkXfermodeImageFilter.h"
-#include "Test.h"
-#include "ToolUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkMallocPixelRef.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "include/effects/SkImageSource.h"
+#include "include/effects/SkTableColorFilter.h"
+#include "include/effects/SkXfermodeImageFilter.h"
+#include "include/private/SkFixed.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkAnnotationKeys.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkMatrixPriv.h"
+#include "src/core/SkNormalSource.h"
+#include "src/core/SkOSFile.h"
+#include "src/core/SkPicturePriv.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkWriteBuffer.h"
+#include "src/shaders/SkLightingShader.h"
+#include "src/shaders/SkShaderBase.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
 
 static const uint32_t kArraySize = 64;
 static const int kBitmapSize = 256;
@@ -631,7 +631,7 @@
 }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
-#include "SkAnnotation.h"
+#include "include/core/SkAnnotation.h"
 
 static sk_sp<SkPicture> copy_picture_via_serialization(SkPicture* src) {
     SkDynamicMemoryWStream wstream;
diff --git a/tests/ShaderOpacityTest.cpp b/tests/ShaderOpacityTest.cpp
index 53f3146..bfdf3e7 100644
--- a/tests/ShaderOpacityTest.cpp
+++ b/tests/ShaderOpacityTest.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkColorShader.h"
-#include "SkGradientShader.h"
-#include "SkShader.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkShader.h"
+#include "include/effects/SkGradientShader.h"
+#include "src/shaders/SkColorShader.h"
+#include "tests/Test.h"
 
 static void test_bitmap(skiatest::Reporter* reporter) {
     SkImageInfo info = SkImageInfo::MakeN32Premul(2, 2);
diff --git a/tests/ShaderTest.cpp b/tests/ShaderTest.cpp
index d2e9379..0320054 100644
--- a/tests/ShaderTest.cpp
+++ b/tests/ShaderTest.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkImage.h"
-#include "SkPerlinNoiseShader.h"
-#include "SkRRect.h"
-#include "SkShader.h"
-#include "SkSurface.h"
-#include "SkData.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkPerlinNoiseShader.h"
+#include "tests/Test.h"
 
 static void check_isaimage(skiatest::Reporter* reporter, SkShader* shader,
                            int expectedW, int expectedH,
diff --git a/tests/ShadowTest.cpp b/tests/ShadowTest.cpp
index f7522ba..ff4def4 100644
--- a/tests/ShadowTest.cpp
+++ b/tests/ShadowTest.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkDrawShadowInfo.h"
-#include "SkPath.h"
-#include "SkShadowTessellator.h"
-#include "SkShadowUtils.h"
-#include "SkVertices.h"
-#include "Test.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkVertices.h"
+#include "include/utils/SkShadowUtils.h"
+#include "src/core/SkDrawShadowInfo.h"
+#include "src/utils/SkShadowTessellator.h"
+#include "tests/Test.h"
 
 enum ExpectVerts {
     kDont_ExpectVerts,
diff --git a/tests/SizeTest.cpp b/tests/SizeTest.cpp
index 9dccdeb..100da02 100644
--- a/tests/SizeTest.cpp
+++ b/tests/SizeTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkSize.h"
+#include "include/core/SkSize.h"
 
-#include "Test.h"
+#include "tests/Test.h"
 
 DEF_TEST(ISize, reporter) {
     SkISize  a, b;
diff --git a/tests/SkBase64Test.cpp b/tests/SkBase64Test.cpp
index 39bc1c2..2820e37 100644
--- a/tests/SkBase64Test.cpp
+++ b/tests/SkBase64Test.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkBase64.h"
-#include "SkTo.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkBase64.h"
 
-#include "Test.h"
+#include "tests/Test.h"
 
 DEF_TEST(SkBase64, reporter) {
     char all[256];
diff --git a/tests/SkColor4fTest.cpp b/tests/SkColor4fTest.cpp
index 3d9fd02..302d306 100644
--- a/tests/SkColor4fTest.cpp
+++ b/tests/SkColor4fTest.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkColor.h"
-#include "Test.h"
+#include "include/core/SkColor.h"
+#include "tests/Test.h"
 
 DEF_TEST(SkColor4f_FromColor, reporter) {
     const struct {
diff --git a/tests/SkColorSpaceXformStepsTest.cpp b/tests/SkColorSpaceXformStepsTest.cpp
index 6b15385..c3308ab 100644
--- a/tests/SkColorSpaceXformStepsTest.cpp
+++ b/tests/SkColorSpaceXformStepsTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorSpacePriv.h"
-#include "SkColorSpaceXformSteps.h"
-#include "Test.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkColorSpaceXformSteps.h"
+#include "tests/Test.h"
 
 DEF_TEST(SkColorSpaceXformSteps, r) {
     auto srgb   = SkColorSpace::MakeSRGB(),
diff --git a/tests/SkDOMTest.cpp b/tests/SkDOMTest.cpp
index 6ea4e78..b6b9f5f 100644
--- a/tests/SkDOMTest.cpp
+++ b/tests/SkDOMTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkStream.h"
-#include "Test.h"
+#include "include/core/SkStream.h"
+#include "tests/Test.h"
 
 #if defined(SK_XML)
 
-#include "SkDOM.h"
+#include "src/xml/SkDOM.h"
 
 static const SkDOM::Node* check_node(skiatest::Reporter* r, const SkDOM& dom,
                                      const SkDOM::Node* node, const char* expectedName,
diff --git a/tests/SkFixed15Test.cpp b/tests/SkFixed15Test.cpp
index df957b1..f5a57c9 100644
--- a/tests/SkFixed15Test.cpp
+++ b/tests/SkFixed15Test.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
-#include "SkFixed15.h"
+#include "src/core/SkFixed15.h"
+#include "tests/Test.h"
 
 DEF_TEST(SkFixed15, r) {
     // For all v, v*0 == 0, v*1 == v.
diff --git a/tests/SkGaussFilterTest.cpp b/tests/SkGaussFilterTest.cpp
index b04b4af..f065d8f 100644
--- a/tests/SkGaussFilterTest.cpp
+++ b/tests/SkGaussFilterTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkGaussFilter.h"
+#include "src/core/SkGaussFilter.h"
 
 #include <cmath>
 #include <tuple>
 #include <vector>
-#include "Test.h"
+#include "tests/Test.h"
 
 // one part in a million
 static constexpr double kEpsilon = 0.000001;
diff --git a/tests/SkImageTest.cpp b/tests/SkImageTest.cpp
index 426883b..f539726 100644
--- a/tests/SkImageTest.cpp
+++ b/tests/SkImageTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkImagePriv.h"
-#include "Test.h"
+#include "include/core/SkCanvas.h"
+#include "src/core/SkImagePriv.h"
+#include "tests/Test.h"
 
 static const int gWidth = 20;
 static const int gHeight = 20;
diff --git a/tests/SkLiteDLTest.cpp b/tests/SkLiteDLTest.cpp
index e64e5aa..a9bc253 100644
--- a/tests/SkLiteDLTest.cpp
+++ b/tests/SkLiteDLTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkLiteDL.h"
-#include "SkLiteRecorder.h"
-#include "SkRSXform.h"
-#include "Test.h"
+#include "include/core/SkRSXform.h"
+#include "src/core/SkLiteDL.h"
+#include "src/core/SkLiteRecorder.h"
+#include "tests/Test.h"
 
 DEF_TEST(SkLiteDL_basics, r) {
     SkLiteDL p;
diff --git a/tests/SkNxTest.cpp b/tests/SkNxTest.cpp
index f210974..b6b0085 100644
--- a/tests/SkNxTest.cpp
+++ b/tests/SkNxTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Sk4px.h"
-#include "SkNx.h"
-#include "SkRandom.h"
-#include "Test.h"
+#include "include/private/SkNx.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/Sk4px.h"
+#include "tests/Test.h"
 
 template <int N>
 static void test_Nf(skiatest::Reporter* r) {
@@ -281,7 +281,7 @@
     REPORTER_ASSERT(r, f[3] ==  0.0f);
 }
 
-#include "SkRandom.h"
+#include "include/utils/SkRandom.h"
 
 DEF_TEST(SkNx_u16_float, r) {
     {
diff --git a/tests/SkPEGTest.cpp b/tests/SkPEGTest.cpp
index 2b51dfd..db43f5c 100644
--- a/tests/SkPEGTest.cpp
+++ b/tests/SkPEGTest.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
 #if defined(SK_XML)
-#include "SkPEG.h"
-#include "SkTo.h"
+#include "experimental/svg/model/SkPEG.h"
+#include "include/private/SkTo.h"
 
 using namespace skpeg;
 
diff --git a/tests/SkRasterPipelineTest.cpp b/tests/SkRasterPipelineTest.cpp
index 4568c07..0c6354b 100644
--- a/tests/SkRasterPipelineTest.cpp
+++ b/tests/SkRasterPipelineTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkHalf.h"
-#include "SkRasterPipeline.h"
-#include "SkTo.h"
-#include "Test.h"
+#include "include/private/SkHalf.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkRasterPipeline.h"
+#include "tests/Test.h"
 
 DEF_TEST(SkRasterPipeline, r) {
     // Build and run a simple pipeline to exercise SkRasterPipeline,
diff --git a/tests/SkRemoteGlyphCacheTest.cpp b/tests/SkRemoteGlyphCacheTest.cpp
index 7e6cdec..88d577a 100644
--- a/tests/SkRemoteGlyphCacheTest.cpp
+++ b/tests/SkRemoteGlyphCacheTest.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkDraw.h"
-#include "SkGraphics.h"
-#include "SkMutex.h"
-#include "SkRemoteGlyphCache.h"
-#include "SkRemoteGlyphCacheImpl.h"
-#include "SkStrike.h"
-#include "SkStrikeCache.h"
-#include "SkSurface.h"
-#include "SkSurfacePriv.h"
-#include "SkTextBlob.h"
-#include "SkTypeface_remote.h"
-#include "Test.h"
-#include "TestEmptyTypeface.h"
-#include "ToolUtils.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTextBlob.h"
+#include "include/private/SkMutex.h"
+#include "src/core/SkDraw.h"
+#include "src/core/SkRemoteGlyphCache.h"
+#include "src/core/SkRemoteGlyphCacheImpl.h"
+#include "src/core/SkStrike.h"
+#include "src/core/SkStrikeCache.h"
+#include "src/core/SkSurfacePriv.h"
+#include "src/core/SkTypeface_remote.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
+#include "tools/fonts/TestEmptyTypeface.h"
 
-#include "text/GrTextContext.h"
+#include "src/gpu/text/GrTextContext.h"
 
 class DiscardableManager : public SkStrikeServer::DiscardableHandleManager,
                            public SkStrikeClient::DiscardableHandleManager {
diff --git a/tests/SkResourceCacheTest.cpp b/tests/SkResourceCacheTest.cpp
index 9701ae1..28d7616 100644
--- a/tests/SkResourceCacheTest.cpp
+++ b/tests/SkResourceCacheTest.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
-#include "SkBitmapCache.h"
-#include "SkBitmapProvider.h"
-#include "SkCanvas.h"
-#include "SkDiscardableMemoryPool.h"
-#include "SkGraphics.h"
-#include "SkMakeUnique.h"
-#include "SkMipMap.h"
-#include "SkPicture.h"
-#include "SkPictureRecorder.h"
-#include "SkResourceCache.h"
-#include "SkSurface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkSurface.h"
+#include "src/core/SkBitmapCache.h"
+#include "src/core/SkBitmapProvider.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkMipMap.h"
+#include "src/core/SkResourceCache.h"
+#include "src/lazy/SkDiscardableMemoryPool.h"
+#include "tests/Test.h"
 
 ////////////////////////////////////////////////////////////////////////////////////////
 
@@ -110,7 +110,7 @@
     }
 }
 
-#include "SkDiscardableMemoryPool.h"
+#include "src/lazy/SkDiscardableMemoryPool.h"
 
 static SkDiscardableMemoryPool* gPool = nullptr;
 static SkDiscardableMemory* pool_factory(size_t bytes) {
diff --git a/tests/SkSLErrorTest.cpp b/tests/SkSLErrorTest.cpp
index e875221..4645339 100644
--- a/tests/SkSLErrorTest.cpp
+++ b/tests/SkSLErrorTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLCompiler.h"
+#include "src/sksl/SkSLCompiler.h"
 
-#include "Test.h"
+#include "tests/Test.h"
 
 static void test_failure(skiatest::Reporter* r, const char* src, const char* error) {
     SkSL::Compiler compiler;
diff --git a/tests/SkSLFPTest.cpp b/tests/SkSLFPTest.cpp
index c4597f2..0586b5a 100644
--- a/tests/SkSLFPTest.cpp
+++ b/tests/SkSLFPTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLCompiler.h"
+#include "src/sksl/SkSLCompiler.h"
 
-#include "Test.h"
+#include "tests/Test.h"
 
 static void test(skiatest::Reporter* r, const char* src, const GrShaderCaps& caps,
                  std::vector<const char*> expectedH, std::vector<const char*> expectedCPP) {
@@ -72,9 +72,9 @@
              " **************************************************************************************************/\n"
              "#ifndef GrTest_DEFINED\n"
              "#define GrTest_DEFINED\n"
-             "#include \"SkTypes.h\"\n"
-             "#include \"GrFragmentProcessor.h\"\n"
-             "#include \"GrCoordTransform.h\"\n"
+             "#include \"include/core/SkTypes.h\"\n\n"
+             "#include \"src/gpu/GrCoordTransform.h\"\n"
+             "#include \"src/gpu/GrFragmentProcessor.h\"\n"
              "class GrTest : public GrFragmentProcessor {\n"
              "public:\n"
              "    static std::unique_ptr<GrFragmentProcessor> Make() {\n"
@@ -100,13 +100,13 @@
              "/**************************************************************************************************\n"
              " *** This file was autogenerated from GrTest.fp; do not modify.\n"
              " **************************************************************************************************/\n"
-             "#include \"GrTest.h\"\n"
-             "#include \"glsl/GrGLSLFragmentProcessor.h\"\n"
-             "#include \"glsl/GrGLSLFragmentShaderBuilder.h\"\n"
-             "#include \"glsl/GrGLSLProgramBuilder.h\"\n"
-             "#include \"GrTexture.h\"\n"
-             "#include \"SkSLCPP.h\"\n"
-             "#include \"SkSLUtil.h\"\n"
+             "#include \"GrTest.h\"\n\n"
+             "#include \"include/gpu/GrTexture.h\"\n"
+             "#include \"src/gpu/glsl/GrGLSLFragmentProcessor.h\"\n"
+             "#include \"src/gpu/glsl/GrGLSLFragmentShaderBuilder.h\"\n"
+             "#include \"src/gpu/glsl/GrGLSLProgramBuilder.h\"\n"
+             "#include \"src/sksl/SkSLCPP.h\"\n"
+             "#include \"src/sksl/SkSLUtil.h\"\n"
              "class GrGLSLTest : public GrGLSLFragmentProcessor {\n"
              "public:\n"
              "    GrGLSLTest() {}\n"
diff --git a/tests/SkSLGLSLTest.cpp b/tests/SkSLGLSLTest.cpp
index 6d0dae2..c31e1f3 100644
--- a/tests/SkSLGLSLTest.cpp
+++ b/tests/SkSLGLSLTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLCompiler.h"
+#include "src/sksl/SkSLCompiler.h"
 
-#include "Test.h"
+#include "tests/Test.h"
 
 // Note that the optimizer will aggressively kill dead code and substitute constants in place of
 // variables, so we have to jump through a few hoops to ensure that the code in these tests has the
diff --git a/tests/SkSLInterpreterTest.cpp b/tests/SkSLInterpreterTest.cpp
index aa88e09..9031bb1 100644
--- a/tests/SkSLInterpreterTest.cpp
+++ b/tests/SkSLInterpreterTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLCompiler.h"
-#include "SkSLInterpreter.h"
+#include "src/sksl/SkSLCompiler.h"
+#include "src/sksl/SkSLInterpreter.h"
 
-#include "Test.h"
+#include "tests/Test.h"
 
 void test(skiatest::Reporter* r, const char* src, SkSL::Interpreter::Value* in, int expectedCount,
           SkSL::Interpreter::Value* expected) {
diff --git a/tests/SkSLJITTest.cpp b/tests/SkSLJITTest.cpp
index 7561e13..a435b3a 100644
--- a/tests/SkSLJITTest.cpp
+++ b/tests/SkSLJITTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLJIT.h"
+#include "src/sksl/SkSLJIT.h"
 
-#include "Test.h"
+#include "tests/Test.h"
 
 #ifdef SK_LLVM_AVAILABLE
 
diff --git a/tests/SkSLMemoryLayoutTest.cpp b/tests/SkSLMemoryLayoutTest.cpp
index f4df89e..7fb80bc 100644
--- a/tests/SkSLMemoryLayoutTest.cpp
+++ b/tests/SkSLMemoryLayoutTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLContext.h"
-#include "SkSLMemoryLayout.h"
+#include "src/sksl/SkSLContext.h"
+#include "src/sksl/SkSLMemoryLayout.h"
 
-#include "Test.h"
+#include "tests/Test.h"
 
 DEF_TEST(SkSLMemoryLayout140Test, r) {
     SkSL::Context context;
diff --git a/tests/SkSLMetalTest.cpp b/tests/SkSLMetalTest.cpp
index bd6daa5..13cecb9 100644
--- a/tests/SkSLMetalTest.cpp
+++ b/tests/SkSLMetalTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLCompiler.h"
+#include "src/sksl/SkSLCompiler.h"
 
-#include "Test.h"
+#include "tests/Test.h"
 
 static void test(skiatest::Reporter* r, const char* src, const SkSL::Program::Settings& settings,
                  const char* expected, SkSL::Program::Inputs* inputs,
diff --git a/tests/SkSLSPIRVTest.cpp b/tests/SkSLSPIRVTest.cpp
index 355faec..126be45 100644
--- a/tests/SkSLSPIRVTest.cpp
+++ b/tests/SkSLSPIRVTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkSLCompiler.h"
+#include "src/sksl/SkSLCompiler.h"
 
-#include "Test.h"
+#include "tests/Test.h"
 
 static void test_failure(skiatest::Reporter* r, const char* src, const char* error) {
     SkSL::Compiler compiler;
diff --git a/tests/SkSharedMutexTest.cpp b/tests/SkSharedMutexTest.cpp
index 8458891..a9a80b1 100644
--- a/tests/SkSharedMutexTest.cpp
+++ b/tests/SkSharedMutexTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkSharedMutex.h"
-#include "SkTaskGroup.h"
+#include "src/core/SkSharedMutex.h"
+#include "src/core/SkTaskGroup.h"
 
-#include "Test.h"
+#include "tests/Test.h"
 
 DEF_TEST(SkSharedMutexBasic, r) {
     SkSharedMutex sm;
diff --git a/tests/SkUTFTest.cpp b/tests/SkUTFTest.cpp
index 5481ef9..5caba4b 100644
--- a/tests/SkUTFTest.cpp
+++ b/tests/SkUTFTest.cpp
@@ -1,8 +1,8 @@
 // Copyright 2018 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 
-#include "SkUTF.h"
-#include "Test.h"
+#include "src/utils/SkUTF.h"
+#include "tests/Test.h"
 
 DEF_TEST(SkUTF_UTF16, reporter) {
     // Test non-basic-multilingual-plane unicode.
diff --git a/tests/SkVxTest.cpp b/tests/SkVxTest.cpp
index 270d64c..2860e6d 100644
--- a/tests/SkVxTest.cpp
+++ b/tests/SkVxTest.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkVx.h"
-#include "Test.h"
+#include "include/private/SkVx.h"
+#include "tests/Test.h"
 
 using float2 = skvx::Vec<2,float>;
 using float4 = skvx::Vec<4,float>;
diff --git a/tests/SortTest.cpp b/tests/SortTest.cpp
index d544ebd..7cf05c7 100644
--- a/tests/SortTest.cpp
+++ b/tests/SortTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkRandom.h"
-#include "SkTSort.h"
-#include "Test.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkTSort.h"
+#include "tests/Test.h"
 
 #include <stdlib.h>
 
diff --git a/tests/SpecialImageTest.cpp b/tests/SpecialImageTest.cpp
index 529e906..d22534d 100644
--- a/tests/SpecialImageTest.cpp
+++ b/tests/SpecialImageTest.cpp
@@ -5,23 +5,23 @@
  * found in the LICENSE file
  */
 
-#include "SkAutoPixmapStorage.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkImage.h"
-#include "SkPixmap.h"
-#include "SkSpecialImage.h"
-#include "SkSpecialSurface.h"
-#include "SkSurface.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPixmap.h"
+#include "include/core/SkSurface.h"
+#include "src/core/SkAutoPixmapStorage.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkSpecialSurface.h"
+#include "tests/Test.h"
 
-#include "GrBackendSurface.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrProxyProvider.h"
-#include "GrSurfaceProxy.h"
-#include "GrTextureProxy.h"
-#include "SkGr.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/SkGr.h"
 
 
 // This test creates backing resources exactly sized to [kFullSize x kFullSize].
diff --git a/tests/SpecialSurfaceTest.cpp b/tests/SpecialSurfaceTest.cpp
index 44df070..f94d22b 100644
--- a/tests/SpecialSurfaceTest.cpp
+++ b/tests/SpecialSurfaceTest.cpp
@@ -5,16 +5,16 @@
 * found in the LICENSE file
 */
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkSpecialImage.h"
-#include "SkSpecialSurface.h"
-#include "Test.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "src/core/SkSpecialImage.h"
+#include "src/core/SkSpecialSurface.h"
+#include "tests/Test.h"
 
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "SkGr.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/SkGr.h"
 
 class TestingSpecialSurfaceAccess {
 public:
diff --git a/tests/SrcOverTest.cpp b/tests/SrcOverTest.cpp
index e8726d1..92237e2 100644
--- a/tests/SrcOverTest.cpp
+++ b/tests/SrcOverTest.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkColorData.h"
-#include "Test.h"
+#include "include/private/SkColorData.h"
+#include "tests/Test.h"
 
 // our std SkAlpha255To256
 static int test_srcover0(unsigned dst, unsigned alpha) {
diff --git a/tests/StreamBufferTest.cpp b/tests/StreamBufferTest.cpp
index 5435bf9..67e596c 100644
--- a/tests/StreamBufferTest.cpp
+++ b/tests/StreamBufferTest.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkData.h"
-#include "SkMakeUnique.h"
-#include "SkOSPath.h"
-#include "SkStream.h"
-#include "SkStreamBuffer.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
+#include "src/codec/SkStreamBuffer.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/utils/SkOSPath.h"
 
-#include "FakeStreams.h"
-#include "Test.h"
+#include "tests/FakeStreams.h"
+#include "tests/Test.h"
 
 static const char* gText = "Four score and seven years ago";
 
diff --git a/tests/StreamTest.cpp b/tests/StreamTest.cpp
index 3372ee8..bc00f45 100644
--- a/tests/StreamTest.cpp
+++ b/tests/StreamTest.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkAutoMalloc.h"
-#include "SkData.h"
-#include "SkFrontBufferedStream.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkRandom.h"
-#include "SkStream.h"
-#include "SkStreamPriv.h"
-#include "SkTo.h"
-#include "Test.h"
+#include "include/core/SkData.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkFrontBufferedStream.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkOSFile.h"
+#include "src/core/SkStreamPriv.h"
+#include "src/utils/SkOSPath.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
 
 #include <functional>
 #include <limits>
@@ -637,7 +637,7 @@
     test_all(&stream2, true);
 }
 
-#include "SkBuffer.h"
+#include "src/core/SkBuffer.h"
 
 DEF_TEST(RBuffer, reporter) {
     int32_t value = 0;
diff --git a/tests/StringTest.cpp b/tests/StringTest.cpp
index ca0c698..68be50c 100644
--- a/tests/StringTest.cpp
+++ b/tests/StringTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "SkString.h"
-#include "SkStringUtils.h"
+#include "include/core/SkString.h"
+#include "src/core/SkStringUtils.h"
 
 #include <stdarg.h>
 #include <stdio.h>
diff --git a/tests/StrokeTest.cpp b/tests/StrokeTest.cpp
index 2feaea0..1adb3a5 100644
--- a/tests/StrokeTest.cpp
+++ b/tests/StrokeTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkRect.h"
-#include "SkStroke.h"
-#include "SkStrokeRec.h"
-#include "Test.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkStrokeRec.h"
+#include "src/core/SkStroke.h"
+#include "tests/Test.h"
 
 static bool equal(const SkRect& a, const SkRect& b) {
     return  SkScalarNearlyEqual(a.left(), b.left()) &&
diff --git a/tests/StrokerTest.cpp b/tests/StrokerTest.cpp
index 04307a1..c851523 100644
--- a/tests/StrokerTest.cpp
+++ b/tests/StrokerTest.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "CommandLineFlags.h"
-#include "PathOpsCubicIntersectionTestData.h"
-#include "PathOpsQuadIntersectionTestData.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPathOpsCubic.h"
-#include "SkPointPriv.h"
-#include "SkRandom.h"
-#include "SkStrokerPriv.h"
-#include "SkTime.h"
-#include "Test.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkTime.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkPointPriv.h"
+#include "src/core/SkStrokerPriv.h"
+#include "src/pathops/SkPathOpsCubic.h"
+#include "tests/PathOpsCubicIntersectionTestData.h"
+#include "tests/PathOpsQuadIntersectionTestData.h"
+#include "tests/Test.h"
+#include "tools/flags/CommandLineFlags.h"
 
 static DEFINE_bool(timeout, true, "run until alloted time expires");
 
diff --git a/tests/SubsetPath.cpp b/tests/SubsetPath.cpp
index 6a7660e..9a88b50 100644
--- a/tests/SubsetPath.cpp
+++ b/tests/SubsetPath.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SubsetPath.h"
-#include "SkMathPriv.h"
+#include "src/core/SkMathPriv.h"
+#include "tests/SubsetPath.h"
 
 SubsetPath::SubsetPath(const SkPath& path)
         : fPath(path)
diff --git a/tests/SubsetPath.h b/tests/SubsetPath.h
index 9e4d231..2486eb7 100644
--- a/tests/SubsetPath.h
+++ b/tests/SubsetPath.h
@@ -7,8 +7,8 @@
 #ifndef SubsetPath_DEFINED
 #define SubsetPath_DEFINED
 
-#include "SkPath.h"
-#include "SkTDArray.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkTDArray.h"
 
 /* Given a path, generate a the desired minimal subset of the original.
 
diff --git a/tests/SurfaceSemaphoreTest.cpp b/tests/SurfaceSemaphoreTest.cpp
index bc2d53c..ecc1821 100644
--- a/tests/SurfaceSemaphoreTest.cpp
+++ b/tests/SurfaceSemaphoreTest.cpp
@@ -5,25 +5,25 @@
  * found in the LICENSE file.
  */
 
-#include "vk/GrVkVulkan.h"
+#include "include/gpu/vk/GrVkVulkan.h"
 
-#include "GrContextPriv.h"
-#include "GrContextFactory.h"
-#include "Test.h"
+#include "src/gpu/GrContextPriv.h"
+#include "tests/Test.h"
+#include "tools/gpu/GrContextFactory.h"
 
-#include "GrBackendSemaphore.h"
-#include "GrBackendSurface.h"
-#include "SkCanvas.h"
-#include "SkSurface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrBackendSemaphore.h"
+#include "include/gpu/GrBackendSurface.h"
 
-#include "gl/GrGLGpu.h"
-#include "gl/GrGLUtil.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
 #ifdef SK_VULKAN
-#include "vk/GrVkCommandPool.h"
-#include "vk/GrVkGpu.h"
-#include "vk/GrVkTypes.h"
-#include "vk/GrVkUtil.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/vk/GrVkCommandPool.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
 #ifdef VK_USE_PLATFORM_WIN32_KHR
 // windows wants to define this as CreateSemaphoreA or CreateSemaphoreW
diff --git a/tests/SurfaceTest.cpp b/tests/SurfaceTest.cpp
index f2279b8..7d2bff3 100644
--- a/tests/SurfaceTest.cpp
+++ b/tests/SurfaceTest.cpp
@@ -5,33 +5,33 @@
  * found in the LICENSE file.
  */
 
-#include "GrBackendSurface.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrGpuResourcePriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrResourceProvider.h"
-#include "SkCanvas.h"
-#include "SkData.h"
-#include "SkDevice.h"
-#include "SkGpuDevice.h"
-#include "SkImage_Base.h"
-#include "SkImage_Gpu.h"
-#include "SkOverdrawCanvas.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkRRect.h"
-#include "SkSurface.h"
-#include "SkSurface_Gpu.h"
-#include "SkUtils.h"
-#include "Test.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkOverdrawCanvas.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "src/core/SkDevice.h"
+#include "src/core/SkUtils.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/SkGpuDevice.h"
+#include "src/image/SkImage_Base.h"
+#include "src/image/SkImage_Gpu.h"
+#include "src/image/SkSurface_Gpu.h"
+#include "tests/Test.h"
 
 #include <functional>
 #include <initializer_list>
 #include <vector>
 
-#include "ToolUtils.h"
+#include "tools/ToolUtils.h"
 
 static void release_direct_surface_storage(void* pixels, void* context) {
     SkASSERT(pixels == context);
diff --git a/tests/SwizzlerTest.cpp b/tests/SwizzlerTest.cpp
index cfcf93b..8a96b56 100644
--- a/tests/SwizzlerTest.cpp
+++ b/tests/SwizzlerTest.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkImageInfoPriv.h"
-#include "SkSwizzle.h"
-#include "SkSwizzler.h"
-#include "Test.h"
-#include "SkOpts.h"
+#include "include/core/SkSwizzle.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "src/codec/SkSwizzler.h"
+#include "src/core/SkOpts.h"
+#include "tests/Test.h"
 
 static void check_fill(skiatest::Reporter* r,
                        const SkImageInfo& imageInfo,
diff --git a/tests/TArrayTest.cpp b/tests/TArrayTest.cpp
index b8f0a54..4baedb8 100644
--- a/tests/TArrayTest.cpp
+++ b/tests/TArrayTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkRandom.h"
-#include "SkRefCnt.h"
-#include "SkTArray.h"
-#include "Test.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkTArray.h"
+#include "include/utils/SkRandom.h"
+#include "tests/Test.h"
 
 // Tests the SkTArray<T> class template.
 
diff --git a/tests/TDPQueueTest.cpp b/tests/TDPQueueTest.cpp
index 75eab25..279b640 100644
--- a/tests/TDPQueueTest.cpp
+++ b/tests/TDPQueueTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkTDPQueue.h"
-#include "SkRandom.h"
-#include "Test.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkTDPQueue.h"
+#include "tests/Test.h"
 
 namespace { bool intless(const int& a, const int& b) { return a < b; } }
 
diff --git a/tests/TLazyTest.cpp b/tests/TLazyTest.cpp
index 7be514f..ef88930 100644
--- a/tests/TLazyTest.cpp
+++ b/tests/TLazyTest.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkTLazy.h"
-#include "Test.h"
+#include "src/core/SkTLazy.h"
+#include "tests/Test.h"
 
 DEF_TEST(TLazy_copy, r) {
     SkTLazy<int> lazy;
diff --git a/tests/TemplatesTest.cpp b/tests/TemplatesTest.cpp
index 88268a0..e3e52a3 100644
--- a/tests/TemplatesTest.cpp
+++ b/tests/TemplatesTest.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkTemplates.h"
-#include "Test.h"
+#include "include/private/SkTemplates.h"
+#include "tests/Test.h"
 
 // Tests for some of the helpers in SkTemplates.h
 static void test_automalloc_realloc(skiatest::Reporter* reporter) {
diff --git a/tests/TessellatingPathRendererTests.cpp b/tests/TessellatingPathRendererTests.cpp
index 6457c9f..099e749 100644
--- a/tests/TessellatingPathRendererTests.cpp
+++ b/tests/TessellatingPathRendererTests.cpp
@@ -5,18 +5,18 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "GrClip.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrShape.h"
-#include "GrStyle.h"
-#include "SkGradientShader.h"
-#include "SkPath.h"
-#include "SkShaderBase.h"
-#include "effects/GrPorterDuffXferProcessor.h"
-#include "ops/GrTessellatingPathRenderer.h"
+#include "include/core/SkPath.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrShape.h"
+#include "src/gpu/GrStyle.h"
+#include "src/gpu/effects/GrPorterDuffXferProcessor.h"
+#include "src/gpu/ops/GrTessellatingPathRenderer.h"
+#include "src/shaders/SkShaderBase.h"
 
 /*
  * These tests pass by not crashing, hanging or asserting in Debug.
diff --git a/tests/Test.cpp b/tests/Test.cpp
index 06b0016..7ae8231 100644
--- a/tests/Test.cpp
+++ b/tests/Test.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
 #include <stdlib.h>
 
-#include "CommandLineFlags.h"
-#include "SkString.h"
-#include "SkTime.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTime.h"
+#include "tools/flags/CommandLineFlags.h"
 
 static DEFINE_string2(tmpDir, t, nullptr, "Temp directory to use.");
 
diff --git a/tests/Test.h b/tests/Test.h
index 35e6dd8..fec25ff 100644
--- a/tests/Test.h
+++ b/tests/Test.h
@@ -7,12 +7,12 @@
 #ifndef skiatest_Test_DEFINED
 #define skiatest_Test_DEFINED
 
-#include "../tools/Registry.h"
-#include "GrContextFactory.h"
-#include "SkClipOpPriv.h"
-#include "SkString.h"
-#include "SkTraceEvent.h"
-#include "SkTypes.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypes.h"
+#include "src/core/SkClipOpPriv.h"
+#include "src/core/SkTraceEvent.h"
+#include "tools/Registry.h"
+#include "tools/gpu/GrContextFactory.h"
 
 namespace skiatest {
 
@@ -94,7 +94,7 @@
 /*
     Use the following macros to make use of the skiatest classes, e.g.
 
-    #include "Test.h"
+    #include "tests/Test.h"
 
     DEF_TEST(TestName, reporter) {
         ...
diff --git a/tests/TestTest.cpp b/tests/TestTest.cpp
index 68bec94..8039b87 100644
--- a/tests/TestTest.cpp
+++ b/tests/TestTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "GrContext.h"
-#include "gl/GLTestContext.h"
+#include "include/gpu/GrContext.h"
+#include "tools/gpu/gl/GLTestContext.h"
 
 // This is an example of a normal test.
 DEF_TEST(TestNormal, reporter) {
diff --git a/tests/TestUtils.cpp b/tests/TestUtils.cpp
index 16ef403..740de21 100644
--- a/tests/TestUtils.cpp
+++ b/tests/TestUtils.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "TestUtils.h"
+#include "tests/TestUtils.h"
 
-#include "GrContextPriv.h"
-#include "GrSurfaceContext.h"
-#include "GrSurfaceContextPriv.h"
-#include "GrSurfaceProxy.h"
-#include "GrTextureProxy.h"
-#include "ProxyUtils.h"
-#include "SkGr.h"
-#include "SkBase64.h"
-#include "SkPngEncoder.h"
+#include "include/encode/SkPngEncoder.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "include/private/GrTextureProxy.h"
+#include "include/utils/SkBase64.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrSurfaceContext.h"
+#include "src/gpu/GrSurfaceContextPriv.h"
+#include "src/gpu/SkGr.h"
+#include "tools/gpu/ProxyUtils.h"
 
 void test_read_pixels(skiatest::Reporter* reporter,
                       GrSurfaceContext* srcContext, uint32_t expectedPixelValues[],
@@ -183,7 +183,7 @@
     return true;
 }
 
-#include "SkCharToGlyphCache.h"
+#include "src/utils/SkCharToGlyphCache.h"
 
 static SkGlyphID hash_to_glyph(uint32_t value) {
     return SkToU16(((value >> 16) ^ value) & 0xFFFF);
diff --git a/tests/TestUtils.h b/tests/TestUtils.h
index 1e0c1e7..3d98b9a 100644
--- a/tests/TestUtils.h
+++ b/tests/TestUtils.h
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
-#include "SkBitmap.h"
+#include "include/core/SkBitmap.h"
+#include "tests/Test.h"
 
 class GrSurfaceContext;
 class GrSurfaceProxy;
diff --git a/tests/TextBlobCacheTest.cpp b/tests/TextBlobCacheTest.cpp
index 1c86de4..5ec147a 100644
--- a/tests/TextBlobCacheTest.cpp
+++ b/tests/TextBlobCacheTest.cpp
@@ -5,27 +5,27 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
+#include "tools/ToolUtils.h"
 
-#include "RandomScalerContext.h"
-#include "SkCanvas.h"
-#include "SkFontMgr.h"
-#include "SkGlyphRun.h"
-#include "SkGraphics.h"
-#include "SkPaint.h"
-#include "SkPoint.h"
-#include "SkSurface.h"
-#include "SkTextBlob.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "src/core/SkGlyphRun.h"
+#include "tools/fonts/RandomScalerContext.h"
 
 #ifdef SK_BUILD_FOR_WIN
-    #include "SkTypeface_win.h"
+    #include "include/ports/SkTypeface_win.h"
 #endif
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrContextPriv.h"
 
 static void draw(SkCanvas* canvas, int redraw, const SkTArray<sk_sp<SkTextBlob>>& blobs) {
     int yOffset = 0;
diff --git a/tests/TextBlobTest.cpp b/tests/TextBlobTest.cpp
index d18d05b..9b5b78b 100644
--- a/tests/TextBlobTest.cpp
+++ b/tests/TextBlobTest.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "SkPaint.h"
-#include "SkPoint.h"
-#include "SkSerialProcs.h"
-#include "SkTextBlobPriv.h"
-#include "SkTo.h"
-#include "SkTypeface.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkSerialProcs.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkTextBlobPriv.h"
 
-#include "Test.h"
-#include "ToolUtils.h"
+#include "tests/Test.h"
+#include "tools/ToolUtils.h"
 
 class TextBlobTester {
 public:
@@ -350,9 +350,9 @@
 }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
-#include "SkCanvas.h"
-#include "SkSurface.h"
-#include "SkTDArray.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "include/private/SkTDArray.h"
 
 static void add_run(SkTextBlobBuilder* builder, const char text[], SkScalar x, SkScalar y,
                     sk_sp<SkTypeface> tf) {
diff --git a/tests/TextureBindingsResetTest.cpp b/tests/TextureBindingsResetTest.cpp
index b338754..876722b 100644
--- a/tests/TextureBindingsResetTest.cpp
+++ b/tests/TextureBindingsResetTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "GrContextPriv.h"
-#include "SkSurface.h"
-#include "Test.h"
-#include "gl/GrGLDefines.h"
-#include "gl/GrGLGpu.h"
-#include "gl/GrGLUtil.h"
+#include "include/core/SkSurface.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/gl/GrGLDefines.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "src/gpu/gl/GrGLUtil.h"
+#include "tests/Test.h"
 
 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(TextureBindingsResetTest, reporter, ctxInfo) {
 #define GL(F) GR_GL_CALL(ctxInfo.glContext()->gl(), F)
diff --git a/tests/TextureProxyTest.cpp b/tests/TextureProxyTest.cpp
index f26dbb7..0257083 100644
--- a/tests/TextureProxyTest.cpp
+++ b/tests/TextureProxyTest.cpp
@@ -7,18 +7,18 @@
 
 // This is a GPU-backend specific test.
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "GrBackendSurface.h"
-#include "GrContextPriv.h"
-#include "GrResourceCache.h"
-#include "GrProxyProvider.h"
-#include "GrResourceProvider.h"
-#include "GrTexture.h"
-#include "GrTextureProxy.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrResourceCache.h"
+#include "src/gpu/GrResourceProvider.h"
 
-#include "SkGr.h"
-#include "SkImage.h"
+#include "include/core/SkImage.h"
+#include "src/gpu/SkGr.h"
 
 int GrProxyProvider::numUniqueKeyProxies_TestOnly() const {
     return fUniquelyKeyedProxies.count();
diff --git a/tests/TextureStripAtlasManagerTest.cpp b/tests/TextureStripAtlasManagerTest.cpp
index c1aeb44..65cd523 100644
--- a/tests/TextureStripAtlasManagerTest.cpp
+++ b/tests/TextureStripAtlasManagerTest.cpp
@@ -6,14 +6,14 @@
  */
 
 
-#include "SkCanvas.h"
-#include "SkGradientShader.h"
-#include "SkPaint.h"
-#include "SkSurface.h"
-#include "SkTableColorFilter.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkGradientShader.h"
+#include "include/effects/SkTableColorFilter.h"
 
-#include "Resources.h"
-#include "Test.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
 
 // The gradient shader will use the texture strip atlas if it has too many colors. Make sure
 // abandoning the context works.
diff --git a/tests/Time.cpp b/tests/Time.cpp
index 5a07f08..189443b 100644
--- a/tests/Time.cpp
+++ b/tests/Time.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkTime.h"
-#include "SkTo.h"
-#include "Test.h"
+#include "include/core/SkTime.h"
+#include "include/private/SkTo.h"
+#include "tests/Test.h"
 
 // Sanity checks for the GetDateTime function.
 DEF_TEST(Time_GetDateTime, r) {
diff --git a/tests/TopoSortTest.cpp b/tests/TopoSortTest.cpp
index e45b6b8..9fc0f01b 100644
--- a/tests/TopoSortTest.cpp
+++ b/tests/TopoSortTest.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkRandom.h"
-#include "SkTTopoSort.h"
-#include "Test.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkTTopoSort.h"
+#include "tests/Test.h"
 
-#include "ToolUtils.h"
+#include "tools/ToolUtils.h"
 
 typedef void (*CreateGraphPF)(SkTArray<sk_sp<ToolUtils::TopoTestNode>>* graph);
 
diff --git a/tests/TraceMemoryDumpTest.cpp b/tests/TraceMemoryDumpTest.cpp
index d5a9bcb..1e61052 100644
--- a/tests/TraceMemoryDumpTest.cpp
+++ b/tests/TraceMemoryDumpTest.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkTraceMemoryDump.h"
+#include "include/core/SkTraceMemoryDump.h"
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "GrContextPriv.h"
-#include "GrRenderTarget.h"
-#include "GrTexture.h"
-#include "gl/GrGLBuffer.h"
-#include "gl/GrGLDefines.h"
-#include "gl/GrGLGpu.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/gl/GrGLBuffer.h"
+#include "src/gpu/gl/GrGLDefines.h"
+#include "src/gpu/gl/GrGLGpu.h"
 
 /*
  * Build test for SkTraceMemoryDump.
diff --git a/tests/TracingTest.cpp b/tests/TracingTest.cpp
index 266ed9c..49540b2 100644
--- a/tests/TracingTest.cpp
+++ b/tests/TracingTest.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "CommandLineFlags.h"
-#include "SkImageInfo.h"
-#include "SkLeanWindows.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkTraceEvent.h"
-#include "Test.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/private/SkLeanWindows.h"
+#include "src/core/SkTraceEvent.h"
+#include "tests/Test.h"
+#include "tools/flags/CommandLineFlags.h"
 
 static DEFINE_bool(slowTracingTest, false,
                    "Artificially slow down tracing test to produce nicer JSON");
diff --git a/tests/TransferPixelsTest.cpp b/tests/TransferPixelsTest.cpp
index db054ee..631a870 100644
--- a/tests/TransferPixelsTest.cpp
+++ b/tests/TransferPixelsTest.cpp
@@ -7,17 +7,17 @@
 
 // This is a GPU-backend specific test. It relies on static intializers to work
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrResourceProvider.h"
-#include "GrSurfaceProxy.h"
-#include "GrTexture.h"
-#include "SkGr.h"
-#include "SkSurface.h"
-#include "Test.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrSurfaceProxy.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/SkGr.h"
+#include "tests/Test.h"
+#include "tools/gpu/GrContextFactory.h"
 
 using sk_gpu_test::GrContextFactory;
 
diff --git a/tests/TypefaceTest.cpp b/tests/TypefaceTest.cpp
index 3858cb2..b1c330b 100644
--- a/tests/TypefaceTest.cpp
+++ b/tests/TypefaceTest.cpp
@@ -5,21 +5,21 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkAdvancedTypefaceMetrics.h"
-#include "SkData.h"
-#include "SkFixed.h"
-#include "SkFontDescriptor.h"
-#include "SkFontMgr.h"
-#include "SkMakeUnique.h"
-#include "SkOTTable_OS_2.h"
-#include "SkRefCnt.h"
-#include "SkSFNTHeader.h"
-#include "SkStream.h"
-#include "SkTypeface.h"
-#include "SkTypefaceCache.h"
-#include "Test.h"
-#include "TestEmptyTypeface.h"
+#include "include/core/SkData.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkFixed.h"
+#include "src/core/SkAdvancedTypefaceMetrics.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkTypefaceCache.h"
+#include "src/sfnt/SkOTTable_OS_2.h"
+#include "src/sfnt/SkSFNTHeader.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
+#include "tools/fonts/TestEmptyTypeface.h"
 
 #include <memory>
 
diff --git a/tests/UnicodeTest.cpp b/tests/UnicodeTest.cpp
index ee39e57..c67c278 100644
--- a/tests/UnicodeTest.cpp
+++ b/tests/UnicodeTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkFont.h"
-#include "SkPaint.h"
-#include "SkUTF.h"
-#include "Test.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkPaint.h"
+#include "src/utils/SkUTF.h"
+#include "tests/Test.h"
 
 // Simple test to ensure that when we call textToGlyphs, we get the same
 // result (for the same text) when using UTF8, UTF16, UTF32.
@@ -44,8 +44,8 @@
     REPORTER_ASSERT(reporter, !memcmp(glyphs8, glyphs32, count8 * sizeof(uint16_t)));
 }
 
-#include "SkFont.h"
-#include "SkFontPriv.h"
+#include "include/core/SkFont.h"
+#include "src/core/SkFontPriv.h"
 
 DEF_TEST(glyphs_to_unichars, reporter) {
     SkFont font;
diff --git a/tests/UtilsTest.cpp b/tests/UtilsTest.cpp
index aa8f9c9..a520aca 100644
--- a/tests/UtilsTest.cpp
+++ b/tests/UtilsTest.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkRandom.h"
-#include "SkRefCnt.h"
-#include "SkTSearch.h"
-#include "SkTSort.h"
-#include "Test.h"
+#include "include/core/SkRefCnt.h"
+#include "include/private/SkTSearch.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkTSort.h"
+#include "tests/Test.h"
 
 class RefClass : public SkRefCnt {
 public:
diff --git a/tests/VerticesTest.cpp b/tests/VerticesTest.cpp
index 27cc0a1..1f90e2b 100644
--- a/tests/VerticesTest.cpp
+++ b/tests/VerticesTest.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkSurface.h"
-#include "SkVertices.h"
-#include "Test.h"
-#include "ToolUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkVertices.h"
+#include "tests/Test.h"
+#include "tools/ToolUtils.h"
 
 static bool equal(const SkVertices* v0, const SkVertices* v1) {
     if (v0->mode() != v1->mode()) {
diff --git a/tests/VkBackendSurfaceTest.cpp b/tests/VkBackendSurfaceTest.cpp
index b30c0b8..94cb693 100644
--- a/tests/VkBackendSurfaceTest.cpp
+++ b/tests/VkBackendSurfaceTest.cpp
@@ -7,24 +7,24 @@
 
 // This is a GPU-backend specific test. It relies on static intializers to work
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if defined(SK_VULKAN)
 
-#include "vk/GrVkVulkan.h"
+#include "include/gpu/vk/GrVkVulkan.h"
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "GrBackendSurface.h"
-#include "GrContextPriv.h"
-#include "GrTextureProxy.h"
-#include "GrTexture.h"
-#include "SkImage.h"
-#include "SkImage_Base.h"
-#include "vk/GrVkGpu.h"
-#include "vk/GrVkImageLayout.h"
-#include "vk/GrVkTexture.h"
-#include "vk/GrVkTypes.h"
+#include "include/core/SkImage.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrTexture.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "include/private/GrTextureProxy.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkImageLayout.h"
+#include "src/gpu/vk/GrVkTexture.h"
+#include "src/image/SkImage_Base.h"
 
 DEF_GPUTEST_FOR_VULKAN_CONTEXT(VkImageLayoutTest, reporter, ctxInfo) {
     GrContext* context = ctxInfo.grContext();
diff --git a/tests/VkDrawableTest.cpp b/tests/VkDrawableTest.cpp
index 5693640..01fbbe7 100644
--- a/tests/VkDrawableTest.cpp
+++ b/tests/VkDrawableTest.cpp
@@ -7,23 +7,23 @@
 
 // This is a GPU-backend specific test. It relies on static intializers to work
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if SK_SUPPORT_GPU && defined(SK_VULKAN)
 
-#include "vk/GrVkVulkan.h"
+#include "include/gpu/vk/GrVkVulkan.h"
 
-#include "GrBackendDrawableInfo.h"
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "SkDrawable.h"
-#include "SkSurface.h"
-#include "Test.h"
-#include "vk/GrVkGpu.h"
-#include "vk/GrVkInterface.h"
-#include "vk/GrVkMemory.h"
-#include "vk/GrVkSecondaryCBDrawContext.h"
-#include "vk/GrVkUtil.h"
+#include "include/core/SkDrawable.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrBackendDrawableInfo.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkInterface.h"
+#include "src/gpu/vk/GrVkMemory.h"
+#include "src/gpu/vk/GrVkSecondaryCBDrawContext.h"
+#include "src/gpu/vk/GrVkUtil.h"
+#include "tests/Test.h"
+#include "tools/gpu/GrContextFactory.h"
 
 using sk_gpu_test::GrContextFactory;
 
diff --git a/tests/VkHardwareBufferTest.cpp b/tests/VkHardwareBufferTest.cpp
index a8279cc..c198fe3 100644
--- a/tests/VkHardwareBufferTest.cpp
+++ b/tests/VkHardwareBufferTest.cpp
@@ -7,27 +7,27 @@
 
 // This is a GPU-backend specific test. It relies on static intializers to work
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if SK_SUPPORT_GPU && defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 26 && defined(SK_VULKAN)
 
-#include "GrBackendSemaphore.h"
-#include "GrContext.h"
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrProxyProvider.h"
-#include "SkAutoMalloc.h"
-#include "SkCanvas.h"
-#include "SkGr.h"
-#include "SkImage.h"
-#include "SkSurface.h"
-#include "Test.h"
-#include "../tools/gpu/vk/VkTestUtils.h"
-#include "gl/GrGLDefines.h"
-#include "gl/GrGLUtil.h"
-#include "vk/GrVkBackendContext.h"
-#include "vk/GrVkExtensions.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrBackendSemaphore.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/vk/GrVkBackendContext.h"
+#include "include/gpu/vk/GrVkExtensions.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/gl/GrGLDefines.h"
+#include "src/gpu/gl/GrGLUtil.h"
+#include "tests/Test.h"
+#include "tools/gpu/GrContextFactory.h"
+#include "tools/gpu/vk/VkTestUtils.h"
 
 #include <android/hardware_buffer.h>
 #include <cinttypes>
diff --git a/tests/VkMakeCopyPipelineTest.cpp b/tests/VkMakeCopyPipelineTest.cpp
index a86fd04..1977286 100644
--- a/tests/VkMakeCopyPipelineTest.cpp
+++ b/tests/VkMakeCopyPipelineTest.cpp
@@ -7,21 +7,21 @@
 
 // This is a GPU-backend specific test. It relies on static intializers to work
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if defined(SK_VULKAN)
 
-#include "vk/GrVkVulkan.h"
+#include "include/gpu/vk/GrVkVulkan.h"
 
-#include "GrBackendSurface.h"
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "GrTexture.h"
-#include "Test.h"
-#include "vk/GrVkCopyPipeline.h"
-#include "vk/GrVkGpu.h"
-#include "vk/GrVkRenderTarget.h"
-#include "vk/GrVkUtil.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/vk/GrVkCopyPipeline.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkRenderTarget.h"
+#include "src/gpu/vk/GrVkUtil.h"
+#include "tests/Test.h"
+#include "tools/gpu/GrContextFactory.h"
 
 using sk_gpu_test::GrContextFactory;
 
diff --git a/tests/VkPriorityExtensionTest.cpp b/tests/VkPriorityExtensionTest.cpp
index 622620a..71e2cd4 100644
--- a/tests/VkPriorityExtensionTest.cpp
+++ b/tests/VkPriorityExtensionTest.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if SK_SUPPORT_GPU && defined(SK_VULKAN)
 
-#include "SkAutoMalloc.h"
-#include "Test.h"
-#include "vk/GrVkTypes.h"
-#include "../tools/gpu/vk/VkTestUtils.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/core/SkAutoMalloc.h"
+#include "tests/Test.h"
+#include "tools/gpu/vk/VkTestUtils.h"
 
 #define ACQUIRE_VK_PROC_NOCHECK(name, instance, device) \
     PFN_vk##name grVk##name = reinterpret_cast<PFN_vk##name>(getProc("vk" #name, instance, device))
diff --git a/tests/VkWrapTests.cpp b/tests/VkWrapTests.cpp
index 1bd64d9..00271d6 100644
--- a/tests/VkWrapTests.cpp
+++ b/tests/VkWrapTests.cpp
@@ -7,23 +7,23 @@
 
 // This is a GPU-backend specific test. It relies on static intializers to work
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if defined(SK_VULKAN)
 
-#include "vk/GrVkVulkan.h"
+#include "include/gpu/vk/GrVkVulkan.h"
 
-#include "GrBackendSurface.h"
-#include "GrContextPriv.h"
-#include "GrContextFactory.h"
-#include "GrRenderTarget.h"
-#include "GrTexture.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrRenderTarget.h"
+#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrContextPriv.h"
+#include "tools/gpu/GrContextFactory.h"
 
-#include "Test.h"
-#include "vk/GrVkCaps.h"
-#include "vk/GrVkGpu.h"
-#include "vk/GrVkMemory.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/vk/GrVkCaps.h"
+#include "src/gpu/vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkMemory.h"
+#include "tests/Test.h"
 
 using sk_gpu_test::GrContextFactory;
 
diff --git a/tests/VptrTest.cpp b/tests/VptrTest.cpp
index b8a9e1a..d6d52a8 100644
--- a/tests/VptrTest.cpp
+++ b/tests/VptrTest.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "SkMakeUnique.h"
-#include "SkVptr.h"
-#include "Test.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkVptr.h"
+#include "tests/Test.h"
 
 namespace {
 
diff --git a/tests/WindowRectanglesTest.cpp b/tests/WindowRectanglesTest.cpp
index 2c2531b..8a91130 100644
--- a/tests/WindowRectanglesTest.cpp
+++ b/tests/WindowRectanglesTest.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
-#include "Test.h"
+#include "include/core/SkTypes.h"
+#include "tests/Test.h"
 
-#include "GrWindowRectangles.h"
-#include "SkRandom.h"
-#include "SkRectPriv.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkRectPriv.h"
+#include "src/gpu/GrWindowRectangles.h"
 
 static SkIRect next_irect(SkRandom& r) {
     return {r.nextS(), r.nextS(), r.nextS(), r.nextS()};
diff --git a/tests/WritePixelsTest.cpp b/tests/WritePixelsTest.cpp
index e7ff433..d8c4e57 100644
--- a/tests/WritePixelsTest.cpp
+++ b/tests/WritePixelsTest.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "SkCanvas.h"
-#include "SkColorData.h"
-#include "SkImageInfoPriv.h"
-#include "SkMathPriv.h"
-#include "SkSurface.h"
-#include "Test.h"
-#include "ToolUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "src/core/SkMathPriv.h"
+#include "tests/Test.h"
+#include "tools/ToolUtils.h"
 
-#include "GrBackendSurface.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrProxyProvider.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrProxyProvider.h"
 
 #include <initializer_list>
 
@@ -273,7 +273,7 @@
     return true;
 }
 
-#include "SkMallocPixelRef.h"
+#include "include/core/SkMallocPixelRef.h"
 
 // This is a tricky pattern, because we have to setConfig+rowBytes AND specify
 // a custom pixelRef (which also has to specify its rowBytes), so we have to be
diff --git a/tests/Writer32Test.cpp b/tests/Writer32Test.cpp
index 6cb79f8..826b56e 100644
--- a/tests/Writer32Test.cpp
+++ b/tests/Writer32Test.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkAutoMalloc.h"
-#include "SkRandom.h"
-#include "SkReader32.h"
-#include "SkWriter32.h"
-#include "Test.h"
+#include "include/utils/SkRandom.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkReader32.h"
+#include "src/core/SkWriter32.h"
+#include "tests/Test.h"
 
 static void check_contents(skiatest::Reporter* reporter, const SkWriter32& writer,
                            const void* expected, size_t size) {
diff --git a/tests/YUVCacheTest.cpp b/tests/YUVCacheTest.cpp
index 0908bdd..a0a4160 100644
--- a/tests/YUVCacheTest.cpp
+++ b/tests/YUVCacheTest.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "SkCachedData.h"
-#include "SkYUVPlanesCache.h"
-#include "SkResourceCache.h"
-#include "Test.h"
+#include "src/core/SkCachedData.h"
+#include "src/core/SkResourceCache.h"
+#include "src/core/SkYUVPlanesCache.h"
+#include "tests/Test.h"
 
 enum LockedState {
     kUnlocked,
diff --git a/tests/YUVTest.cpp b/tests/YUVTest.cpp
index faa9c28..644450d 100644
--- a/tests/YUVTest.cpp
+++ b/tests/YUVTest.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkAutoMalloc.h"
-#include "SkCodec.h"
-#include "SkStream.h"
-#include "SkTemplates.h"
-#include "SkYUVASizeInfo.h"
-#include "Test.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkYUVASizeInfo.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkAutoMalloc.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
 
 static void codec_yuv(skiatest::Reporter* reporter,
                       const char path[],
diff --git a/tests/image-bitmap.cpp b/tests/image-bitmap.cpp
index 59ab3f7..38053e3 100644
--- a/tests/image-bitmap.cpp
+++ b/tests/image-bitmap.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "SkBitmap.h"
-#include "SkImage.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkImage.h"
 
 // https://bug.skia.org/5096
 // Test that when we make an image from a subset of a bitmap, that it
diff --git a/tests/skbug5221.cpp b/tests/skbug5221.cpp
index f334dd9..df83f9c 100644
--- a/tests/skbug5221.cpp
+++ b/tests/skbug5221.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Test.h"
+#include "tests/Test.h"
 
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkSurface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkSurface.h"
 
 // This passes by not crashing.
 static void test(SkCanvas* canvas) {
diff --git a/tests/skbug6389.cpp b/tests/skbug6389.cpp
index d82a146..e9d8c73 100644
--- a/tests/skbug6389.cpp
+++ b/tests/skbug6389.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "SkCanvas.h"
-#include "SkImageSource.h"
-#include "SkMaskFilter.h"
-#include "SkSurface.h"
-#include "Test.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkMaskFilter.h"
+#include "include/core/SkSurface.h"
+#include "include/effects/SkImageSource.h"
+#include "tests/Test.h"
+#include "tools/Resources.h"
 
 DEF_TEST(skbug_6389, r) {
     auto s = SkSurface::MakeRasterN32Premul(100, 100);
diff --git a/tests/skbug6653.cpp b/tests/skbug6653.cpp
index d775195..e8e29f9 100644
--- a/tests/skbug6653.cpp
+++ b/tests/skbug6653.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "SkCanvas.h"
-#include "SkSurface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "Test.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/GrContextPriv.h"
+#include "tests/Test.h"
 
 static SkBitmap read_pixels(sk_sp<SkSurface> surface, SkColor initColor) {
     SkBitmap bmp;
diff --git a/tests/skia_test.cpp b/tests/skia_test.cpp
index 776bd8e..b661763 100644
--- a/tests/skia_test.cpp
+++ b/tests/skia_test.cpp
@@ -6,21 +6,21 @@
  */
 
 #include <atomic>
-#include "CommandLineFlags.h"
-#include "CrashHandler.h"
-#include "GrContext.h"
-#include "GrContextFactory.h"
-#include "OverwriteLine.h"
-#include "PathOpsDebug.h"
-#include "Resources.h"
-#include "SkGraphics.h"
-#include "SkOSFile.h"
-#include "SkPathOpsDebug.h"
-#include "SkTArray.h"
-#include "SkTaskGroup.h"
-#include "SkTemplates.h"
-#include "SkTime.h"
-#include "Test.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkTime.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkOSFile.h"
+#include "src/core/SkTaskGroup.h"
+#include "src/pathops/SkPathOpsDebug.h"
+#include "tests/PathOpsDebug.h"
+#include "tests/Test.h"
+#include "tools/CrashHandler.h"
+#include "tools/OverwriteLine.h"
+#include "tools/Resources.h"
+#include "tools/flags/CommandLineFlags.h"
+#include "tools/gpu/GrContextFactory.h"
 
 using namespace skiatest;
 using namespace sk_gpu_test;
diff --git a/third_party/gif/SkGifImageReader.cpp b/third_party/gif/SkGifImageReader.cpp
index 3484561..23327d9 100644
--- a/third_party/gif/SkGifImageReader.cpp
+++ b/third_party/gif/SkGifImageReader.cpp
@@ -72,9 +72,9 @@
 mailing address.
 */
 
-#include "SkGifImageReader.h"
-#include "SkColorPriv.h"
-#include "SkGifCodec.h"
+#include "include/core/SkColorPriv.h"
+#include "src/codec/SkGifCodec.h"
+#include "third_party/gif/SkGifImageReader.h"
 
 #include <algorithm>
 #include <string.h>
diff --git a/third_party/gif/SkGifImageReader.h b/third_party/gif/SkGifImageReader.h
index 7ff424a..5939007 100644
--- a/third_party/gif/SkGifImageReader.h
+++ b/third_party/gif/SkGifImageReader.h
@@ -42,15 +42,15 @@
 // so we will too.
 class SkGifCodec;
 
-#include "SkCodec.h"
-#include "SkCodecPriv.h"
-#include "SkCodecAnimation.h"
-#include "SkColorTable.h"
-#include "SkData.h"
-#include "SkFrameHolder.h"
-#include "SkImageInfo.h"
-#include "SkStreamBuffer.h"
-#include "../private/SkTArray.h"
+#include "include/codec/SkCodec.h"
+#include "include/codec/SkCodecAnimation.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageInfo.h"
+#include "include/private/SkTArray.h"
+#include "src/codec/SkCodecPriv.h"
+#include "src/codec/SkColorTable.h"
+#include "src/codec/SkFrameHolder.h"
+#include "src/codec/SkStreamBuffer.h"
 #include <memory>
 
 typedef SkTArray<unsigned char, true> SkGIFRow;
diff --git a/third_party/vulkanmemoryallocator/BUILD.gn b/third_party/vulkanmemoryallocator/BUILD.gn
index 6d0bd62..34bd83b 100644
--- a/third_party/vulkanmemoryallocator/BUILD.gn
+++ b/third_party/vulkanmemoryallocator/BUILD.gn
@@ -10,7 +10,10 @@
 source_set("vulkanmemoryallocator") {
   public_configs = [ ":vulkanmemoryallocator_public" ]
 
-  include_dirs = [ "../../include/third_party/vulkan" ]
+  include_dirs = [
+    "../..",
+    "../../include/third_party/vulkan",
+  ]
 
   sources = [
     "GrVulkanMemoryAllocator.cpp",
diff --git a/tools/AndroidSkDebugToStdOut.cpp b/tools/AndroidSkDebugToStdOut.cpp
index 9dc9911..ad8c949 100644
--- a/tools/AndroidSkDebugToStdOut.cpp
+++ b/tools/AndroidSkDebugToStdOut.cpp
@@ -7,7 +7,7 @@
 
 // Need to include SkTypes before checking SK_BUILD_FOR_ANDROID, so it will be
 // set in the Android framework build.
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 #ifdef SK_BUILD_FOR_ANDROID
 extern bool gSkDebugToStdOut;
 
diff --git a/tools/CrashHandler.cpp b/tools/CrashHandler.cpp
index ed01ee0..fcaca2a 100644
--- a/tools/CrashHandler.cpp
+++ b/tools/CrashHandler.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "CrashHandler.h"
+#include "tools/CrashHandler.h"
 
-#include "../private/SkLeanWindows.h"
+#include "include/private/SkLeanWindows.h"
 
 #include <stdlib.h>
 
@@ -110,7 +110,7 @@
     #elif defined(SK_BUILD_FOR_WIN)
 
         #include <DbgHelp.h>
-        #include "SkMalloc.h"
+        #include "include/private/SkMalloc.h"
 
         static const struct {
             const char* name;
diff --git a/tools/DDLPromiseImageHelper.cpp b/tools/DDLPromiseImageHelper.cpp
index 5e56952..77db2f1 100644
--- a/tools/DDLPromiseImageHelper.cpp
+++ b/tools/DDLPromiseImageHelper.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "DDLPromiseImageHelper.h"
+#include "tools/DDLPromiseImageHelper.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "SkCachedData.h"
-#include "SkDeferredDisplayListRecorder.h"
-#include "SkImage_Base.h"
-#include "SkImage_GpuYUVA.h"
-#include "SkYUVAIndex.h"
-#include "SkYUVASizeInfo.h"
+#include "include/core/SkDeferredDisplayListRecorder.h"
+#include "include/core/SkYUVAIndex.h"
+#include "include/core/SkYUVASizeInfo.h"
+#include "include/gpu/GrContext.h"
+#include "src/core/SkCachedData.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/image/SkImage_Base.h"
+#include "src/image/SkImage_GpuYUVA.h"
 
 DDLPromiseImageHelper::PromiseImageCallbackContext::~PromiseImageCallbackContext() {
     SkASSERT(fDoneCnt == fNumImages);
diff --git a/tools/DDLPromiseImageHelper.h b/tools/DDLPromiseImageHelper.h
index bbb7a75..99d883e 100644
--- a/tools/DDLPromiseImageHelper.h
+++ b/tools/DDLPromiseImageHelper.h
@@ -8,15 +8,15 @@
 #ifndef PromiseImageHelper_DEFINED
 #define PromiseImageHelper_DEFINED
 
-#include "GrBackendSurface.h"
-#include "SkBitmap.h"
-#include "SkCachedData.h"
-#include "SkDeferredDisplayListRecorder.h"
-#include "SkPromiseImageTexture.h"
-#include "SkTArray.h"
-#include "SkTLazy.h"
-#include "SkYUVAIndex.h"
-#include "SkYUVASizeInfo.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkDeferredDisplayListRecorder.h"
+#include "include/core/SkPromiseImageTexture.h"
+#include "include/core/SkYUVAIndex.h"
+#include "include/core/SkYUVASizeInfo.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/private/SkTArray.h"
+#include "src/core/SkCachedData.h"
+#include "src/core/SkTLazy.h"
 
 class GrContext;
 class SkImage;
diff --git a/tools/DDLTileHelper.cpp b/tools/DDLTileHelper.cpp
index 86dd836..b93b5ff 100644
--- a/tools/DDLTileHelper.cpp
+++ b/tools/DDLTileHelper.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "DDLTileHelper.h"
+#include "tools/DDLTileHelper.h"
 
-#include "DDLPromiseImageHelper.h"
-#include "SkCanvas.h"
-#include "SkDeferredDisplayListPriv.h"
-#include "SkDeferredDisplayListRecorder.h"
-#include "SkImage_Gpu.h"
-#include "SkPicture.h"
-#include "SkSurface.h"
-#include "SkSurfaceCharacterization.h"
-#include "SkTaskGroup.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkDeferredDisplayListRecorder.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkSurfaceCharacterization.h"
+#include "src/core/SkDeferredDisplayListPriv.h"
+#include "src/core/SkTaskGroup.h"
+#include "src/image/SkImage_Gpu.h"
+#include "tools/DDLPromiseImageHelper.h"
 
 DDLTileHelper::TileData::TileData(sk_sp<SkSurface> s, const SkIRect& clip)
         : fSurface(std::move(s))
diff --git a/tools/DDLTileHelper.h b/tools/DDLTileHelper.h
index 669eded..f7f45c0 100644
--- a/tools/DDLTileHelper.h
+++ b/tools/DDLTileHelper.h
@@ -8,9 +8,9 @@
 #ifndef DDLTileHelper_DEFINED
 #define DDLTileHelper_DEFINED
 
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkSurfaceCharacterization.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSurfaceCharacterization.h"
 
 class DDLPromiseImageHelper;
 class SkCanvas;
diff --git a/tools/DumpRecord.cpp b/tools/DumpRecord.cpp
index 8eff26e..fb2fbb0 100644
--- a/tools/DumpRecord.cpp
+++ b/tools/DumpRecord.cpp
@@ -7,12 +7,12 @@
 
 #include <stdio.h>
 
-#include "SkPicturePriv.h"
-#include "SkRecord.h"
-#include "SkRecordDraw.h"
+#include "src/core/SkPicturePriv.h"
+#include "src/core/SkRecord.h"
+#include "src/core/SkRecordDraw.h"
 
-#include "DumpRecord.h"
-#include "SkTime.h"
+#include "include/core/SkTime.h"
+#include "tools/DumpRecord.h"
 
 namespace {
 
diff --git a/tools/HashAndEncode.cpp b/tools/HashAndEncode.cpp
index 0bb44d5..3f2b847 100644
--- a/tools/HashAndEncode.cpp
+++ b/tools/HashAndEncode.cpp
@@ -1,9 +1,9 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 
-#include "HashAndEncode.h"
-#include "SkICC.h"
-#include "SkString.h"
+#include "include/core/SkICC.h"
+#include "include/core/SkString.h"
+#include "tools/HashAndEncode.h"
 #include "png.h"
 
 static constexpr skcms_TransferFunction k2020_TF =
diff --git a/tools/HashAndEncode.h b/tools/HashAndEncode.h
index e3808fc..0447fc4 100644
--- a/tools/HashAndEncode.h
+++ b/tools/HashAndEncode.h
@@ -3,9 +3,9 @@
 
 #pragma once
 
-#include "CommandLineFlags.h"
-#include "SkBitmap.h"
-#include "SkStream.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkStream.h"
+#include "tools/flags/CommandLineFlags.h"
 
 class HashAndEncode {
 public:
diff --git a/tools/LsanSuppressions.cpp b/tools/LsanSuppressions.cpp
index 6dcb214..4da984b 100644
--- a/tools/LsanSuppressions.cpp
+++ b/tools/LsanSuppressions.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if !defined(__has_feature)
     #define __has_feature(x) 0
diff --git a/tools/ProcStats.cpp b/tools/ProcStats.cpp
index 9515368..b9eae31 100644
--- a/tools/ProcStats.cpp
+++ b/tools/ProcStats.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "ProcStats.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "tools/ProcStats.h"
 
 #if defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) || defined(SK_BUILD_FOR_ANDROID)
     #include <sys/resource.h>
diff --git a/tools/Registry.h b/tools/Registry.h
index 6c35578..d5731a7 100644
--- a/tools/Registry.h
+++ b/tools/Registry.h
@@ -8,8 +8,8 @@
 #ifndef sk_tools_Registry_DEFINED
 #define sk_tools_Registry_DEFINED
 
-#include "SkNoncopyable.h"
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkNoncopyable.h"
 
 namespace sk_tools {
 
diff --git a/tools/ResourceFactory.h b/tools/ResourceFactory.h
index c253ee3..542989e 100644
--- a/tools/ResourceFactory.h
+++ b/tools/ResourceFactory.h
@@ -7,7 +7,7 @@
 #ifndef ResourceFactory_DEFINED
 #define ResourceFactory_DEFINED
 
-#include "SkData.h"
+#include "include/core/SkData.h"
 
 extern sk_sp<SkData> (*gResourceFactory)(const char*);
 
diff --git a/tools/Resources.cpp b/tools/Resources.cpp
index 8d10b59..89f857e 100644
--- a/tools/Resources.cpp
+++ b/tools/Resources.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "Resources.h"
-#include "CommandLineFlags.h"
-#include "ResourceFactory.h"
-#include "SkBitmap.h"
-#include "SkData.h"
-#include "SkImage.h"
-#include "SkImageGenerator.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkStream.h"
-#include "SkTypeface.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageGenerator.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
+#include "src/core/SkOSFile.h"
+#include "src/utils/SkOSPath.h"
+#include "tools/ResourceFactory.h"
+#include "tools/Resources.h"
+#include "tools/flags/CommandLineFlags.h"
 
 static DEFINE_string2(resourcePath, i, "resources",
                       "Directory with test resources: images, fonts, etc.");
diff --git a/tools/Resources.h b/tools/Resources.h
index 966ac6f..81bdd1b 100644
--- a/tools/Resources.h
+++ b/tools/Resources.h
@@ -8,8 +8,8 @@
 #ifndef Resources_DEFINED
 #define Resources_DEFINED
 
-#include "SkImage.h"
-#include "SkString.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkString.h"
 
 class SkBitmap;
 class SkData;
diff --git a/tools/Stats.h b/tools/Stats.h
index ecd5d74..526198e 100644
--- a/tools/Stats.h
+++ b/tools/Stats.h
@@ -8,9 +8,9 @@
 #ifndef Stats_DEFINED
 #define Stats_DEFINED
 
-#include "SkFloatingPoint.h"
-#include "SkString.h"
-#include "SkTSort.h"
+#include "include/core/SkString.h"
+#include "include/private/SkFloatingPoint.h"
+#include "src/core/SkTSort.h"
 
 #ifdef SK_BUILD_FOR_WIN
     static const char* kBars[] = { ".", "o", "O" };
diff --git a/tools/ToolUtils.cpp b/tools/ToolUtils.cpp
index d937aa9..b161e24 100644
--- a/tools/ToolUtils.cpp
+++ b/tools/ToolUtils.cpp
@@ -5,29 +5,29 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
-#include "CommandLineFlags.h"
-#include "SkBitmap.h"
-#include "SkBlendMode.h"
-#include "SkCanvas.h"
-#include "SkColorData.h"
-#include "SkColorPriv.h"
-#include "SkFloatingPoint.h"
-#include "SkFontMgrPriv.h"
-#include "SkFontPriv.h"
-#include "SkImage.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPixelRef.h"
-#include "SkPixmap.h"
-#include "SkPoint3.h"
-#include "SkRRect.h"
-#include "SkShader.h"
-#include "SkSurface.h"
-#include "SkTextBlob.h"
-#include "SkTypeface_win.h"
-#include "TestFontMgr.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkBlendMode.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPixelRef.h"
+#include "include/core/SkPixmap.h"
+#include "include/core/SkPoint3.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkShader.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTextBlob.h"
+#include "include/ports/SkTypeface_win.h"
+#include "include/private/SkColorData.h"
+#include "include/private/SkFloatingPoint.h"
+#include "src/core/SkFontMgrPriv.h"
+#include "src/core/SkFontPriv.h"
+#include "tools/ToolUtils.h"
+#include "tools/flags/CommandLineFlags.h"
+#include "tools/fonts/TestFontMgr.h"
 
 #include <cmath>
 #include <cstring>
diff --git a/tools/ToolUtils.h b/tools/ToolUtils.h
index ed747dc..9c5d4a2 100644
--- a/tools/ToolUtils.h
+++ b/tools/ToolUtils.h
@@ -8,25 +8,25 @@
 #ifndef ToolUtils_DEFINED
 #define ToolUtils_DEFINED
 
-#include "SkColor.h"
-#include "SkData.h"
-#include "SkEncodedImageFormat.h"
-#include "SkFont.h"
-#include "SkFontStyle.h"
-#include "SkFontTypes.h"
-#include "SkImageEncoder.h"
-#include "SkImageInfo.h"
-#include "SkPixmap.h"
-#include "SkRandom.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkStream.h"
-#include "SkSurface.h"
-#include "SkTArray.h"
-#include "SkTDArray.h"
-#include "SkTypeface.h"
-#include "SkTypes.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkData.h"
+#include "include/core/SkEncodedImageFormat.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkFontTypes.h"
+#include "include/core/SkImageEncoder.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkPixmap.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTypeface.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTDArray.h"
+#include "include/utils/SkRandom.h"
 
 class SkBitmap;
 class SkCanvas;
diff --git a/tools/UrlDataManager.cpp b/tools/UrlDataManager.cpp
index a30d8ba..40d909f 100644
--- a/tools/UrlDataManager.cpp
+++ b/tools/UrlDataManager.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "UrlDataManager.h"
+#include "tools/UrlDataManager.h"
 
 bool operator==(const SkData& a, const SkData& b) {
     return a.equals(&b);
diff --git a/tools/UrlDataManager.h b/tools/UrlDataManager.h
index bae1dc7..d68b119 100644
--- a/tools/UrlDataManager.h
+++ b/tools/UrlDataManager.h
@@ -8,10 +8,10 @@
 #ifndef SkUrlDataManager_DEFINED
 #define SkUrlDataManager_DEFINED
 
-#include "SkData.h"
-#include "SkOpts.h"
-#include "SkString.h"
-#include "SkTDynamicHash.h"
+#include "include/core/SkData.h"
+#include "include/core/SkString.h"
+#include "src/core/SkOpts.h"
+#include "src/core/SkTDynamicHash.h"
 
 /*
  * A simple class which allows clients to add opaque data types, and returns a url where this data
diff --git a/tools/chrome_fuzz.cpp b/tools/chrome_fuzz.cpp
index fcc0db2..3ae775e 100644
--- a/tools/chrome_fuzz.cpp
+++ b/tools/chrome_fuzz.cpp
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "SkCanvas.h"
+#include "include/core/SkCanvas.h"
 #include "SkFlattenableSerialization.h"
-#include "SkImageFilter.h"
-#include "SkOSFile.h"
-#include "SkString.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkString.h"
+#include "src/core/SkOSFile.h"
 
 #include <stdio.h>
 
diff --git a/tools/debugger/DebugCanvas.cpp b/tools/debugger/DebugCanvas.cpp
index 04c1001..40f0cf7 100644
--- a/tools/debugger/DebugCanvas.cpp
+++ b/tools/debugger/DebugCanvas.cpp
@@ -5,20 +5,20 @@
  * found in the LICENSE file.
  */
 
-#include "DebugCanvas.h"
-#include "DrawCommand.h"
-#include "SkCanvasPriv.h"
-#include "SkClipOpPriv.h"
-#include "SkJSONWriter.h"
-#include "SkPaintFilterCanvas.h"
-#include "SkPicture.h"
-#include "SkRectPriv.h"
-#include "SkTextBlob.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkTextBlob.h"
+#include "include/utils/SkPaintFilterCanvas.h"
+#include "src/core/SkCanvasPriv.h"
+#include "src/core/SkClipOpPriv.h"
+#include "src/core/SkRectPriv.h"
+#include "src/utils/SkJSONWriter.h"
+#include "tools/debugger/DebugCanvas.h"
+#include "tools/debugger/DrawCommand.h"
 
-#include "GrAuditTrail.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrRenderTargetContext.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/GrAuditTrail.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
 
 #define SKDEBUGCANVAS_VERSION 1
 #define SKDEBUGCANVAS_ATTRIBUTE_VERSION "version"
diff --git a/tools/debugger/DebugCanvas.h b/tools/debugger/DebugCanvas.h
index d03c373..0041a7b 100644
--- a/tools/debugger/DebugCanvas.h
+++ b/tools/debugger/DebugCanvas.h
@@ -8,15 +8,15 @@
 #ifndef SKDEBUGCANVAS_H_
 #define SKDEBUGCANVAS_H_
 
-#include "DrawCommand.h"
-#include "SkCanvas.h"
-#include "SkCanvasVirtualEnforcer.h"
-#include "SkPath.h"
-#include "SkPathOps.h"
-#include "SkString.h"
-#include "SkTArray.h"
-#include "SkVertices.h"
-#include "UrlDataManager.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkCanvasVirtualEnforcer.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkString.h"
+#include "include/core/SkVertices.h"
+#include "include/pathops/SkPathOps.h"
+#include "include/private/SkTArray.h"
+#include "tools/UrlDataManager.h"
+#include "tools/debugger/DrawCommand.h"
 
 class GrAuditTrail;
 class SkNWayCanvas;
diff --git a/tools/debugger/DrawCommand.cpp b/tools/debugger/DrawCommand.cpp
index b3cce66..5f80845 100644
--- a/tools/debugger/DrawCommand.cpp
+++ b/tools/debugger/DrawCommand.cpp
@@ -5,30 +5,30 @@
  * found in the LICENSE file.
  */
 
-#include "DrawCommand.h"
+#include "tools/debugger/DrawCommand.h"
 
 #include <algorithm>
-#include "JsonWriteBuffer.h"
-#include "SkAutoMalloc.h"
-#include "SkCanvasPriv.h"
-#include "SkClipOpPriv.h"
-#include "SkColorFilter.h"
-#include "SkDashPathEffect.h"
-#include "SkDrawable.h"
-#include "SkImageFilter.h"
-#include "SkLatticeIter.h"
-#include "SkMaskFilterBase.h"
-#include "SkPaintDefaults.h"
-#include "SkPathEffect.h"
-#include "SkPicture.h"
-#include "SkPngEncoder.h"
-#include "SkReadBuffer.h"
-#include "SkRectPriv.h"
-#include "SkShadowFlags.h"
-#include "SkTHash.h"
-#include "SkTextBlobPriv.h"
-#include "SkTypeface.h"
-#include "SkWriteBuffer.h"
+#include "include/core/SkColorFilter.h"
+#include "include/core/SkDrawable.h"
+#include "include/core/SkImageFilter.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkTypeface.h"
+#include "include/effects/SkDashPathEffect.h"
+#include "include/encode/SkPngEncoder.h"
+#include "include/private/SkShadowFlags.h"
+#include "include/private/SkTHash.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/core/SkCanvasPriv.h"
+#include "src/core/SkClipOpPriv.h"
+#include "src/core/SkLatticeIter.h"
+#include "src/core/SkMaskFilterBase.h"
+#include "src/core/SkPaintDefaults.h"
+#include "src/core/SkReadBuffer.h"
+#include "src/core/SkRectPriv.h"
+#include "src/core/SkTextBlobPriv.h"
+#include "src/core/SkWriteBuffer.h"
+#include "tools/debugger/JsonWriteBuffer.h"
 
 #define DEBUGCANVAS_ATTRIBUTE_COMMAND "command"
 #define DEBUGCANVAS_ATTRIBUTE_VISIBLE "visible"
diff --git a/tools/debugger/DrawCommand.h b/tools/debugger/DrawCommand.h
index 3e1dbea..1ba4809 100644
--- a/tools/debugger/DrawCommand.h
+++ b/tools/debugger/DrawCommand.h
@@ -8,20 +8,20 @@
 #ifndef SKDRAWCOMMAND_H_
 #define SKDRAWCOMMAND_H_
 
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkDrawShadowInfo.h"
-#include "SkFlattenable.h"
-#include "SkJSONWriter.h"
-#include "SkPath.h"
-#include "SkRRect.h"
-#include "SkRSXform.h"
-#include "SkRegion.h"
-#include "SkString.h"
-#include "SkTDArray.h"
-#include "SkTLazy.h"
-#include "SkVertices.h"
-#include "UrlDataManager.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFlattenable.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkRSXform.h"
+#include "include/core/SkRegion.h"
+#include "include/core/SkString.h"
+#include "include/core/SkVertices.h"
+#include "include/private/SkTDArray.h"
+#include "src/core/SkDrawShadowInfo.h"
+#include "src/core/SkTLazy.h"
+#include "src/utils/SkJSONWriter.h"
+#include "tools/UrlDataManager.h"
 
 class DrawCommand {
 public:
diff --git a/tools/debugger/JsonWriteBuffer.cpp b/tools/debugger/JsonWriteBuffer.cpp
index 5e37806..7257167 100644
--- a/tools/debugger/JsonWriteBuffer.cpp
+++ b/tools/debugger/JsonWriteBuffer.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "JsonWriteBuffer.h"
+#include "tools/debugger/JsonWriteBuffer.h"
 
-#include "DrawCommand.h"
+#include "tools/debugger/DrawCommand.h"
 
 void JsonWriteBuffer::append(const char* type) {
     SkString fullName = SkStringPrintf("%02d_%s", fCount++, type);
diff --git a/tools/debugger/JsonWriteBuffer.h b/tools/debugger/JsonWriteBuffer.h
index 6fdd789..78ed4d2 100644
--- a/tools/debugger/JsonWriteBuffer.h
+++ b/tools/debugger/JsonWriteBuffer.h
@@ -8,7 +8,7 @@
 #ifndef JsonWriteBuffer_DEFINED
 #define JsonWriteBuffer_DEFINED
 
-#include "SkWriteBuffer.h"
+#include "src/core/SkWriteBuffer.h"
 
 class SkJSONWriter;
 class SkPath;
diff --git a/tools/dump_record.cpp b/tools/dump_record.cpp
index 1c8ed0c..abfb12f 100644
--- a/tools/dump_record.cpp
+++ b/tools/dump_record.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "CommandLineFlags.h"
-#include "DumpRecord.h"
-#include "SkBitmap.h"
-#include "SkPicture.h"
-#include "SkPictureRecorder.h"
-#include "SkRecordDraw.h"
-#include "SkRecordOpts.h"
-#include "SkRecorder.h"
-#include "SkStream.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkStream.h"
+#include "src/core/SkRecordDraw.h"
+#include "src/core/SkRecordOpts.h"
+#include "src/core/SkRecorder.h"
+#include "tools/DumpRecord.h"
+#include "tools/flags/CommandLineFlags.h"
 
 #include <stdio.h>
 
diff --git a/tools/embed_resources.py b/tools/embed_resources.py
index 98b6c96..5e8d0e4 100644
--- a/tools/embed_resources.py
+++ b/tools/embed_resources.py
@@ -39,7 +39,7 @@
   args = parser.parse_args()
 
   out = args.output.write;
-  out('#include "SkTypes.h"\n')
+  out('#include "include/core/SkTypes.h"\n')
 
   # Write the resources.
   index = 0
diff --git a/tools/fiddle/draw.cpp b/tools/fiddle/draw.cpp
index f17380a..32e52c0 100644
--- a/tools/fiddle/draw.cpp
+++ b/tools/fiddle/draw.cpp
@@ -9,7 +9,7 @@
 // assembled by the fiddler program to compile into a fiddle: an
 // implementation of the GetDrawOptions() and draw() functions.
 
-#include "fiddle_main.h"
+#include "tools/fiddle/fiddle_main.h"
 DrawOptions GetDrawOptions() {
     // path *should* be absolute.
     static const char path[] = "resources/images/color_wheel.png";
diff --git a/tools/fiddle/egl_context.cpp b/tools/fiddle/egl_context.cpp
index 1dac076..d7b6e58 100644
--- a/tools/fiddle/egl_context.cpp
+++ b/tools/fiddle/egl_context.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GrContext.h"
-#include "SkRefCnt.h"
-#include "gl/GrGLFunctions.h"
-#include "gl/GrGLInterface.h"
-#include "gl/GLTestContext.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/gl/GrGLFunctions.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "tools/gpu/gl/GLTestContext.h"
 
 #include <EGL/egl.h>
 #include <GLES2/gl2.h>
diff --git a/tools/fiddle/examples.cpp b/tools/fiddle/examples.cpp
index d5cd067..03d3fd2 100644
--- a/tools/fiddle/examples.cpp
+++ b/tools/fiddle/examples.cpp
@@ -1,7 +1,7 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 
-#include "examples.h"
+#include "tools/fiddle/examples.h"
 
 template sk_tools::Registry<fiddle::Example>* sk_tools::Registry<fiddle::Example>::gHead;
 
diff --git a/tools/fiddle/examples.h b/tools/fiddle/examples.h
index 70927b8..8ecc328 100644
--- a/tools/fiddle/examples.h
+++ b/tools/fiddle/examples.h
@@ -3,7 +3,7 @@
 #ifndef examples_DEFINED
 #define examples_DEFINED
 
-#include "Registry.h"
+#include "tools/Registry.h"
 #include "skia.h"
 
 #include <cmath>
diff --git a/tools/fiddle/fiddle_main.cpp b/tools/fiddle/fiddle_main.cpp
index 97e647b..4e01a96 100644
--- a/tools/fiddle/fiddle_main.cpp
+++ b/tools/fiddle/fiddle_main.cpp
@@ -10,22 +10,22 @@
 #include <sstream>
 #include <string>
 
-#include "CommandLineFlags.h"
-#include "SkAutoPixmapStorage.h"
-#include "SkMipMap.h"
-#include "SkUtils.h"
+#include "src/core/SkAutoPixmapStorage.h"
+#include "src/core/SkMipMap.h"
+#include "src/core/SkUtils.h"
+#include "tools/flags/CommandLineFlags.h"
 
-#include "fiddle_main.h"
+#include "tools/fiddle/fiddle_main.h"
 
 static DEFINE_double(duration, 1.0,
                      "The total duration, in seconds, of the animation we are drawing.");
 static DEFINE_double(frame, 1.0,
                      "A double value in [0, 1] that specifies the point in animation to draw.");
 
-#include "GrBackendSurface.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "gl/GLTestContext.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "tools/gpu/gl/GLTestContext.h"
 
 // Globals externed in fiddle_main.h
 sk_sp<GrTexture>      backingTexture;  // not externed
diff --git a/tools/fiddle/fiddle_main.h b/tools/fiddle/fiddle_main.h
index ca41998..f497fe1 100644
--- a/tools/fiddle/fiddle_main.h
+++ b/tools/fiddle/fiddle_main.h
@@ -8,14 +8,14 @@
 #define fiddle_main_DEFINED
 
 #ifdef FIDDLE_BUILD_TEST
-    #include "GrContext.h"
-    #include "SkCanvas.h"
-    #include "SkDocument.h"
-    #include "SkPictureRecorder.h"
-    #include "SkStream.h"
-    #include "SkSurface.h"
-    #include "gl/GrGLAssembleInterface.h"
-    #include "gl/GrGLInterface.h"
+    #include "include/core/SkCanvas.h"
+    #include "include/core/SkDocument.h"
+    #include "include/core/SkPictureRecorder.h"
+    #include "include/core/SkStream.h"
+    #include "include/core/SkSurface.h"
+    #include "include/gpu/GrContext.h"
+    #include "include/gpu/gl/GrGLAssembleInterface.h"
+    #include "include/gpu/gl/GrGLInterface.h"
 #else
     #include "skia.h"
 #endif
diff --git a/tools/fiddle/null_context.cpp b/tools/fiddle/null_context.cpp
index 903ae10..360ddd9 100644
--- a/tools/fiddle/null_context.cpp
+++ b/tools/fiddle/null_context.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "fiddle_main.h"
+#include "tools/fiddle/fiddle_main.h"
 
 // create_grcontext for when neither Mesa nor EGL are available.
 sk_sp<GrContext> create_grcontext(std::ostringstream& driverinfo,
diff --git a/tools/flags/CommandLineFlags.cpp b/tools/flags/CommandLineFlags.cpp
index 9015531..934ff12 100644
--- a/tools/flags/CommandLineFlags.cpp
+++ b/tools/flags/CommandLineFlags.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "CommandLineFlags.h"
-#include "SkTDArray.h"
-#include "SkTSort.h"
+#include "include/private/SkTDArray.h"
+#include "src/core/SkTSort.h"
+#include "tools/flags/CommandLineFlags.h"
 
 #include <stdlib.h>
 
diff --git a/tools/flags/CommandLineFlags.h b/tools/flags/CommandLineFlags.h
index 720fa39..7fa3068 100644
--- a/tools/flags/CommandLineFlags.h
+++ b/tools/flags/CommandLineFlags.h
@@ -8,9 +8,9 @@
 #ifndef SK_COMMAND_LINE_FLAGS_H
 #define SK_COMMAND_LINE_FLAGS_H
 
-#include "../private/SkTArray.h"
-#include "../private/SkTDArray.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTDArray.h"
 
 /**
  *  Including this file (and compiling CommandLineFlags.cpp) provides command line
diff --git a/tools/flags/CommonFlags.h b/tools/flags/CommonFlags.h
index df6f218..a03649d 100644
--- a/tools/flags/CommonFlags.h
+++ b/tools/flags/CommonFlags.h
@@ -6,9 +6,9 @@
  */
 #pragma once
 
-#include "../private/SkTArray.h"
-#include "CommandLineFlags.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "include/private/SkTArray.h"
+#include "tools/flags/CommandLineFlags.h"
 
 /**
  *  Helper to assist in collecting image paths from |dir| specified through a command line
diff --git a/tools/flags/CommonFlagsAA.cpp b/tools/flags/CommonFlagsAA.cpp
index 651fecf..e2df08a 100644
--- a/tools/flags/CommonFlagsAA.cpp
+++ b/tools/flags/CommonFlagsAA.cpp
@@ -1,8 +1,8 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 
-#include "CommonFlags.h"
-#include "SkScan.h"
+#include "src/core/SkScan.h"
+#include "tools/flags/CommonFlags.h"
 
 static DEFINE_bool(analyticAA, true, "If false, disable analytic anti-aliasing");
 static DEFINE_bool(forceAnalyticAA, false,
diff --git a/tools/flags/CommonFlagsConfig.cpp b/tools/flags/CommonFlagsConfig.cpp
index ee41b60..b5ed113 100644
--- a/tools/flags/CommonFlagsConfig.cpp
+++ b/tools/flags/CommonFlagsConfig.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "CommonFlagsConfig.h"
-#include "SkColorSpacePriv.h"
-#include "SkImageInfo.h"
-#include "SkTHash.h"
+#include "include/core/SkImageInfo.h"
+#include "include/private/SkTHash.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "tools/flags/CommonFlagsConfig.h"
 
 #include <stdlib.h>
 
diff --git a/tools/flags/CommonFlagsConfig.h b/tools/flags/CommonFlagsConfig.h
index 63b18ce..8dc780a 100644
--- a/tools/flags/CommonFlagsConfig.h
+++ b/tools/flags/CommonFlagsConfig.h
@@ -8,8 +8,8 @@
 #ifndef SK_COMMON_FLAGS_CONFIG_H
 #define SK_COMMON_FLAGS_CONFIG_H
 
-#include "CommandLineFlags.h"
-#include "GrContextFactory.h"
+#include "tools/flags/CommandLineFlags.h"
+#include "tools/gpu/GrContextFactory.h"
 
 DECLARE_string(config);
 
diff --git a/tools/flags/CommonFlagsGpu.cpp b/tools/flags/CommonFlagsGpu.cpp
index 5a90789..77f2750 100644
--- a/tools/flags/CommonFlagsGpu.cpp
+++ b/tools/flags/CommonFlagsGpu.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "CommonFlags.h"
-#include "GrContextOptions.h"
-#include "SkExecutor.h"
+#include "include/core/SkExecutor.h"
+#include "include/gpu/GrContextOptions.h"
+#include "tools/flags/CommonFlags.h"
 
 
 DEFINE_int(gpuThreads,
diff --git a/tools/flags/CommonFlagsImages.cpp b/tools/flags/CommonFlagsImages.cpp
index a89c989..60b5f12 100644
--- a/tools/flags/CommonFlagsImages.cpp
+++ b/tools/flags/CommonFlagsImages.cpp
@@ -1,9 +1,9 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 
-#include "CommonFlags.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
+#include "src/core/SkOSFile.h"
+#include "src/utils/SkOSPath.h"
+#include "tools/flags/CommonFlags.h"
 
 bool CollectImages(CommandLineFlags::StringArray images, SkTArray<SkString>* output) {
     SkASSERT(output);
diff --git a/tools/fm/fm.cpp b/tools/fm/fm.cpp
index 67e2e6e..f74cb54 100644
--- a/tools/fm/fm.cpp
+++ b/tools/fm/fm.cpp
@@ -1,39 +1,39 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 
-#include "CommandLineFlags.h"
-#include "CommonFlags.h"
-#include "CrashHandler.h"
-#include "EventTracingPriv.h"
-#include "GrContextFactory.h"
-#include "GrContextOptions.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrPersistentCacheUtils.h"
-#include "HashAndEncode.h"
-#include "MemoryCache.h"
-#include "SkCodec.h"
-#include "SkColorSpace.h"
-#include "SkColorSpacePriv.h"
-#include "SkGraphics.h"
-#include "SkMD5.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkPDFDocument.h"
-#include "SkPicture.h"
-#include "SkPictureRecorder.h"
-#include "SkSVGDOM.h"
-#include "SkTHash.h"
-#include "ToolUtils.h"
-#include "gm.h"
+#include "experimental/svg/model/SkSVGDOM.h"
+#include "gm/gm.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/docs/SkPDFDocument.h"
+#include "include/gpu/GrContextOptions.h"
+#include "include/private/SkTHash.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkMD5.h"
+#include "src/core/SkOSFile.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrPersistentCacheUtils.h"
+#include "src/utils/SkOSPath.h"
+#include "tools/CrashHandler.h"
+#include "tools/HashAndEncode.h"
+#include "tools/ToolUtils.h"
+#include "tools/flags/CommandLineFlags.h"
+#include "tools/flags/CommonFlags.h"
+#include "tools/gpu/GrContextFactory.h"
+#include "tools/gpu/MemoryCache.h"
+#include "tools/trace/EventTracingPriv.h"
 #include <chrono>
 #include <functional>
 #include <stdio.h>
 #include <stdlib.h>
 
 #if defined(SK_ENABLE_SKOTTIE)
-    #include "Skottie.h"
-    #include "SkottieUtils.h"
+    #include "modules/skottie/include/Skottie.h"
+    #include "modules/skottie/utils/SkottieUtils.h"
 #endif
 
 using sk_gpu_test::GrContextFactory;
diff --git a/tools/fonts/RandomScalerContext.cpp b/tools/fonts/RandomScalerContext.cpp
index 70aaf92..65ca854 100644
--- a/tools/fonts/RandomScalerContext.cpp
+++ b/tools/fonts/RandomScalerContext.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "RandomScalerContext.h"
-#include "SkAdvancedTypefaceMetrics.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkGlyph.h"
-#include "SkMakeUnique.h"
-#include "SkPath.h"
-#include "SkRectPriv.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "src/core/SkAdvancedTypefaceMetrics.h"
+#include "src/core/SkGlyph.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkRectPriv.h"
+#include "tools/fonts/RandomScalerContext.h"
 
 class SkDescriptor;
 
diff --git a/tools/fonts/RandomScalerContext.h b/tools/fonts/RandomScalerContext.h
index ff1ef0c..2601fd4 100644
--- a/tools/fonts/RandomScalerContext.h
+++ b/tools/fonts/RandomScalerContext.h
@@ -8,8 +8,8 @@
 #ifndef RandomScalerContext_DEFINED
 #define RandomScalerContext_DEFINED
 
-#include "SkScalerContext.h"
-#include "SkTypeface.h"
+#include "include/core/SkTypeface.h"
+#include "src/core/SkScalerContext.h"
 
 /*
  * This scaler context is for debug only purposes.  It will 'randomly' but deterministically return
diff --git a/tools/fonts/TestEmptyTypeface.h b/tools/fonts/TestEmptyTypeface.h
index 77e6f94..62dce3e 100644
--- a/tools/fonts/TestEmptyTypeface.h
+++ b/tools/fonts/TestEmptyTypeface.h
@@ -8,7 +8,7 @@
 #ifndef TestEmptyTypeface_DEFINED
 #define TestEmptyTypeface_DEFINED
 
-#include "SkTypeface.h"
+#include "include/core/SkTypeface.h"
 
 class TestEmptyTypeface : public SkTypeface {
 public:
diff --git a/tools/fonts/TestFontMgr.cpp b/tools/fonts/TestFontMgr.cpp
index 2b4daa8..3b70a0a 100644
--- a/tools/fonts/TestFontMgr.cpp
+++ b/tools/fonts/TestFontMgr.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "TestFontMgr.h"
-#include "SkFontDescriptor.h"
-#include "TestTypeface.h"
-#include "ToolUtils.h"
+#include "src/core/SkFontDescriptor.h"
+#include "tools/ToolUtils.h"
+#include "tools/fonts/TestFontMgr.h"
+#include "tools/fonts/TestTypeface.h"
 
 #ifdef SK_XML
-#include "TestSVGTypeface.h"
+#include "tools/fonts/TestSVGTypeface.h"
 #endif
 
 #include <vector>
diff --git a/tools/fonts/TestFontMgr.h b/tools/fonts/TestFontMgr.h
index f39766b..b3afd2ff 100644
--- a/tools/fonts/TestFontMgr.h
+++ b/tools/fonts/TestFontMgr.h
@@ -8,7 +8,7 @@
 #ifndef TestFontMgr_DEFINED
 #define TestFontMgr_DEFINED
 
-#include "SkFontMgr.h"
+#include "include/core/SkFontMgr.h"
 
 // An SkFontMgr that always uses ToolUtils::create_portable_typeface().
 
diff --git a/tools/fonts/TestSVGTypeface.cpp b/tools/fonts/TestSVGTypeface.cpp
index e180f96..de4e1dc 100644
--- a/tools/fonts/TestSVGTypeface.cpp
+++ b/tools/fonts/TestSVGTypeface.cpp
@@ -5,44 +5,44 @@
  * found in the LICENSE file.
  */
 
-#include "TestSVGTypeface.h"
+#include "tools/fonts/TestSVGTypeface.h"
 
 #ifdef SK_XML
 
-#include "Resources.h"
-#include "SkAdvancedTypefaceMetrics.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkData.h"
-#include "SkEncodedImageFormat.h"
-#include "SkFontDescriptor.h"
-#include "SkFontPriv.h"
-#include "SkFontStyle.h"
-#include "SkGeometry.h"
-#include "SkGlyph.h"
-#include "SkImage.h"
-#include "SkImageInfo.h"
-#include "SkMask.h"
-#include "SkMatrix.h"
-#include "SkNoDrawCanvas.h"
-#include "SkOTUtils.h"
-#include "SkPaintPriv.h"
-#include "SkPath.h"
-#include "SkPathEffect.h"
-#include "SkPathOps.h"
-#include "SkPathPriv.h"
-#include "SkPixmap.h"
-#include "SkPointPriv.h"
-#include "SkRRect.h"
-#include "SkSVGDOM.h"
-#include "SkScalerContext.h"
-#include "SkSize.h"
-#include "SkStream.h"
-#include "SkSurface.h"
-#include "SkTDArray.h"
-#include "SkTemplates.h"
-#include "SkUtils.h"
+#include "experimental/svg/model/SkSVGDOM.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkData.h"
+#include "include/core/SkEncodedImageFormat.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkPixmap.h"
+#include "include/core/SkRRect.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkSurface.h"
+#include "include/pathops/SkPathOps.h"
+#include "include/private/SkTDArray.h"
+#include "include/private/SkTemplates.h"
+#include "include/utils/SkNoDrawCanvas.h"
+#include "src/core/SkAdvancedTypefaceMetrics.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/core/SkFontPriv.h"
+#include "src/core/SkGeometry.h"
+#include "src/core/SkGlyph.h"
+#include "src/core/SkMask.h"
+#include "src/core/SkPaintPriv.h"
+#include "src/core/SkPathPriv.h"
+#include "src/core/SkPointPriv.h"
+#include "src/core/SkScalerContext.h"
+#include "src/core/SkUtils.h"
+#include "src/sfnt/SkOTUtils.h"
+#include "tools/Resources.h"
 
 #include <utility>
 
diff --git a/tools/fonts/TestSVGTypeface.h b/tools/fonts/TestSVGTypeface.h
index c495fe2..44d3af2 100644
--- a/tools/fonts/TestSVGTypeface.h
+++ b/tools/fonts/TestSVGTypeface.h
@@ -8,22 +8,22 @@
 #ifndef TestSVGTypeface_DEFINED
 #define TestSVGTypeface_DEFINED
 
-#include "SkFontArguments.h"
-#include "SkFontMetrics.h"
-#include "SkMutex.h"
-#include "SkPaint.h"
-#include "SkPathOps.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkSpan.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkTArray.h"
-#include "SkTHash.h"
-#include "SkTypeface.h"
-#include "SkTypes.h"
+#include "include/core/SkFontArguments.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTypeface.h"
+#include "include/core/SkTypes.h"
+#include "include/pathops/SkPathOps.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkTArray.h"
+#include "include/private/SkTHash.h"
+#include "src/core/SkSpan.h"
 
 #include <memory>
 
diff --git a/tools/fonts/TestTypeface.cpp b/tools/fonts/TestTypeface.cpp
index 4641eef..e887d3e 100644
--- a/tools/fonts/TestTypeface.cpp
+++ b/tools/fonts/TestTypeface.cpp
@@ -5,26 +5,26 @@
  * found in the LICENSE file.
  */
 
-#include "TestTypeface.h"
-#include "SkAdvancedTypefaceMetrics.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkFontDescriptor.h"
-#include "SkFontMetrics.h"
-#include "SkFontPriv.h"
-#include "SkGlyph.h"
-#include "SkImageInfo.h"
-#include "SkMatrix.h"
-#include "SkOTUtils.h"
-#include "SkPaintPriv.h"
-#include "SkPath.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-#include "SkScalerContext.h"
-#include "SkString.h"
-#include "SkTDArray.h"
-#include "SkTo.h"
-#include "SkUtils.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkString.h"
+#include "include/private/SkTDArray.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkAdvancedTypefaceMetrics.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/core/SkFontPriv.h"
+#include "src/core/SkGlyph.h"
+#include "src/core/SkPaintPriv.h"
+#include "src/core/SkScalerContext.h"
+#include "src/core/SkUtils.h"
+#include "src/sfnt/SkOTUtils.h"
+#include "tools/fonts/TestTypeface.h"
 
 #include <utility>
 
diff --git a/tools/fonts/TestTypeface.h b/tools/fonts/TestTypeface.h
index c37a2eb..9ebf3f1 100644
--- a/tools/fonts/TestTypeface.h
+++ b/tools/fonts/TestTypeface.h
@@ -8,15 +8,15 @@
 #ifndef TestTypeface_DEFINED
 #define TestTypeface_DEFINED
 
-#include "SkFixed.h"
-#include "SkFontArguments.h"
-#include "SkFontMetrics.h"
-#include "SkFontStyle.h"
-#include "SkPaint.h"
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-#include "SkTypeface.h"
-#include "SkTypes.h"
+#include "include/core/SkFontArguments.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkPaint.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkTypeface.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkFixed.h"
 
 #include <memory>
 
diff --git a/tools/fonts/ToolUtilsFont.cpp b/tools/fonts/ToolUtilsFont.cpp
index 7d00682..ad68785 100644
--- a/tools/fonts/ToolUtilsFont.cpp
+++ b/tools/fonts/ToolUtilsFont.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "ToolUtils.h"
+#include "tools/ToolUtils.h"
 
-#include "Resources.h"
-#include "SkFontMgr.h"
-#include "SkFontStyle.h"
-#include "SkMutex.h"
-#include "SkOSFile.h"
-#include "SkTypeface.h"
-#include "SkUTF.h"
-#include "TestFontMgr.h"
+#include "include/core/SkFontMgr.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkMutex.h"
+#include "src/core/SkOSFile.h"
+#include "src/utils/SkUTF.h"
+#include "tools/Resources.h"
+#include "tools/fonts/TestFontMgr.h"
 
 namespace ToolUtils {
 
diff --git a/tools/fonts/create_test_font.cpp b/tools/fonts/create_test_font.cpp
index 3893137..d612891 100644
--- a/tools/fonts/create_test_font.cpp
+++ b/tools/fonts/create_test_font.cpp
@@ -9,18 +9,18 @@
 // and ./tools/fonts/test_font_<generic name>.inc which are read by
 // ./tools/fonts/TestFontMgr.cpp
 
-#include "SkFont.h"
-#include "SkFontMetrics.h"
-#include "SkFontStyle.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkPath.h"
-#include "SkSpan.h"
-#include "SkStream.h"
-#include "SkTArray.h"
-#include "SkTSort.h"
-#include "SkTypeface.h"
-#include "SkUTF.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkFontMetrics.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkPath.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypeface.h"
+#include "include/private/SkTArray.h"
+#include "src/core/SkOSFile.h"
+#include "src/core/SkSpan.h"
+#include "src/core/SkTSort.h"
+#include "src/utils/SkOSPath.h"
+#include "src/utils/SkUTF.h"
 
 #include <stdio.h>
 
diff --git a/tools/fonts/create_test_font_color.cpp b/tools/fonts/create_test_font_color.cpp
index 04d9e5e..517c1eb 100644
--- a/tools/fonts/create_test_font_color.cpp
+++ b/tools/fonts/create_test_font_color.cpp
@@ -8,11 +8,11 @@
 // running create_test_font_color generates ./<cbdt|sbix|cpal>.ttx
 // which are read by fonttools ttx to produce native fonts.
 
-#include "CommandLineFlags.h"
-#include "SkRefCnt.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "TestSVGTypeface.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "tools/flags/CommandLineFlags.h"
+#include "tools/fonts/TestSVGTypeface.h"
 
 static void export_ttx(sk_sp<TestSVGTypeface> typeface,
                        SkString               prefix,
diff --git a/tools/get_current_monitor_profile.cpp b/tools/get_current_monitor_profile.cpp
index 096ecd0..9f2bd3c 100644
--- a/tools/get_current_monitor_profile.cpp
+++ b/tools/get_current_monitor_profile.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkStream.h"
+#include "include/core/SkStream.h"
 
 #if defined(SK_BUILD_FOR_MAC)
 #include <ApplicationServices/ApplicationServices.h>
diff --git a/tools/get_images_from_skps.cpp b/tools/get_images_from_skps.cpp
index d573843..a75d47f 100644
--- a/tools/get_images_from_skps.cpp
+++ b/tools/get_images_from_skps.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "CommandLineFlags.h"
-#include "SkBitmap.h"
-#include "SkCodec.h"
-#include "SkColorSpace.h"
-#include "SkData.h"
-#include "SkJSONWriter.h"
-#include "SkMD5.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkPicture.h"
-#include "SkSerialProcs.h"
-#include "SkStream.h"
-#include "SkTHash.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkColorSpace.h"
+#include "include/core/SkData.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkSerialProcs.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkTHash.h"
+#include "src/core/SkMD5.h"
+#include "src/core/SkOSFile.h"
+#include "src/utils/SkJSONWriter.h"
+#include "src/utils/SkOSPath.h"
+#include "tools/flags/CommandLineFlags.h"
 
 #include <iostream>
 #include <map>
diff --git a/tools/gpu/FenceSync.h b/tools/gpu/FenceSync.h
index 4fe724a..146b3a2 100644
--- a/tools/gpu/FenceSync.h
+++ b/tools/gpu/FenceSync.h
@@ -8,7 +8,7 @@
 #ifndef FenceSync_DEFINED
 #define FenceSync_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 namespace sk_gpu_test {
 
diff --git a/tools/gpu/GpuTimer.h b/tools/gpu/GpuTimer.h
index f5c9c91..048dec7 100644
--- a/tools/gpu/GpuTimer.h
+++ b/tools/gpu/GpuTimer.h
@@ -8,8 +8,8 @@
 #ifndef GpuTimer_DEFINED
 #define GpuTimer_DEFINED
 
-#include "SkTypes.h"
-#include "SkExchange.h"
+#include "include/core/SkTypes.h"
+#include "src/core/SkExchange.h"
 
 #include <chrono>
 
diff --git a/tools/gpu/GrContextFactory.cpp b/tools/gpu/GrContextFactory.cpp
index 150a880..f5520d2 100644
--- a/tools/gpu/GrContextFactory.cpp
+++ b/tools/gpu/GrContextFactory.cpp
@@ -6,23 +6,23 @@
  * found in the LICENSE file.
  */
 
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "gl/GLTestContext.h"
+#include "src/gpu/GrContextPriv.h"
+#include "tools/gpu/GrContextFactory.h"
+#include "tools/gpu/gl/GLTestContext.h"
 
 #if SK_ANGLE
-    #include "gl/angle/GLTestContext_angle.h"
+    #include "tools/gpu/gl/angle/GLTestContext_angle.h"
 #endif
-#include "gl/command_buffer/GLTestContext_command_buffer.h"
+#include "tools/gpu/gl/command_buffer/GLTestContext_command_buffer.h"
 #ifdef SK_VULKAN
-#include "vk/VkTestContext.h"
+#include "tools/gpu/vk/VkTestContext.h"
 #endif
 #ifdef SK_METAL
-#include "mtl/MtlTestContext.h"
+#include "tools/gpu/mtl/MtlTestContext.h"
 #endif
-#include "gl/GrGLGpu.h"
-#include "mock/MockTestContext.h"
-#include "GrCaps.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/gl/GrGLGpu.h"
+#include "tools/gpu/mock/MockTestContext.h"
 
 #if defined(SK_BUILD_FOR_WIN) && defined(SK_ENABLE_DISCRETE_GPU)
 extern "C" {
diff --git a/tools/gpu/GrContextFactory.h b/tools/gpu/GrContextFactory.h
index 4a7927c..c708527 100644
--- a/tools/gpu/GrContextFactory.h
+++ b/tools/gpu/GrContextFactory.h
@@ -8,11 +8,11 @@
 #ifndef GrContextFactory_DEFINED
 #define GrContextFactory_DEFINED
 
-#include "GrContext.h"
-#include "GrContextOptions.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrContextOptions.h"
 
-#include "gl/GLTestContext.h"
-#include "SkTArray.h"
+#include "include/private/SkTArray.h"
+#include "tools/gpu/gl/GLTestContext.h"
 
 struct GrVkBackendContext;
 
diff --git a/tools/gpu/GrTest.cpp b/tools/gpu/GrTest.cpp
index b8a743f..88a3a8c3 100644
--- a/tools/gpu/GrTest.cpp
+++ b/tools/gpu/GrTest.cpp
@@ -5,34 +5,34 @@
  * found in the LICENSE file.
  */
 
-#include "GrBackendSurface.h"
-#include "GrClip.h"
-#include "GrContextOptions.h"
-#include "GrContextPriv.h"
-#include "GrDrawOpAtlas.h"
-#include "GrDrawingManager.h"
-#include "GrGpu.h"
-#include "GrGpuResourceCacheAccess.h"
-#include "GrMemoryPool.h"
-#include "GrRecordingContext.h"
-#include "GrRecordingContextPriv.h"
-#include "GrRenderTargetContext.h"
-#include "GrRenderTargetContextPriv.h"
-#include "GrRenderTargetProxy.h"
-#include "GrResourceCache.h"
-#include "GrSemaphore.h"
-#include "GrSurfaceContextPriv.h"
-#include "GrTexture.h"
-#include "SkGr.h"
-#include "SkImage_Gpu.h"
-#include "SkMathPriv.h"
-#include "SkString.h"
-#include "SkTo.h"
-#include "ccpr/GrCoverageCountingPathRenderer.h"
-#include "ccpr/GrCCPathCache.h"
-#include "ops/GrMeshDrawOp.h"
-#include "text/GrStrikeCache.h"
-#include "text/GrTextBlobCache.h"
+#include "include/core/SkString.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContextOptions.h"
+#include "include/gpu/GrTexture.h"
+#include "include/private/GrRecordingContext.h"
+#include "include/private/GrRenderTargetProxy.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkMathPriv.h"
+#include "src/gpu/GrClip.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrDrawOpAtlas.h"
+#include "src/gpu/GrDrawingManager.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrGpuResourceCacheAccess.h"
+#include "src/gpu/GrMemoryPool.h"
+#include "src/gpu/GrRecordingContextPriv.h"
+#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrRenderTargetContextPriv.h"
+#include "src/gpu/GrResourceCache.h"
+#include "src/gpu/GrSemaphore.h"
+#include "src/gpu/GrSurfaceContextPriv.h"
+#include "src/gpu/SkGr.h"
+#include "src/gpu/ccpr/GrCCPathCache.h"
+#include "src/gpu/ccpr/GrCoverageCountingPathRenderer.h"
+#include "src/gpu/ops/GrMeshDrawOp.h"
+#include "src/gpu/text/GrStrikeCache.h"
+#include "src/gpu/text/GrTextBlobCache.h"
+#include "src/image/SkImage_Gpu.h"
 
 #include <algorithm>
 
diff --git a/tools/gpu/MemoryCache.cpp b/tools/gpu/MemoryCache.cpp
index 2cc4102..d7dae9d 100644
--- a/tools/gpu/MemoryCache.cpp
+++ b/tools/gpu/MemoryCache.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "GrPersistentCacheUtils.h"
-#include "MemoryCache.h"
-#include "SkBase64.h"
-#include "SkMD5.h"
+#include "include/utils/SkBase64.h"
+#include "src/core/SkMD5.h"
+#include "src/gpu/GrPersistentCacheUtils.h"
+#include "tools/gpu/MemoryCache.h"
 
 #if defined(SK_VULKAN)
-#include "vk/GrVkGpu.h"
+#include "src/gpu/vk/GrVkGpu.h"
 #endif
 
 // Change this to 1 to log cache hits/misses/stores using SkDebugf.
diff --git a/tools/gpu/MemoryCache.h b/tools/gpu/MemoryCache.h
index 1e61994..22911a5 100644
--- a/tools/gpu/MemoryCache.h
+++ b/tools/gpu/MemoryCache.h
@@ -8,9 +8,9 @@
 #ifndef MemoryCache_DEFINED
 #define MemoryCache_DEFINED
 
-#include "GrContextOptions.h"
-#include "SkChecksum.h"
-#include "SkData.h"
+#include "include/core/SkData.h"
+#include "include/gpu/GrContextOptions.h"
+#include "include/private/SkChecksum.h"
 
 #include <unordered_map>
 
diff --git a/tools/gpu/ProxyUtils.cpp b/tools/gpu/ProxyUtils.cpp
index 8167264..216118a 100644
--- a/tools/gpu/ProxyUtils.cpp
+++ b/tools/gpu/ProxyUtils.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "ProxyUtils.h"
-#include "GrBackendSurface.h"
-#include "GrContextPriv.h"
-#include "GrDrawingManager.h"
-#include "GrGpu.h"
-#include "GrProxyProvider.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrDrawingManager.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrProxyProvider.h"
+#include "tools/gpu/ProxyUtils.h"
 
 namespace sk_gpu_test {
 
diff --git a/tools/gpu/ProxyUtils.h b/tools/gpu/ProxyUtils.h
index 3ad23ae..e8526a9 100644
--- a/tools/gpu/ProxyUtils.h
+++ b/tools/gpu/ProxyUtils.h
@@ -8,8 +8,8 @@
 #ifndef ProxyUtils_DEFINED
 #define ProxyUtils_DEFINED
 
-#include "GrTextureProxy.h"
-#include "GrTypesPriv.h"
+#include "include/private/GrTextureProxy.h"
+#include "include/private/GrTypesPriv.h"
 
 namespace sk_gpu_test {
 
diff --git a/tools/gpu/TestContext.cpp b/tools/gpu/TestContext.cpp
index f760cc7..bf961fb 100644
--- a/tools/gpu/TestContext.cpp
+++ b/tools/gpu/TestContext.cpp
@@ -6,11 +6,11 @@
  * found in the LICENSE file.
  */
 
-#include "TestContext.h"
+#include "tools/gpu/TestContext.h"
 
-#include "GpuTimer.h"
+#include "tools/gpu/GpuTimer.h"
 
-#include "GrContext.h"
+#include "include/gpu/GrContext.h"
 
 namespace sk_gpu_test {
 TestContext::TestContext()
diff --git a/tools/gpu/TestContext.h b/tools/gpu/TestContext.h
index 7a92bc0..e48c598 100644
--- a/tools/gpu/TestContext.h
+++ b/tools/gpu/TestContext.h
@@ -9,12 +9,12 @@
 #ifndef TestContext_DEFINED
 #define TestContext_DEFINED
 
-#include "FenceSync.h"
-#include "GrTypes.h"
-#include "SkNoncopyable.h"
-#include "SkRefCnt.h"
-#include "SkScopeExit.h"
-#include "SkTemplates.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/GrTypes.h"
+#include "include/private/SkNoncopyable.h"
+#include "include/private/SkTemplates.h"
+#include "src/core/SkScopeExit.h"
+#include "tools/gpu/FenceSync.h"
 
 class GrContext;
 struct GrContextOptions;
diff --git a/tools/gpu/YUVUtils.cpp b/tools/gpu/YUVUtils.cpp
index 8f68986..eb4ca2c 100644
--- a/tools/gpu/YUVUtils.cpp
+++ b/tools/gpu/YUVUtils.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "YUVUtils.h"
+#include "tools/gpu/YUVUtils.h"
 
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "SkCodecImageGenerator.h"
-#include "SkData.h"
+#include "include/core/SkData.h"
+#include "include/gpu/GrContext.h"
+#include "src/codec/SkCodecImageGenerator.h"
+#include "src/gpu/GrContextPriv.h"
 
 namespace sk_gpu_test {
 
diff --git a/tools/gpu/YUVUtils.h b/tools/gpu/YUVUtils.h
index b46b35b..f6097b9 100644
--- a/tools/gpu/YUVUtils.h
+++ b/tools/gpu/YUVUtils.h
@@ -8,10 +8,10 @@
 #ifndef YUVUtils_DEFINED
 #define YUVUtils_DEFINED
 
-#include "SkAutoMalloc.h"
-#include "SkImage.h"
-#include "SkYUVAIndex.h"
-#include "SkYUVASizeInfo.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkYUVAIndex.h"
+#include "include/core/SkYUVASizeInfo.h"
+#include "src/core/SkAutoMalloc.h"
 
 class SkData;
 
diff --git a/tools/gpu/atlastext/GLTestAtlasTextRenderer.cpp b/tools/gpu/atlastext/GLTestAtlasTextRenderer.cpp
index 0bc3ae8..c8dc054 100644
--- a/tools/gpu/atlastext/GLTestAtlasTextRenderer.cpp
+++ b/tools/gpu/atlastext/GLTestAtlasTextRenderer.cpp
@@ -5,12 +5,12 @@
  * found in the LICENSE file.
  */
 
-#include "GLTestAtlasTextRenderer.h"
-#include "../gl/GLTestContext.h"
-#include "SkBitmap.h"
-#include "TestAtlasTextRenderer.h"
-#include "gl/GrGLDefines.h"
-#include "gl/GrGLUtil.h"
+#include "include/core/SkBitmap.h"
+#include "src/gpu/gl/GrGLDefines.h"
+#include "src/gpu/gl/GrGLUtil.h"
+#include "tools/gpu/atlastext/GLTestAtlasTextRenderer.h"
+#include "tools/gpu/atlastext/TestAtlasTextRenderer.h"
+#include "tools/gpu/gl/GLTestContext.h"
 
 using sk_gpu_test::GLTestContext;
 
diff --git a/tools/gpu/atlastext/GLTestAtlasTextRenderer.h b/tools/gpu/atlastext/GLTestAtlasTextRenderer.h
index df01b34..d1536d3 100644
--- a/tools/gpu/atlastext/GLTestAtlasTextRenderer.h
+++ b/tools/gpu/atlastext/GLTestAtlasTextRenderer.h
@@ -8,7 +8,7 @@
 #ifndef GLTestAtlasTextRenderer_DEFINED
 #define GLTestAtlasTextRenderer_DEFINED
 
-#include "SkRefCnt.h"
+#include "include/core/SkRefCnt.h"
 
 namespace sk_gpu_test {
 
diff --git a/tools/gpu/atlastext/TestAtlasTextRenderer.h b/tools/gpu/atlastext/TestAtlasTextRenderer.h
index 6ba4326..e928e76 100644
--- a/tools/gpu/atlastext/TestAtlasTextRenderer.h
+++ b/tools/gpu/atlastext/TestAtlasTextRenderer.h
@@ -8,8 +8,8 @@
 #ifndef TestAtlasTextRenderer_DEFINED
 #define TestAtlasTextRenderer_DEFINED
 
-#include "SkAtlasTextRenderer.h"
-#include "SkBitmap.h"
+#include "include/atlastext/SkAtlasTextRenderer.h"
+#include "include/core/SkBitmap.h"
 
 namespace sk_gpu_test {
 
diff --git a/tools/gpu/gl/GLTestContext.cpp b/tools/gpu/gl/GLTestContext.cpp
index 2e12b47..d4aa605 100644
--- a/tools/gpu/gl/GLTestContext.cpp
+++ b/tools/gpu/gl/GLTestContext.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "GLTestContext.h"
+#include "tools/gpu/gl/GLTestContext.h"
 
-#include "GrContext.h"
-#include "GpuTimer.h"
-#include "gl/GrGLUtil.h"
+#include "include/gpu/GrContext.h"
+#include "src/gpu/gl/GrGLUtil.h"
+#include "tools/gpu/GpuTimer.h"
 
 namespace {
 
diff --git a/tools/gpu/gl/GLTestContext.h b/tools/gpu/gl/GLTestContext.h
index c431664..197148c 100644
--- a/tools/gpu/gl/GLTestContext.h
+++ b/tools/gpu/gl/GLTestContext.h
@@ -8,8 +8,8 @@
 #ifndef GLTestContext_DEFINED
 #define GLTestContext_DEFINED
 
-#include "TestContext.h"
-#include "gl/GrGLInterface.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "tools/gpu/TestContext.h"
 
 namespace sk_gpu_test {
 /**
diff --git a/tools/gpu/gl/angle/GLTestContext_angle.cpp b/tools/gpu/gl/angle/GLTestContext_angle.cpp
index 303b8ea..c359481 100644
--- a/tools/gpu/gl/angle/GLTestContext_angle.cpp
+++ b/tools/gpu/gl/angle/GLTestContext_angle.cpp
@@ -5,19 +5,19 @@
  * found in the LICENSE file.
  */
 
-#include "GLTestContext_angle.h"
+#include "tools/gpu/gl/angle/GLTestContext_angle.h"
 
 #define EGL_EGL_PROTOTYPES 1
 
 #include <EGL/egl.h>
 #include <EGL/eglext.h>
 
-#include "gl/GrGLDefines.h"
-#include "gl/GrGLUtil.h"
+#include "src/gpu/gl/GrGLDefines.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
-#include "gl/GrGLInterface.h"
-#include "gl/GrGLAssembleInterface.h"
-#include "../ports/SkOSLibrary.h"
+#include "include/gpu/gl/GrGLAssembleInterface.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "src/ports/SkOSLibrary.h"
 
 #include <EGL/egl.h>
 
diff --git a/tools/gpu/gl/angle/GLTestContext_angle.h b/tools/gpu/gl/angle/GLTestContext_angle.h
index de7659a..1dc563a 100644
--- a/tools/gpu/gl/angle/GLTestContext_angle.h
+++ b/tools/gpu/gl/angle/GLTestContext_angle.h
@@ -8,7 +8,7 @@
 #ifndef GLTestContext_angle_DEFINED
 #define GLTestContext_angle_DEFINED
 
-#include "gl/GLTestContext.h"
+#include "tools/gpu/gl/GLTestContext.h"
 
 namespace sk_gpu_test {
 
diff --git a/tools/gpu/gl/command_buffer/GLTestContext_command_buffer.cpp b/tools/gpu/gl/command_buffer/GLTestContext_command_buffer.cpp
index 743aa4e..cf82e35 100644
--- a/tools/gpu/gl/command_buffer/GLTestContext_command_buffer.cpp
+++ b/tools/gpu/gl/command_buffer/GLTestContext_command_buffer.cpp
@@ -8,13 +8,13 @@
 
 #ifndef SK_NO_COMMAND_BUFFER
 
-#include "SkMutex.h"
-#include "SkOnce.h"
-#include "SkTLS.h"
-#include "gl/GrGLInterface.h"
-#include "gl/GrGLAssembleInterface.h"
-#include "gl/command_buffer/GLTestContext_command_buffer.h"
-#include "../ports/SkOSLibrary.h"
+#include "include/gpu/gl/GrGLAssembleInterface.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "include/private/SkMutex.h"
+#include "include/private/SkOnce.h"
+#include "src/core/SkTLS.h"
+#include "src/ports/SkOSLibrary.h"
+#include "tools/gpu/gl/command_buffer/GLTestContext_command_buffer.h"
 
 namespace {
 
diff --git a/tools/gpu/gl/command_buffer/GLTestContext_command_buffer.h b/tools/gpu/gl/command_buffer/GLTestContext_command_buffer.h
index 6a631be..089c06e 100644
--- a/tools/gpu/gl/command_buffer/GLTestContext_command_buffer.h
+++ b/tools/gpu/gl/command_buffer/GLTestContext_command_buffer.h
@@ -9,7 +9,7 @@
 #ifndef GLTestContext_command_buffer_DEFINED
 #define GLTestContext_command_buffer_DEFINED
 
-#include "gl/GLTestContext.h"
+#include "tools/gpu/gl/GLTestContext.h"
 
 namespace sk_gpu_test {
 class CommandBufferGLTestContext : public GLTestContext {
diff --git a/tools/gpu/gl/egl/CreatePlatformGLTestContext_egl.cpp b/tools/gpu/gl/egl/CreatePlatformGLTestContext_egl.cpp
index 7cc94be..aefcc35 100644
--- a/tools/gpu/gl/egl/CreatePlatformGLTestContext_egl.cpp
+++ b/tools/gpu/gl/egl/CreatePlatformGLTestContext_egl.cpp
@@ -5,7 +5,7 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "gl/GLTestContext.h"
+#include "tools/gpu/gl/GLTestContext.h"
 
 #define GL_GLEXT_PROTOTYPES
 #include <GLES2/gl2.h>
@@ -13,8 +13,8 @@
 #include <EGL/egl.h>
 #include <EGL/eglext.h>
 
-#include "gl/GrGLDefines.h"
-#include "gl/GrGLUtil.h"
+#include "src/gpu/gl/GrGLDefines.h"
+#include "src/gpu/gl/GrGLUtil.h"
 
 namespace {
 
diff --git a/tools/gpu/gl/glx/CreatePlatformGLTestContext_glx.cpp b/tools/gpu/gl/glx/CreatePlatformGLTestContext_glx.cpp
index 3df45bd..5e643e2 100644
--- a/tools/gpu/gl/glx/CreatePlatformGLTestContext_glx.cpp
+++ b/tools/gpu/gl/glx/CreatePlatformGLTestContext_glx.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "gl/GLTestContext.h"
-#include "SkOnce.h"
+#include "include/private/SkOnce.h"
+#include "tools/gpu/gl/GLTestContext.h"
 
 #include <X11/Xlib.h>
 #include <GL/glx.h>
diff --git a/tools/gpu/gl/iOS/CreatePlatformGLTestContext_iOS.mm b/tools/gpu/gl/iOS/CreatePlatformGLTestContext_iOS.mm
index 2b0ad81..0605fdf 100644
--- a/tools/gpu/gl/iOS/CreatePlatformGLTestContext_iOS.mm
+++ b/tools/gpu/gl/iOS/CreatePlatformGLTestContext_iOS.mm
@@ -6,7 +6,7 @@
  * found in the LICENSE file.
  */
 
-#include "gl/GLTestContext.h"
+#include "tools/gpu/gl/GLTestContext.h"
 #import <OpenGLES/EAGL.h>
 #include <dlfcn.h>
 
diff --git a/tools/gpu/gl/mac/CreatePlatformGLTestContext_mac.cpp b/tools/gpu/gl/mac/CreatePlatformGLTestContext_mac.cpp
index 5b11227..c27fe24 100644
--- a/tools/gpu/gl/mac/CreatePlatformGLTestContext_mac.cpp
+++ b/tools/gpu/gl/mac/CreatePlatformGLTestContext_mac.cpp
@@ -5,9 +5,9 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "gl/GLTestContext.h"
+#include "tools/gpu/gl/GLTestContext.h"
 #include "AvailabilityMacros.h"
 
 #include <OpenGL/OpenGL.h>
diff --git a/tools/gpu/gl/none/CreatePlatformGLTestContext_none.cpp b/tools/gpu/gl/none/CreatePlatformGLTestContext_none.cpp
index 25343b0..de2f935 100644
--- a/tools/gpu/gl/none/CreatePlatformGLTestContext_none.cpp
+++ b/tools/gpu/gl/none/CreatePlatformGLTestContext_none.cpp
@@ -6,7 +6,7 @@
  * found in the LICENSE file.
  */
 
-#include "gl/GLTestContext.h"
+#include "tools/gpu/gl/GLTestContext.h"
 
 namespace sk_gpu_test {
 GLTestContext* CreatePlatformGLTestContext(GrGLStandard forcedGpuAPI,
diff --git a/tools/gpu/gl/win/CreatePlatformGLTestContext_win.cpp b/tools/gpu/gl/win/CreatePlatformGLTestContext_win.cpp
index 5d496e4..7159c13 100644
--- a/tools/gpu/gl/win/CreatePlatformGLTestContext_win.cpp
+++ b/tools/gpu/gl/win/CreatePlatformGLTestContext_win.cpp
@@ -6,7 +6,7 @@
  * found in the LICENSE file.
  */
 
-#include "gl/GLTestContext.h"
+#include "tools/gpu/gl/GLTestContext.h"
 
 #if defined(_M_ARM64)
 
@@ -20,7 +20,7 @@
 
 #include <windows.h>
 #include <GL/GL.h>
-#include "win/SkWGL.h"
+#include "src/utils/win/SkWGL.h"
 
 #include <windows.h>
 
diff --git a/tools/gpu/mock/MockTestContext.cpp b/tools/gpu/mock/MockTestContext.cpp
index 3bcf0f1..f892714 100644
--- a/tools/gpu/mock/MockTestContext.cpp
+++ b/tools/gpu/mock/MockTestContext.cpp
@@ -8,9 +8,9 @@
 #ifndef GLTestContext_DEFINED
 #define GLTestContext_DEFINED
 
-#include "MockTestContext.h"
+#include "tools/gpu/mock/MockTestContext.h"
 
-#include "GrContext.h"
+#include "include/gpu/GrContext.h"
 
 namespace {
 
diff --git a/tools/gpu/mock/MockTestContext.h b/tools/gpu/mock/MockTestContext.h
index 4c3a52f..aae7fad 100644
--- a/tools/gpu/mock/MockTestContext.h
+++ b/tools/gpu/mock/MockTestContext.h
@@ -8,7 +8,7 @@
 #ifndef MockTestContext_DEFINED
 #define MockTestContext_DEFINED
 
-#include "TestContext.h"
+#include "tools/gpu/TestContext.h"
 
 namespace sk_gpu_test {
 
diff --git a/tools/gpu/mtl/MtlTestContext.h b/tools/gpu/mtl/MtlTestContext.h
index a44e27c..dbda09d 100644
--- a/tools/gpu/mtl/MtlTestContext.h
+++ b/tools/gpu/mtl/MtlTestContext.h
@@ -8,7 +8,7 @@
 #ifndef MtlTestContext_h
 #define MtlTestContext_h
 
-#include "TestContext.h"
+#include "tools/gpu/TestContext.h"
 
 #ifdef SK_METAL
 
diff --git a/tools/gpu/mtl/MtlTestContext.mm b/tools/gpu/mtl/MtlTestContext.mm
index 69aa91e..a7e0eea 100644
--- a/tools/gpu/mtl/MtlTestContext.mm
+++ b/tools/gpu/mtl/MtlTestContext.mm
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "MtlTestContext.h"
+#include "tools/gpu/mtl/MtlTestContext.h"
 
-#include "GrContext.h"
-#include "GrContextOptions.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrContextOptions.h"
 
 #ifdef SK_METAL
 
diff --git a/tools/gpu/vk/GrVulkanDefines.h b/tools/gpu/vk/GrVulkanDefines.h
index 843fcfd..ad65a84 100644
--- a/tools/gpu/vk/GrVulkanDefines.h
+++ b/tools/gpu/vk/GrVulkanDefines.h
@@ -8,7 +8,7 @@
 #ifndef GrVulkanDefines_DEFINED
 #define GrVulkanDefines_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #if defined(SK_BUILD_FOR_WIN)
 #   if !defined(VK_USE_PLATFORM_WIN32_KHR)
diff --git a/tools/gpu/vk/VkTestContext.cpp b/tools/gpu/vk/VkTestContext.cpp
index 18c2393..6215efe 100644
--- a/tools/gpu/vk/VkTestContext.cpp
+++ b/tools/gpu/vk/VkTestContext.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "VkTestContext.h"
+#include "tools/gpu/vk/VkTestContext.h"
 
 #ifdef SK_VULKAN
 
-#include "GrContext.h"
-#include "VkTestUtils.h"
-#include "vk/GrVkExtensions.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/vk/GrVkExtensions.h"
+#include "tools/gpu/vk/VkTestUtils.h"
 
 namespace {
 
diff --git a/tools/gpu/vk/VkTestContext.h b/tools/gpu/vk/VkTestContext.h
index a1a1fe1..fd4d8d2 100644
--- a/tools/gpu/vk/VkTestContext.h
+++ b/tools/gpu/vk/VkTestContext.h
@@ -8,12 +8,12 @@
 #ifndef VkTestContext_DEFINED
 #define VkTestContext_DEFINED
 
-#include "TestContext.h"
+#include "tools/gpu/TestContext.h"
 
 #ifdef SK_VULKAN
 
-#include "GrVulkanDefines.h"
-#include "vk/GrVkBackendContext.h"
+#include "include/gpu/vk/GrVkBackendContext.h"
+#include "tools/gpu/vk/GrVulkanDefines.h"
 
 class GrVkExtensions;
 
diff --git a/tools/gpu/vk/VkTestUtils.cpp b/tools/gpu/vk/VkTestUtils.cpp
index b7148fa..cd6aa5b 100644
--- a/tools/gpu/vk/VkTestUtils.cpp
+++ b/tools/gpu/vk/VkTestUtils.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "VkTestUtils.h"
+#include "tools/gpu/vk/VkTestUtils.h"
 
 #ifdef SK_VULKAN
 
-#include "SkAutoMalloc.h"
-#include "vk/GrVkBackendContext.h"
-#include "vk/GrVkExtensions.h"
-#include "../ports/SkOSLibrary.h"
+#include "include/gpu/vk/GrVkBackendContext.h"
+#include "include/gpu/vk/GrVkExtensions.h"
+#include "src/core/SkAutoMalloc.h"
+#include "src/ports/SkOSLibrary.h"
 
 #if defined(SK_ENABLE_SCOPED_LSAN_SUPPRESSIONS)
 #include <sanitizer/lsan_interface.h>
diff --git a/tools/gpu/vk/VkTestUtils.h b/tools/gpu/vk/VkTestUtils.h
index ef87f09..6772648 100644
--- a/tools/gpu/vk/VkTestUtils.h
+++ b/tools/gpu/vk/VkTestUtils.h
@@ -8,13 +8,13 @@
 #ifndef VkTestUtils_DEFINED
 #define VkTestUtils_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
 #ifdef SK_VULKAN
 
-#include "GrVulkanDefines.h"
-#include "vk/GrVkBackendContext.h"
-#include "vk/GrVkTypes.h"
+#include "include/gpu/vk/GrVkBackendContext.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "tools/gpu/vk/GrVulkanDefines.h"
 #include <functional>
 
 class GrVkExtensions;
diff --git a/tools/imgcvt.cpp b/tools/imgcvt.cpp
index a855f28..71b599c 100644
--- a/tools/imgcvt.cpp
+++ b/tools/imgcvt.cpp
@@ -6,12 +6,12 @@
 */
 
 #include "skcms.h"
-#include "SkCanvas.h"
-#include "SkColorSpacePriv.h"
-#include "SkData.h"
-#include "SkImage.h"
-#include "SkStream.h"
-#include "SkSurface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkSurface.h"
+#include "src/core/SkColorSpacePriv.h"
 
 static void write_png(const char* path, sk_sp<SkImage> img) {
     sk_sp<SkData>  png = img->encodeToData();
diff --git a/tools/ios_utils.m b/tools/ios_utils.m
index b88ab5b..faef5c5 100644
--- a/tools/ios_utils.m
+++ b/tools/ios_utils.m
@@ -6,7 +6,7 @@
  */
 
 #import <Foundation/Foundation.h>
-#include "ios_utils.h"
+#include "tools/ios_utils.h"
 #include <unistd.h>
 
 void cd_Documents() {
diff --git a/tools/list_gms.cpp b/tools/list_gms.cpp
index 666f84b..fd805bc 100644
--- a/tools/list_gms.cpp
+++ b/tools/list_gms.cpp
@@ -10,7 +10,7 @@
 #include <string>
 #include <vector>
 
-#include "gm.h"
+#include "gm/gm.h"
 
 int main() {
     std::vector<std::string> gms;
diff --git a/tools/list_gpu_unit_tests.cpp b/tools/list_gpu_unit_tests.cpp
index 72c2497..a39a5f4 100644
--- a/tools/list_gpu_unit_tests.cpp
+++ b/tools/list_gpu_unit_tests.cpp
@@ -10,7 +10,7 @@
 #include <string>
 #include <vector>
 
-#include "Test.h"
+#include "tests/Test.h"
 
 int main() {
     std::vector<std::string> tests;
diff --git a/tools/lua/lua_app.cpp b/tools/lua/lua_app.cpp
index 68e1a8d..0c1723e 100644
--- a/tools/lua/lua_app.cpp
+++ b/tools/lua/lua_app.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "SkLua.h"
-#include "SkGraphics.h"
-#include "SkStream.h"
-#include "SkData.h"
-#include "SkOSFile.h"
+#include "include/core/SkData.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkStream.h"
+#include "include/utils/SkLua.h"
+#include "src/core/SkOSFile.h"
 
 #include <stdlib.h>
 
diff --git a/tools/lua/lua_pictures.cpp b/tools/lua/lua_pictures.cpp
index 1afdde38..faf9be4 100644
--- a/tools/lua/lua_pictures.cpp
+++ b/tools/lua/lua_pictures.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "CommandLineFlags.h"
-#include "SkData.h"
-#include "SkGraphics.h"
-#include "SkLua.h"
-#include "SkLuaCanvas.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkPicture.h"
-#include "SkStream.h"
+#include "include/core/SkData.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkStream.h"
+#include "include/utils/SkLua.h"
+#include "include/utils/SkLuaCanvas.h"
+#include "src/core/SkOSFile.h"
+#include "src/utils/SkOSPath.h"
+#include "tools/flags/CommandLineFlags.h"
 
 #include <stdlib.h>
 
diff --git a/tools/mdbviz/Model.cpp b/tools/mdbviz/Model.cpp
index ce85117..3cb01f0 100644
--- a/tools/mdbviz/Model.cpp
+++ b/tools/mdbviz/Model.cpp
@@ -7,13 +7,13 @@
 
 #include <memory>
 
-#include "Model.h"
+#include "tools/mdbviz/Model.h"
 
-#include "DebugCanvas.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkPicture.h"
-#include "SkStream.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkStream.h"
+#include "tools/debugger/DebugCanvas.h"
 
 Model::Model() : fCurOp(0) {
     SkImageInfo ii = SkImageInfo::MakeN32Premul(1024, 1024);
diff --git a/tools/mdbviz/Model.h b/tools/mdbviz/Model.h
index cd3563c..debb4f4 100644
--- a/tools/mdbviz/Model.h
+++ b/tools/mdbviz/Model.h
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkBitmap.h"
-#include "SkTDArray.h"
+#include "include/core/SkBitmap.h"
+#include "include/private/SkTDArray.h"
 
 class DrawCommand;
 
diff --git a/tools/mdbviz/main.cpp b/tools/mdbviz/main.cpp
index 42abc2a..6679871 100644
--- a/tools/mdbviz/main.cpp
+++ b/tools/mdbviz/main.cpp
@@ -7,7 +7,7 @@
 
 #include <QtWidgets>
 
-#include "mainwindow.h"
+#include "tools/mdbviz/mainwindow.h"
 
 int main(int argc, char *argv[])
 {
diff --git a/tools/mdbviz/mainwindow.h b/tools/mdbviz/mainwindow.h
index 9a7e9db..7fa6152 100644
--- a/tools/mdbviz/mainwindow.h
+++ b/tools/mdbviz/mainwindow.h
@@ -11,7 +11,7 @@
 #include <memory>
 #include <QMainWindow>
 
-#include "Model.h"
+#include "tools/mdbviz/Model.h"
 
 class QLabel;
 class QMenu;
diff --git a/tools/random_parse_path.cpp b/tools/random_parse_path.cpp
index ffc4b58..4d13f65 100644
--- a/tools/random_parse_path.cpp
+++ b/tools/random_parse_path.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkRandom.h"
-#include "random_parse_path.h"
+#include "include/utils/SkRandom.h"
+#include "tools/random_parse_path.h"
 
 const struct Legal {
     char fSymbol;
diff --git a/tools/random_parse_path.h b/tools/random_parse_path.h
index 4dfa501..7071c8a 100644
--- a/tools/random_parse_path.h
+++ b/tools/random_parse_path.h
@@ -8,7 +8,7 @@
 #ifndef random_parse_path_DEFINED
 #define random_parse_path_DEFINED
 
-#include "SkString.h"
+#include "include/core/SkString.h"
 
 class SkRandom;
 
diff --git a/tools/remote_demo.cpp b/tools/remote_demo.cpp
index 8d80e94..a5a36a3 100644
--- a/tools/remote_demo.cpp
+++ b/tools/remote_demo.cpp
@@ -16,10 +16,10 @@
 #include <thread>
 #include <unistd.h>
 
-#include "SkGraphics.h"
-#include "SkRemoteGlyphCache.h"
-#include "SkScalerContext.h"
-#include "SkSurface.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkSurface.h"
+#include "src/core/SkRemoteGlyphCache.h"
+#include "src/core/SkScalerContext.h"
 
 static std::string gSkpName;
 static bool gUseGpu = true;
diff --git a/tools/rewrite_includes.py b/tools/rewrite_includes.py
new file mode 100644
index 0000000..f035c55
--- /dev/null
+++ b/tools/rewrite_includes.py
@@ -0,0 +1,75 @@
+#!/usr/bin/python2
+#
+# Copyright 2019 Google Inc.
+#
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import os
+
+roots = [
+    'bench',
+    'dm',
+    'docs',
+    'example',
+    'experimental',
+    'fuzz',
+    'gm',
+    'include',
+    'modules',
+    'platform_tools/android/apps',
+    'samplecode',
+    'src',
+    'tests',
+    'third_party/gif',
+    'tools'
+  ]
+
+# Map short name -> absolute path for all Skia headers.
+headers = {}
+for root in roots:
+  for path, _, files in os.walk(root):
+    for file_name in files:
+      if file_name.endswith('.h'):
+        if file_name in headers:
+          print path, file_name, headers[file_name]
+        assert file_name not in headers
+        headers[file_name] = os.path.abspath(os.path.join(path, file_name))
+
+# Rewrite any #includes relative to Skia's top-level directory.
+for root in roots:
+  for path, _, files in os.walk(root):
+    if 'generated' in path:
+      continue
+    for file_name in files:
+      if (file_name.endswith('.h') or
+          file_name.endswith('.c') or
+          file_name.endswith('.m') or
+          file_name.endswith('.mm') or
+          file_name.endswith('.inc') or
+          file_name.endswith('.fp') or
+          file_name.endswith('.cc') or
+          file_name.endswith('.cpp')):
+        # Read the whole file into memory.
+        file_path = os.path.join(path, file_name)
+        lines = open(file_path).readlines()
+
+        # Write it back out again line by line with substitutions for #includes.
+        with open(file_path, 'w') as output:
+          includes = []
+
+          for line in lines:
+            parts = line.split('"')
+            if (len(parts) == 3
+                and '#' in parts[0]
+                and 'include' in parts[0]
+                and os.path.basename(parts[1]) in headers):
+
+              header = headers[os.path.basename(parts[1])]
+              includes.append(parts[0] + '"%s"' % os.path.relpath(header, '.'))
+            else:
+              for inc in sorted(includes):
+                print >>output, inc
+              includes = []
+              print >>output, line.strip('\n')
+
diff --git a/tools/sk_app/CommandSet.cpp b/tools/sk_app/CommandSet.cpp
index 52d956c..04c5aa8 100644
--- a/tools/sk_app/CommandSet.cpp
+++ b/tools/sk_app/CommandSet.cpp
@@ -5,11 +5,11 @@
 * found in the LICENSE file.
 */
 
-#include "CommandSet.h"
+#include "tools/sk_app/CommandSet.h"
 
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkTSort.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "src/core/SkTSort.h"
 
 namespace sk_app {
 
diff --git a/tools/sk_app/CommandSet.h b/tools/sk_app/CommandSet.h
index 0784a38..f3e29e7 100644
--- a/tools/sk_app/CommandSet.h
+++ b/tools/sk_app/CommandSet.h
@@ -8,8 +8,8 @@
 #ifndef CommandSet_DEFINED
 #define CommandSet_DEFINED
 
-#include "SkString.h"
-#include "Window.h"
+#include "include/core/SkString.h"
+#include "tools/sk_app/Window.h"
 
 #include <functional>
 #include <vector>
diff --git a/tools/sk_app/DisplayParams.h b/tools/sk_app/DisplayParams.h
index 813603c..afad8e1 100644
--- a/tools/sk_app/DisplayParams.h
+++ b/tools/sk_app/DisplayParams.h
@@ -7,9 +7,9 @@
 #ifndef DisplayParams_DEFINED
 #define DisplayParams_DEFINED
 
-#include "GrContextOptions.h"
-#include "SkImageInfo.h"
-#include "SkSurfaceProps.h"
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkSurfaceProps.h"
+#include "include/gpu/GrContextOptions.h"
 
 namespace sk_app {
 
diff --git a/tools/sk_app/GLWindowContext.cpp b/tools/sk_app/GLWindowContext.cpp
index 5bcc759..7aa401c 100644
--- a/tools/sk_app/GLWindowContext.cpp
+++ b/tools/sk_app/GLWindowContext.cpp
@@ -6,17 +6,17 @@
  * found in the LICENSE file.
  */
 
-#include "GLWindowContext.h"
-#include "GrBackendSurface.h"
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "SkCanvas.h"
-#include "SkImage_Base.h"
-#include "SkMathPriv.h"
-#include "SkSurface.h"
-#include "gl/GrGLDefines.h"
-#include "gl/GrGLUtil.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "src/core/SkMathPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/gl/GrGLDefines.h"
+#include "src/gpu/gl/GrGLUtil.h"
+#include "src/image/SkImage_Base.h"
+#include "tools/sk_app/GLWindowContext.h"
 
 namespace sk_app {
 
diff --git a/tools/sk_app/GLWindowContext.h b/tools/sk_app/GLWindowContext.h
index 68fd1eb..8d3085b 100644
--- a/tools/sk_app/GLWindowContext.h
+++ b/tools/sk_app/GLWindowContext.h
@@ -9,12 +9,12 @@
 #define GLWindowContext_DEFINED
 
 
-#include "gl/GrGLInterface.h"
+#include "include/gpu/gl/GrGLInterface.h"
 
-#include "SkRefCnt.h"
-#include "SkSurface.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSurface.h"
 
-#include "WindowContext.h"
+#include "tools/sk_app/WindowContext.h"
 
 class GrContext;
 
diff --git a/tools/sk_app/MetalWindowContext.h b/tools/sk_app/MetalWindowContext.h
index fc712d7..3ed4b76 100644
--- a/tools/sk_app/MetalWindowContext.h
+++ b/tools/sk_app/MetalWindowContext.h
@@ -8,10 +8,10 @@
 #ifndef MetalWindowContext_DEFINED
 #define MetalWindowContext_DEFINED
 
-#include "SkRefCnt.h"
-#include "SkSurface.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSurface.h"
 
-#include "WindowContext.h"
+#include "tools/sk_app/WindowContext.h"
 
 #import <Metal/Metal.h>
 #import <MetalKit/MetalKit.h>
diff --git a/tools/sk_app/MetalWindowContext.mm b/tools/sk_app/MetalWindowContext.mm
index 7f2d385..c502595 100644
--- a/tools/sk_app/MetalWindowContext.mm
+++ b/tools/sk_app/MetalWindowContext.mm
@@ -6,16 +6,16 @@
  * found in the LICENSE file.
  */
 
-#include "MetalWindowContext.h"
-#include "GrBackendSurface.h"
-#include "GrCaps.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "SkCanvas.h"
-#include "SkImage_Base.h"
-#include "SkMathPriv.h"
-#include "SkSurface.h"
-#include "mtl/GrMtlTypes.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/mtl/GrMtlTypes.h"
+#include "src/core/SkMathPriv.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/image/SkImage_Base.h"
+#include "tools/sk_app/MetalWindowContext.h"
 
 namespace sk_app {
 
diff --git a/tools/sk_app/RasterWindowContext.h b/tools/sk_app/RasterWindowContext.h
index db8600a..4a01aab 100644
--- a/tools/sk_app/RasterWindowContext.h
+++ b/tools/sk_app/RasterWindowContext.h
@@ -8,7 +8,7 @@
 #ifndef RasterWindowContext_DEFINED
 #define RasterWindowContext_DEFINED
 
-#include "WindowContext.h"
+#include "tools/sk_app/WindowContext.h"
 
 namespace sk_app {
 
diff --git a/tools/sk_app/VulkanWindowContext.cpp b/tools/sk_app/VulkanWindowContext.cpp
index 20e5752..3d91856 100644
--- a/tools/sk_app/VulkanWindowContext.cpp
+++ b/tools/sk_app/VulkanWindowContext.cpp
@@ -6,18 +6,18 @@
  * found in the LICENSE file.
  */
 
-#include "VulkanWindowContext.h"
+#include "tools/sk_app/VulkanWindowContext.h"
 
-#include "GrBackendSemaphore.h"
-#include "GrBackendSurface.h"
-#include "GrContext.h"
-#include "SkAutoMalloc.h"
-#include "SkSurface.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrBackendSemaphore.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrContext.h"
+#include "src/core/SkAutoMalloc.h"
 
-#include "vk/GrVkExtensions.h"
-#include "vk/GrVkImage.h"
-#include "vk/GrVkTypes.h"
-#include "vk/GrVkUtil.h"
+#include "include/gpu/vk/GrVkExtensions.h"
+#include "include/gpu/vk/GrVkTypes.h"
+#include "src/gpu/vk/GrVkImage.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
 #ifdef VK_USE_PLATFORM_WIN32_KHR
 // windows wants to define this as CreateSemaphoreA or CreateSemaphoreW
diff --git a/tools/sk_app/VulkanWindowContext.h b/tools/sk_app/VulkanWindowContext.h
index cb14480..2db9e79 100644
--- a/tools/sk_app/VulkanWindowContext.h
+++ b/tools/sk_app/VulkanWindowContext.h
@@ -8,16 +8,16 @@
 #ifndef VulkanWindowContext_DEFINED
 #define VulkanWindowContext_DEFINED
 
-#include "SkTypes.h" // required to pull in any SkUserConfig defines
+#include "include/core/SkTypes.h"
 
 #ifdef SK_VULKAN
 
-#include "vk/GrVkVulkan.h"
+#include "include/gpu/vk/GrVkVulkan.h"
 
-#include "vk/GrVkBackendContext.h"
-#include "vk/GrVkInterface.h"
-#include "vk/VkTestUtils.h"
-#include "WindowContext.h"
+#include "include/gpu/vk/GrVkBackendContext.h"
+#include "src/gpu/vk/GrVkInterface.h"
+#include "tools/gpu/vk/VkTestUtils.h"
+#include "tools/sk_app/WindowContext.h"
 
 class GrRenderTarget;
 
diff --git a/tools/sk_app/Window.cpp b/tools/sk_app/Window.cpp
index c70aea1..a259d76 100644
--- a/tools/sk_app/Window.cpp
+++ b/tools/sk_app/Window.cpp
@@ -5,11 +5,11 @@
 * found in the LICENSE file.
 */
 
-#include "Window.h"
+#include "tools/sk_app/Window.h"
 
-#include "SkSurface.h"
-#include "SkCanvas.h"
-#include "WindowContext.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkSurface.h"
+#include "tools/sk_app/WindowContext.h"
 
 namespace sk_app {
 
diff --git a/tools/sk_app/Window.h b/tools/sk_app/Window.h
index 5ca9654..ef8bf73 100644
--- a/tools/sk_app/Window.h
+++ b/tools/sk_app/Window.h
@@ -8,10 +8,10 @@
 #ifndef Window_DEFINED
 #define Window_DEFINED
 
-#include "DisplayParams.h"
-#include "SkRect.h"
-#include "SkTDArray.h"
-#include "SkTypes.h"
+#include "include/core/SkRect.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTDArray.h"
+#include "tools/sk_app/DisplayParams.h"
 
 class GrContext;
 class SkCanvas;
diff --git a/tools/sk_app/WindowContext.h b/tools/sk_app/WindowContext.h
index 8b91011..5b1058e 100644
--- a/tools/sk_app/WindowContext.h
+++ b/tools/sk_app/WindowContext.h
@@ -7,11 +7,11 @@
 #ifndef WindowContext_DEFINED
 #define WindowContext_DEFINED
 
-#include "DisplayParams.h"
-#include "GrContext.h"
-#include "GrTypes.h"
-#include "SkRefCnt.h"
-#include "SkSurfaceProps.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSurfaceProps.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrTypes.h"
+#include "tools/sk_app/DisplayParams.h"
 
 class SkSurface;
 class GrRenderTarget;
diff --git a/tools/sk_app/android/GLWindowContext_android.cpp b/tools/sk_app/android/GLWindowContext_android.cpp
index f7f9e0c..c05274e 100644
--- a/tools/sk_app/android/GLWindowContext_android.cpp
+++ b/tools/sk_app/android/GLWindowContext_android.cpp
@@ -8,9 +8,9 @@
 
 #include <EGL/egl.h>
 #include <GLES/gl.h>
-#include "../GLWindowContext.h"
-#include "WindowContextFactory_android.h"
-#include "gl/GrGLInterface.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "tools/sk_app/GLWindowContext.h"
+#include "tools/sk_app/android/WindowContextFactory_android.h"
 
 using sk_app::GLWindowContext;
 using sk_app::DisplayParams;
diff --git a/tools/sk_app/android/RasterWindowContext_android.cpp b/tools/sk_app/android/RasterWindowContext_android.cpp
index 101e51e..9a2f9c1d 100644
--- a/tools/sk_app/android/RasterWindowContext_android.cpp
+++ b/tools/sk_app/android/RasterWindowContext_android.cpp
@@ -6,10 +6,10 @@
  * found in the LICENSE file.
  */
 
-#include "WindowContextFactory_android.h"
-#include "../RasterWindowContext.h"
-#include "SkSurface.h"
-#include "SkTypes.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTypes.h"
+#include "tools/sk_app/RasterWindowContext.h"
+#include "tools/sk_app/android/WindowContextFactory_android.h"
 
 using sk_app::RasterWindowContext;
 using sk_app::DisplayParams;
diff --git a/tools/sk_app/android/VulkanWindowContext_android.cpp b/tools/sk_app/android/VulkanWindowContext_android.cpp
index 0a3f022..da32081 100644
--- a/tools/sk_app/android/VulkanWindowContext_android.cpp
+++ b/tools/sk_app/android/VulkanWindowContext_android.cpp
@@ -6,13 +6,13 @@
  * found in the LICENSE file.
  */
 
-#include "vk/GrVkVulkan.h"
+#include "include/gpu/vk/GrVkVulkan.h"
 
-#include "WindowContextFactory_android.h"
+#include "tools/sk_app/android/WindowContextFactory_android.h"
 
-#include "../VulkanWindowContext.h"
+#include "tools/sk_app/VulkanWindowContext.h"
 
-#include "vk/VkTestUtils.h"
+#include "tools/gpu/vk/VkTestUtils.h"
 
 namespace sk_app {
 
diff --git a/tools/sk_app/android/Window_android.cpp b/tools/sk_app/android/Window_android.cpp
index 96acfc6..0dabd8c 100644
--- a/tools/sk_app/android/Window_android.cpp
+++ b/tools/sk_app/android/Window_android.cpp
@@ -5,9 +5,9 @@
 * found in the LICENSE file.
 */
 
-#include "Window_android.h"
-#include "WindowContextFactory_android.h"
-#include "../WindowContext.h"
+#include "tools/sk_app/WindowContext.h"
+#include "tools/sk_app/android/WindowContextFactory_android.h"
+#include "tools/sk_app/android/Window_android.h"
 
 namespace sk_app {
 
diff --git a/tools/sk_app/android/Window_android.h b/tools/sk_app/android/Window_android.h
index 9e28a80..23ec817 100644
--- a/tools/sk_app/android/Window_android.h
+++ b/tools/sk_app/android/Window_android.h
@@ -8,8 +8,8 @@
 #ifndef Window_android_DEFINED
 #define Window_android_DEFINED
 
-#include "../Window.h"
-#include "surface_glue_android.h"
+#include "tools/sk_app/Window.h"
+#include "tools/sk_app/android/surface_glue_android.h"
 
 namespace sk_app {
 
diff --git a/tools/sk_app/android/main_android.cpp b/tools/sk_app/android/main_android.cpp
index cb8db6c..3eaea2c 100644
--- a/tools/sk_app/android/main_android.cpp
+++ b/tools/sk_app/android/main_android.cpp
@@ -10,8 +10,8 @@
 
 #include <android_native_app_glue.h>
 
-#include "../Application.h"
-#include "Timer.h"
+#include "tools/sk_app/Application.h"
+#include "tools/timer/Timer.h"
 
 using sk_app::Application;
 
diff --git a/tools/sk_app/android/surface_glue_android.cpp b/tools/sk_app/android/surface_glue_android.cpp
index 5c8d21f..3ddb95e 100644
--- a/tools/sk_app/android/surface_glue_android.cpp
+++ b/tools/sk_app/android/surface_glue_android.cpp
@@ -5,7 +5,7 @@
 * found in the LICENSE file.
 */
 
-#include "surface_glue_android.h"
+#include "tools/sk_app/android/surface_glue_android.h"
 
 #include <jni.h>
 #include <pthread.h>
@@ -20,12 +20,12 @@
 #include <android/looper.h>
 #include <android/native_window_jni.h>
 
-#include "../Application.h"
-#include "ResourceFactory.h"
-#include "SkTo.h"
-#include "SkTypes.h"
-#include "SkUTF.h"
-#include "Window_android.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTo.h"
+#include "src/utils/SkUTF.h"
+#include "tools/ResourceFactory.h"
+#include "tools/sk_app/Application.h"
+#include "tools/sk_app/android/Window_android.h"
 
 
 namespace sk_app {
diff --git a/tools/sk_app/android/surface_glue_android.h b/tools/sk_app/android/surface_glue_android.h
index 1dd1f28..f73fe56 100644
--- a/tools/sk_app/android/surface_glue_android.h
+++ b/tools/sk_app/android/surface_glue_android.h
@@ -12,10 +12,10 @@
 
 #include <android/native_window_jni.h>
 
-#include "SkString.h"
+#include "include/core/SkString.h"
 
-#include "../Application.h"
-#include "../Window.h"
+#include "tools/sk_app/Application.h"
+#include "tools/sk_app/Window.h"
 
 namespace sk_app {
 
diff --git a/tools/sk_app/ios/GLWindowContext_ios.cpp b/tools/sk_app/ios/GLWindowContext_ios.cpp
index aac7e20..ec18c7b 100644
--- a/tools/sk_app/ios/GLWindowContext_ios.cpp
+++ b/tools/sk_app/ios/GLWindowContext_ios.cpp
@@ -7,10 +7,10 @@
  */
 
 #include <OpenGLES/ES2/gl.h>
-#include "../GLWindowContext.h"
+#include "tools/sk_app/GLWindowContext.h"
 #include "SDL.h"
-#include "WindowContextFactory_ios.h"
-#include "gl/GrGLInterface.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "tools/sk_app/ios/WindowContextFactory_ios.h"
 
 using sk_app::DisplayParams;
 using sk_app::window_context_factory::IOSWindowInfo;
diff --git a/tools/sk_app/ios/RasterWindowContext_ios.cpp b/tools/sk_app/ios/RasterWindowContext_ios.cpp
index c3d9c74..1e1beca 100644
--- a/tools/sk_app/ios/RasterWindowContext_ios.cpp
+++ b/tools/sk_app/ios/RasterWindowContext_ios.cpp
@@ -6,12 +6,12 @@
  * found in the LICENSE file.
  */
 
-#include "../GLWindowContext.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "ToolUtils.h"
-#include "WindowContextFactory_ios.h"
-#include "gl/GrGLInterface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "tools/ToolUtils.h"
+#include "tools/sk_app/GLWindowContext.h"
+#include "tools/sk_app/ios/WindowContextFactory_ios.h"
 
 #include <OpenGLES/ES2/gl.h>
 
diff --git a/tools/sk_app/ios/Window_ios.cpp b/tools/sk_app/ios/Window_ios.cpp
index 6c2e144..21b510a 100644
--- a/tools/sk_app/ios/Window_ios.cpp
+++ b/tools/sk_app/ios/Window_ios.cpp
@@ -5,10 +5,10 @@
 * found in the LICENSE file.
 */
 
-#include "SkUtils.h"
-#include "Timer.h"
-#include "WindowContextFactory_ios.h"
-#include "Window_ios.h"
+#include "src/core/SkUtils.h"
+#include "tools/sk_app/ios/WindowContextFactory_ios.h"
+#include "tools/sk_app/ios/Window_ios.h"
+#include "tools/timer/Timer.h"
 
 namespace sk_app {
 
diff --git a/tools/sk_app/ios/Window_ios.h b/tools/sk_app/ios/Window_ios.h
index 260b133..a548253 100644
--- a/tools/sk_app/ios/Window_ios.h
+++ b/tools/sk_app/ios/Window_ios.h
@@ -8,9 +8,9 @@
 #ifndef Window_ios_DEFINED
 #define Window_ios_DEFINED
 
-#include "../Window.h"
-#include "SkChecksum.h"
-#include "SkTDynamicHash.h"
+#include "include/private/SkChecksum.h"
+#include "src/core/SkTDynamicHash.h"
+#include "tools/sk_app/Window.h"
 
 #include "SDL.h"
 
diff --git a/tools/sk_app/ios/main_ios.cpp b/tools/sk_app/ios/main_ios.cpp
index 93f6e6d4..6982a5a 100644
--- a/tools/sk_app/ios/main_ios.cpp
+++ b/tools/sk_app/ios/main_ios.cpp
@@ -5,11 +5,11 @@
 * found in the LICENSE file.
 */
 
-#include "SkTypes.h"
-#include "SkTHash.h"
-#include "Timer.h"
-#include "Window_ios.h"
-#include "../Application.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTHash.h"
+#include "tools/sk_app/Application.h"
+#include "tools/sk_app/ios/Window_ios.h"
+#include "tools/timer/Timer.h"
 
 #include "SDL.h"
 
diff --git a/tools/sk_app/mac/GLWindowContext_mac.mm b/tools/sk_app/mac/GLWindowContext_mac.mm
index f6650f4..75c4945 100644
--- a/tools/sk_app/mac/GLWindowContext_mac.mm
+++ b/tools/sk_app/mac/GLWindowContext_mac.mm
@@ -6,9 +6,9 @@
  * found in the LICENSE file.
  */
 
-#include "../GLWindowContext.h"
-#include "WindowContextFactory_mac.h"
-#include "gl/GrGLInterface.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "tools/sk_app/GLWindowContext.h"
+#include "tools/sk_app/mac/WindowContextFactory_mac.h"
 
 #include <OpenGL/gl.h>
 #include <Cocoa/Cocoa.h>
diff --git a/tools/sk_app/mac/MetalWindowContext_mac.mm b/tools/sk_app/mac/MetalWindowContext_mac.mm
index 3c76d1a..84cc754 100644
--- a/tools/sk_app/mac/MetalWindowContext_mac.mm
+++ b/tools/sk_app/mac/MetalWindowContext_mac.mm
@@ -6,8 +6,8 @@
  * found in the LICENSE file.
  */
 
-#include "../MetalWindowContext.h"
-#include "WindowContextFactory_mac.h"
+#include "tools/sk_app/MetalWindowContext.h"
+#include "tools/sk_app/mac/WindowContextFactory_mac.h"
 
 #import <MetalKit/MetalKit.h>
 
diff --git a/tools/sk_app/mac/RasterWindowContext_mac.mm b/tools/sk_app/mac/RasterWindowContext_mac.mm
index edbbe33..b4c1cc8 100644
--- a/tools/sk_app/mac/RasterWindowContext_mac.mm
+++ b/tools/sk_app/mac/RasterWindowContext_mac.mm
@@ -6,12 +6,12 @@
  * found in the LICENSE file.
  */
 
-#include "../GLWindowContext.h"
-#include "SkCanvas.h"
-#include "SkColorFilter.h"
-#include "ToolUtils.h"
-#include "WindowContextFactory_mac.h"
-#include "gl/GrGLInterface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkColorFilter.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "tools/ToolUtils.h"
+#include "tools/sk_app/GLWindowContext.h"
+#include "tools/sk_app/mac/WindowContextFactory_mac.h"
 
 #include <OpenGL/gl.h>
 
diff --git a/tools/sk_app/mac/VulkanWindowContext_mac.mm b/tools/sk_app/mac/VulkanWindowContext_mac.mm
index 98e90e8..4670caf 100644
--- a/tools/sk_app/mac/VulkanWindowContext_mac.mm
+++ b/tools/sk_app/mac/VulkanWindowContext_mac.mm
@@ -6,16 +6,16 @@
  * found in the LICENSE file.
  */
 
-#include "vk/GrVkVulkan.h"
+#include "include/gpu/vk/GrVkVulkan.h"
 
-#include "vk/GrVkInterface.h"
-#include "vk/GrVkUtil.h"
+#include "src/gpu/vk/GrVkInterface.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
-#include "vk/VkTestUtils.h"
+#include "tools/gpu/vk/VkTestUtils.h"
 
-#include "WindowContextFactory_mac.h"
-#include "../VulkanWindowContext.h"
-#include "vulkan/vulkan_macos.h"
+#include "include/third_party/vulkan/vulkan/vulkan_macos.h"
+#include "tools/sk_app/VulkanWindowContext.h"
+#include "tools/sk_app/mac/WindowContextFactory_mac.h"
 
 #import <MetalKit/MetalKit.h>
 
diff --git a/tools/sk_app/mac/Window_mac.h b/tools/sk_app/mac/Window_mac.h
index 94f329a..f372efd 100644
--- a/tools/sk_app/mac/Window_mac.h
+++ b/tools/sk_app/mac/Window_mac.h
@@ -8,8 +8,8 @@
 #ifndef Window_mac_DEFINED
 #define Window_mac_DEFINED
 
-#include "../Window.h"
-#include "SkTDynamicHash.h"
+#include "src/core/SkTDynamicHash.h"
+#include "tools/sk_app/Window.h"
 
 #import <Cocoa/Cocoa.h>
 
diff --git a/tools/sk_app/mac/Window_mac.mm b/tools/sk_app/mac/Window_mac.mm
index d52d725..43b171d 100644
--- a/tools/sk_app/mac/Window_mac.mm
+++ b/tools/sk_app/mac/Window_mac.mm
@@ -5,9 +5,9 @@
 * found in the LICENSE file.
 */
 
-#include "SkUtils.h"
-#include "WindowContextFactory_mac.h"
-#include "Window_mac.h"
+#include "src/core/SkUtils.h"
+#include "tools/sk_app/mac/WindowContextFactory_mac.h"
+#include "tools/sk_app/mac/Window_mac.h"
 
 @interface WindowDelegate : NSObject<NSWindowDelegate>
 
diff --git a/tools/sk_app/mac/main_mac.mm b/tools/sk_app/mac/main_mac.mm
index 0df5f8e..99a8f52 100644
--- a/tools/sk_app/mac/main_mac.mm
+++ b/tools/sk_app/mac/main_mac.mm
@@ -7,8 +7,8 @@
 
 #import <Cocoa/Cocoa.h>
 
-#include "../Application.h"
-#include "Window_mac.h"
+#include "tools/sk_app/Application.h"
+#include "tools/sk_app/mac/Window_mac.h"
 
 @interface AppDelegate : NSObject<NSApplicationDelegate, NSWindowDelegate>
 
diff --git a/tools/sk_app/unix/GLWindowContext_unix.cpp b/tools/sk_app/unix/GLWindowContext_unix.cpp
index cac3f56..cf64004 100644
--- a/tools/sk_app/unix/GLWindowContext_unix.cpp
+++ b/tools/sk_app/unix/GLWindowContext_unix.cpp
@@ -6,9 +6,9 @@
  * found in the LICENSE file.
  */
 
-#include "../GLWindowContext.h"
-#include "WindowContextFactory_unix.h"
-#include "gl/GrGLInterface.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "tools/sk_app/GLWindowContext.h"
+#include "tools/sk_app/unix/WindowContextFactory_unix.h"
 
 #include <GL/gl.h>
 
diff --git a/tools/sk_app/unix/RasterWindowContext_unix.cpp b/tools/sk_app/unix/RasterWindowContext_unix.cpp
index d0e700c..068c9c8 100644
--- a/tools/sk_app/unix/RasterWindowContext_unix.cpp
+++ b/tools/sk_app/unix/RasterWindowContext_unix.cpp
@@ -5,9 +5,9 @@
  * found in the LICENSE file.
  */
 
-#include "WindowContextFactory_unix.h"
-#include "../RasterWindowContext.h"
-#include "SkSurface.h"
+#include "include/core/SkSurface.h"
+#include "tools/sk_app/RasterWindowContext.h"
+#include "tools/sk_app/unix/WindowContextFactory_unix.h"
 
 using sk_app::RasterWindowContext;
 using sk_app::DisplayParams;
diff --git a/tools/sk_app/unix/VulkanWindowContext_unix.cpp b/tools/sk_app/unix/VulkanWindowContext_unix.cpp
index 23b6110..561d221 100644
--- a/tools/sk_app/unix/VulkanWindowContext_unix.cpp
+++ b/tools/sk_app/unix/VulkanWindowContext_unix.cpp
@@ -6,15 +6,15 @@
  * found in the LICENSE file.
  */
 
-#include "vk/GrVkVulkan.h"
+#include "include/gpu/vk/GrVkVulkan.h"
 
-#include "vk/GrVkInterface.h"
-#include "vk/GrVkUtil.h"
+#include "src/gpu/vk/GrVkInterface.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
-#include "vk/VkTestUtils.h"
+#include "tools/gpu/vk/VkTestUtils.h"
 
-#include "WindowContextFactory_unix.h"
-#include "../VulkanWindowContext.h"
+#include "tools/sk_app/VulkanWindowContext.h"
+#include "tools/sk_app/unix/WindowContextFactory_unix.h"
 
 #include <X11/Xlib-xcb.h>
 
diff --git a/tools/sk_app/unix/Window_unix.cpp b/tools/sk_app/unix/Window_unix.cpp
index d24beca..2dbd680 100644
--- a/tools/sk_app/unix/Window_unix.cpp
+++ b/tools/sk_app/unix/Window_unix.cpp
@@ -7,15 +7,15 @@
 
 //#include <tchar.h>
 
-#include "WindowContextFactory_unix.h"
+#include "tools/sk_app/unix/WindowContextFactory_unix.h"
 
-#include "SkUTF.h"
-#include "Timer.h"
-#include "../GLWindowContext.h"
-#include "Window_unix.h"
+#include "src/utils/SkUTF.h"
+#include "tools/sk_app/GLWindowContext.h"
+#include "tools/sk_app/unix/Window_unix.h"
+#include "tools/timer/Timer.h"
 
 extern "C" {
-    #include "keysym2ucs.h"
+    #include "tools/sk_app/unix/keysym2ucs.h"
 }
 #include <X11/Xutil.h>
 #include <X11/XKBlib.h>
diff --git a/tools/sk_app/unix/Window_unix.h b/tools/sk_app/unix/Window_unix.h
index 18c9495..417a79b 100644
--- a/tools/sk_app/unix/Window_unix.h
+++ b/tools/sk_app/unix/Window_unix.h
@@ -8,9 +8,9 @@
 #ifndef Window_unix_DEFINED
 #define Window_unix_DEFINED
 
-#include "../Window.h"
-#include "SkChecksum.h"
-#include "SkTDynamicHash.h"
+#include "include/private/SkChecksum.h"
+#include "src/core/SkTDynamicHash.h"
+#include "tools/sk_app/Window.h"
 
 #include <GL/glx.h>
 #include <X11/Xlib.h>
diff --git a/tools/sk_app/unix/keysym2ucs.c b/tools/sk_app/unix/keysym2ucs.c
index a0c4ced..00e3052 100644
--- a/tools/sk_app/unix/keysym2ucs.c
+++ b/tools/sk_app/unix/keysym2ucs.c
@@ -34,7 +34,7 @@
  * AUTOMATICALLY GENERATED FILE, DO NOT EDIT !!! (unicode/convmap.pl)
  */
 
-#include "keysym2ucs.h"
+#include "tools/sk_app/unix/keysym2ucs.h"
 
 struct codepair {
   unsigned short keysym;
diff --git a/tools/sk_app/unix/main_unix.cpp b/tools/sk_app/unix/main_unix.cpp
index 617303f..0a21b36 100644
--- a/tools/sk_app/unix/main_unix.cpp
+++ b/tools/sk_app/unix/main_unix.cpp
@@ -6,11 +6,11 @@
 * found in the LICENSE file.
 */
 
-#include "SkTypes.h"
-#include "SkTHash.h"
-#include "Timer.h"
-#include "Window_unix.h"
-#include "../Application.h"
+#include "include/core/SkTypes.h"
+#include "include/private/SkTHash.h"
+#include "tools/sk_app/Application.h"
+#include "tools/sk_app/unix/Window_unix.h"
+#include "tools/timer/Timer.h"
 
 using sk_app::Application;
 
diff --git a/tools/sk_app/win/ANGLEWindowContext_win.cpp b/tools/sk_app/win/ANGLEWindowContext_win.cpp
index eb68dff..0e6a923 100644
--- a/tools/sk_app/win/ANGLEWindowContext_win.cpp
+++ b/tools/sk_app/win/ANGLEWindowContext_win.cpp
@@ -10,10 +10,10 @@
 
 #include <EGL/egl.h>
 #include <EGL/eglext.h>
-#include "../GLWindowContext.h"
-#include "WindowContextFactory_win.h"
-#include "gl/GrGLAssembleInterface.h"
-#include "gl/GrGLDefines.h"
+#include "include/gpu/gl/GrGLAssembleInterface.h"
+#include "src/gpu/gl/GrGLDefines.h"
+#include "tools/sk_app/GLWindowContext.h"
+#include "tools/sk_app/win/WindowContextFactory_win.h"
 
 using sk_app::GLWindowContext;
 using sk_app::DisplayParams;
diff --git a/tools/sk_app/win/GLWindowContext_win.cpp b/tools/sk_app/win/GLWindowContext_win.cpp
index a629da6..ba041ed 100644
--- a/tools/sk_app/win/GLWindowContext_win.cpp
+++ b/tools/sk_app/win/GLWindowContext_win.cpp
@@ -6,10 +6,10 @@
  * found in the LICENSE file.
  */
 
-#include "../GLWindowContext.h"
-#include "gl/GrGLInterface.h"
-#include "WindowContextFactory_win.h"
-#include "win/SkWGL.h"
+#include "include/gpu/gl/GrGLInterface.h"
+#include "src/utils/win/SkWGL.h"
+#include "tools/sk_app/GLWindowContext.h"
+#include "tools/sk_app/win/WindowContextFactory_win.h"
 
 #include <Windows.h>
 #include <GL/gl.h>
diff --git a/tools/sk_app/win/RasterWindowContext_win.cpp b/tools/sk_app/win/RasterWindowContext_win.cpp
index 45c03e0..bd7743b 100644
--- a/tools/sk_app/win/RasterWindowContext_win.cpp
+++ b/tools/sk_app/win/RasterWindowContext_win.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "../RasterWindowContext.h"
-#include "SkAutoMalloc.h"
-#include "SkSurface.h"
-#include "WindowContextFactory_win.h"
+#include "include/core/SkSurface.h"
+#include "src/core/SkAutoMalloc.h"
+#include "tools/sk_app/RasterWindowContext.h"
+#include "tools/sk_app/win/WindowContextFactory_win.h"
 
 #include <Windows.h>
 
diff --git a/tools/sk_app/win/VulkanWindowContext_win.cpp b/tools/sk_app/win/VulkanWindowContext_win.cpp
index 47db6d0..d7b0881 100644
--- a/tools/sk_app/win/VulkanWindowContext_win.cpp
+++ b/tools/sk_app/win/VulkanWindowContext_win.cpp
@@ -6,17 +6,17 @@
  * found in the LICENSE file.
  */
 
-#include "vk/GrVkVulkan.h"
+#include "include/gpu/vk/GrVkVulkan.h"
 
-#include "WindowContextFactory_win.h"
+#include "tools/sk_app/win/WindowContextFactory_win.h"
 
-#include "../VulkanWindowContext.h"
-#include "Window_win.h"
+#include "tools/sk_app/VulkanWindowContext.h"
+#include "tools/sk_app/win/Window_win.h"
 
-#include "vk/GrVkInterface.h"
-#include "vk/GrVkUtil.h"
+#include "src/gpu/vk/GrVkInterface.h"
+#include "src/gpu/vk/GrVkUtil.h"
 
-#include "vk/VkTestUtils.h"
+#include "tools/gpu/vk/VkTestUtils.h"
 
 #include <Windows.h>
 
diff --git a/tools/sk_app/win/Window_win.cpp b/tools/sk_app/win/Window_win.cpp
index 9420428..66ebc19 100644
--- a/tools/sk_app/win/Window_win.cpp
+++ b/tools/sk_app/win/Window_win.cpp
@@ -5,19 +5,19 @@
 * found in the LICENSE file.
 */
 
-#include "vk/GrVkVulkan.h"
+#include "include/gpu/vk/GrVkVulkan.h"
 
-#include "Window_win.h"
+#include "tools/sk_app/win/Window_win.h"
 
 #include <tchar.h>
 #include <windows.h>
 #include <windowsx.h>
 
-#include "SkUtils.h"
-#include "../WindowContext.h"
-#include "WindowContextFactory_win.h"
+#include "src/core/SkUtils.h"
+#include "tools/sk_app/WindowContext.h"
+#include "tools/sk_app/win/WindowContextFactory_win.h"
 #ifdef SK_VULKAN
-#include "../VulkanWindowContext.h"
+#include "tools/sk_app/VulkanWindowContext.h"
 #endif
 
 namespace sk_app {
diff --git a/tools/sk_app/win/Window_win.h b/tools/sk_app/win/Window_win.h
index 1ec842e56..9e108e0 100644
--- a/tools/sk_app/win/Window_win.h
+++ b/tools/sk_app/win/Window_win.h
@@ -8,7 +8,7 @@
 #ifndef Window_win_DEFINED
 #define Window_win_DEFINED
 
-#include "../Window.h"
+#include "tools/sk_app/Window.h"
 
 #include <windows.h>
 
diff --git a/tools/sk_app/win/main_win.cpp b/tools/sk_app/win/main_win.cpp
index 4913587..5a7fdc1 100644
--- a/tools/sk_app/win/main_win.cpp
+++ b/tools/sk_app/win/main_win.cpp
@@ -8,10 +8,10 @@
 #include <windows.h>
 #include <tchar.h>
 
-#include "SkTypes.h"
-#include "Timer.h"
-#include "Window_win.h"
-#include "../Application.h"
+#include "include/core/SkTypes.h"
+#include "tools/sk_app/Application.h"
+#include "tools/sk_app/win/Window_win.h"
+#include "tools/timer/Timer.h"
 
 using sk_app::Application;
 
diff --git a/tools/skdiff/skdiff.cpp b/tools/skdiff/skdiff.cpp
index c7ddf7d..f1abc9f 100644
--- a/tools/skdiff/skdiff.cpp
+++ b/tools/skdiff/skdiff.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "skdiff.h"
-#include "SkBitmap.h"
-#include "SkColor.h"
-#include "SkColorPriv.h"
-#include "SkTypes.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkTypes.h"
+#include "tools/skdiff/skdiff.h"
 
 /*static*/ char const * const DiffRecord::ResultNames[DiffRecord::kResultCount] = {
     "EqualBits",
diff --git a/tools/skdiff/skdiff.h b/tools/skdiff/skdiff.h
index 1d4e8ac..4ab79b8 100644
--- a/tools/skdiff/skdiff.h
+++ b/tools/skdiff/skdiff.h
@@ -8,11 +8,11 @@
 #ifndef skdiff_DEFINED
 #define skdiff_DEFINED
 
-#include "SkBitmap.h"
-#include "SkColor.h"
-#include "SkColorPriv.h"
-#include "SkString.h"
-#include "../private/SkTDArray.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkColorPriv.h"
+#include "include/core/SkString.h"
+#include "include/private/SkTDArray.h"
 
 #if defined(SK_BUILD_FOR_WIN)
     #define PATH_DIV_STR "\\"
diff --git a/tools/skdiff/skdiff_html.cpp b/tools/skdiff/skdiff_html.cpp
index e0476bc..4e5a83c 100644
--- a/tools/skdiff/skdiff_html.cpp
+++ b/tools/skdiff/skdiff_html.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "skdiff.h"
-#include "skdiff_html.h"
-#include "SkStream.h"
-#include "SkTime.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTime.h"
+#include "tools/skdiff/skdiff.h"
+#include "tools/skdiff/skdiff_html.h"
 
 /// Make layout more consistent by scaling image to 240 height, 360 width,
 /// or natural size, whichever is smallest.
diff --git a/tools/skdiff/skdiff_html.h b/tools/skdiff/skdiff_html.h
index eefbebf..a881498 100644
--- a/tools/skdiff/skdiff_html.h
+++ b/tools/skdiff/skdiff_html.h
@@ -8,7 +8,7 @@
 #ifndef skdiff_html_DEFINED
 #define skdiff_html_DEFINED
 
-#include "skdiff.h"
+#include "tools/skdiff/skdiff.h"
 class SkString;
 
 void print_diff_page(const int matchCount,
diff --git a/tools/skdiff/skdiff_main.cpp b/tools/skdiff/skdiff_main.cpp
index b4fdaad..4aa133d 100644
--- a/tools/skdiff/skdiff_main.cpp
+++ b/tools/skdiff/skdiff_main.cpp
@@ -4,18 +4,18 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "skdiff.h"
-#include "skdiff_html.h"
-#include "skdiff_utils.h"
-#include "SkBitmap.h"
-#include "SkData.h"
-#include "SkImageEncoder.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkStream.h"
-#include "SkPixelRef.h"
-#include "../private/SkTDArray.h"
-#include "../private/SkTSearch.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageEncoder.h"
+#include "include/core/SkPixelRef.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkTDArray.h"
+#include "include/private/SkTSearch.h"
+#include "src/core/SkOSFile.h"
+#include "src/utils/SkOSPath.h"
+#include "tools/skdiff/skdiff.h"
+#include "tools/skdiff/skdiff_html.h"
+#include "tools/skdiff/skdiff_utils.h"
 
 #include <stdlib.h>
 
diff --git a/tools/skdiff/skdiff_utils.cpp b/tools/skdiff/skdiff_utils.cpp
index 342af99..38468dc 100644
--- a/tools/skdiff/skdiff_utils.cpp
+++ b/tools/skdiff/skdiff_utils.cpp
@@ -4,15 +4,15 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "skdiff_utils.h"
-#include "SkBitmap.h"
-#include "SkCodec.h"
-#include "SkData.h"
-#include "SkImageEncoder.h"
-#include "SkStream.h"
-#include "SkTypes.h"
-#include "ToolUtils.h"
-#include "skdiff.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImageEncoder.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTypes.h"
+#include "tools/ToolUtils.h"
+#include "tools/skdiff/skdiff.h"
+#include "tools/skdiff/skdiff_utils.h"
 
 #include <memory>
 
diff --git a/tools/skdiff/skdiff_utils.h b/tools/skdiff/skdiff_utils.h
index f041f3a..9a6385c 100644
--- a/tools/skdiff/skdiff_utils.h
+++ b/tools/skdiff/skdiff_utils.h
@@ -8,7 +8,7 @@
 #ifndef skdiff_utils_DEFINED
 #define skdiff_utils_DEFINED
 
-#include "skdiff.h"
+#include "tools/skdiff/skdiff.h"
 
 class SkBitmap;
 class SkData;
diff --git a/tools/skhello.cpp b/tools/skhello.cpp
index 0f39399..cd84eab 100644
--- a/tools/skhello.cpp
+++ b/tools/skhello.cpp
@@ -5,15 +5,15 @@
  * found in the LICENSE file.
  */
 
-#include "CommandLineFlags.h"
-#include "SkCanvas.h"
-#include "SkData.h"
-#include "SkDocument.h"
-#include "SkGraphics.h"
-#include "SkImage.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkSurface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkDocument.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkString.h"
+#include "include/core/SkSurface.h"
+#include "tools/flags/CommandLineFlags.h"
 
 static DEFINE_string2(outFile, o, "skhello", "The filename to write the image.");
 static DEFINE_string2(text, t, "Hello", "The string to write.");
diff --git a/tools/skiaserve/Request.cpp b/tools/skiaserve/Request.cpp
index d73a29c..dc0b40d 100644
--- a/tools/skiaserve/Request.cpp
+++ b/tools/skiaserve/Request.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "Request.h"
+#include "tools/skiaserve/Request.h"
 
-#include "SkJSONWriter.h"
-#include "SkPictureRecorder.h"
-#include "ToolUtils.h"
+#include "include/core/SkPictureRecorder.h"
+#include "src/utils/SkJSONWriter.h"
+#include "tools/ToolUtils.h"
 
 using namespace sk_gpu_test;
 
diff --git a/tools/skiaserve/Request.h b/tools/skiaserve/Request.h
index 3775af1..aef69c3 100644
--- a/tools/skiaserve/Request.h
+++ b/tools/skiaserve/Request.h
@@ -8,16 +8,16 @@
 #ifndef Request_DEFINED
 #define Request_DEFINED
 
-#include "SkTypes.h"
+#include "include/core/SkTypes.h"
 
-#include "GrContextFactory.h"
+#include "tools/gpu/GrContextFactory.h"
 
-#include "DebugCanvas.h"
-#include "SkPicture.h"
-#include "SkStream.h"
-#include "SkSurface.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkSurface.h"
+#include "tools/debugger/DebugCanvas.h"
 
-#include "UrlDataManager.h"
+#include "tools/UrlDataManager.h"
 
 namespace sk_gpu_test {
 class GrContextFactory;
diff --git a/tools/skiaserve/Response.cpp b/tools/skiaserve/Response.cpp
index f200828..d74963a 100644
--- a/tools/skiaserve/Response.cpp
+++ b/tools/skiaserve/Response.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Response.h"
+#include "tools/skiaserve/Response.h"
 
-#include "Request.h"
+#include "tools/skiaserve/Request.h"
 
-#include "CommandLineFlags.h"
-#include "SkData.h"
-#include "SkString.h"
+#include "include/core/SkData.h"
+#include "include/core/SkString.h"
+#include "tools/flags/CommandLineFlags.h"
 
 #include "microhttpd.h"
 
diff --git a/tools/skiaserve/skiaserve.cpp b/tools/skiaserve/skiaserve.cpp
index 8292777..0a64db7 100644
--- a/tools/skiaserve/skiaserve.cpp
+++ b/tools/skiaserve/skiaserve.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "Request.h"
-#include "Response.h"
+#include "tools/skiaserve/Request.h"
+#include "tools/skiaserve/Response.h"
 
-#include "CommandLineFlags.h"
-#include "SkGraphics.h"
+#include "include/core/SkGraphics.h"
+#include "tools/flags/CommandLineFlags.h"
 
-#include "urlhandlers/UrlHandler.h"
+#include "tools/skiaserve/urlhandlers/UrlHandler.h"
 
 #include "microhttpd.h"
 
diff --git a/tools/skiaserve/urlhandlers/BreakHandler.cpp b/tools/skiaserve/urlhandlers/BreakHandler.cpp
index 2d6a547..5013c6d 100644
--- a/tools/skiaserve/urlhandlers/BreakHandler.cpp
+++ b/tools/skiaserve/urlhandlers/BreakHandler.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "UrlHandler.h"
+#include "tools/skiaserve/urlhandlers/UrlHandler.h"
 
 #include "microhttpd.h"
-#include "../Request.h"
-#include "../Response.h"
+#include "tools/skiaserve/Request.h"
+#include "tools/skiaserve/Response.h"
 
 using namespace Response;
 
diff --git a/tools/skiaserve/urlhandlers/ClipAlphaHandler.cpp b/tools/skiaserve/urlhandlers/ClipAlphaHandler.cpp
index a931f93..3032eee 100644
--- a/tools/skiaserve/urlhandlers/ClipAlphaHandler.cpp
+++ b/tools/skiaserve/urlhandlers/ClipAlphaHandler.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "UrlHandler.h"
+#include "tools/skiaserve/urlhandlers/UrlHandler.h"
 
 #include "microhttpd.h"
-#include "../Request.h"
-#include "../Response.h"
+#include "tools/skiaserve/Request.h"
+#include "tools/skiaserve/Response.h"
 
 using namespace Response;
 
diff --git a/tools/skiaserve/urlhandlers/CmdHandler.cpp b/tools/skiaserve/urlhandlers/CmdHandler.cpp
index c8ec82d..fa78766 100644
--- a/tools/skiaserve/urlhandlers/CmdHandler.cpp
+++ b/tools/skiaserve/urlhandlers/CmdHandler.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "UrlHandler.h"
+#include "tools/skiaserve/urlhandlers/UrlHandler.h"
 
 #include "microhttpd.h"
-#include "../Request.h"
-#include "../Response.h"
+#include "tools/skiaserve/Request.h"
+#include "tools/skiaserve/Response.h"
 
 using namespace Response;
 
diff --git a/tools/skiaserve/urlhandlers/ColorModeHandler.cpp b/tools/skiaserve/urlhandlers/ColorModeHandler.cpp
index 25cdf7d..a4c308d 100644
--- a/tools/skiaserve/urlhandlers/ColorModeHandler.cpp
+++ b/tools/skiaserve/urlhandlers/ColorModeHandler.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "UrlHandler.h"
+#include "tools/skiaserve/urlhandlers/UrlHandler.h"
 
 #include "microhttpd.h"
-#include "../Request.h"
-#include "../Response.h"
+#include "tools/skiaserve/Request.h"
+#include "tools/skiaserve/Response.h"
 
 using namespace Response;
 
diff --git a/tools/skiaserve/urlhandlers/DataHandler.cpp b/tools/skiaserve/urlhandlers/DataHandler.cpp
index 83a9be4..8df8288 100644
--- a/tools/skiaserve/urlhandlers/DataHandler.cpp
+++ b/tools/skiaserve/urlhandlers/DataHandler.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "UrlHandler.h"
+#include "tools/skiaserve/urlhandlers/UrlHandler.h"
 
 #include "microhttpd.h"
-#include "../Request.h"
-#include "../Response.h"
+#include "tools/skiaserve/Request.h"
+#include "tools/skiaserve/Response.h"
 
 using namespace Response;
 
diff --git a/tools/skiaserve/urlhandlers/DownloadHandler.cpp b/tools/skiaserve/urlhandlers/DownloadHandler.cpp
index 17bf867..6f344bdd 100644
--- a/tools/skiaserve/urlhandlers/DownloadHandler.cpp
+++ b/tools/skiaserve/urlhandlers/DownloadHandler.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "UrlHandler.h"
+#include "tools/skiaserve/urlhandlers/UrlHandler.h"
 
 #include "microhttpd.h"
-#include "../Request.h"
-#include "../Response.h"
+#include "tools/skiaserve/Request.h"
+#include "tools/skiaserve/Response.h"
 
 using namespace Response;
 
diff --git a/tools/skiaserve/urlhandlers/EnableGPUHandler.cpp b/tools/skiaserve/urlhandlers/EnableGPUHandler.cpp
index 7364ef0..a458cad 100644
--- a/tools/skiaserve/urlhandlers/EnableGPUHandler.cpp
+++ b/tools/skiaserve/urlhandlers/EnableGPUHandler.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "UrlHandler.h"
+#include "tools/skiaserve/urlhandlers/UrlHandler.h"
 
 #include "microhttpd.h"
-#include "../Request.h"
-#include "../Response.h"
+#include "tools/skiaserve/Request.h"
+#include "tools/skiaserve/Response.h"
 
 using namespace Response;
 
diff --git a/tools/skiaserve/urlhandlers/ImgHandler.cpp b/tools/skiaserve/urlhandlers/ImgHandler.cpp
index 659c215..652b619 100644
--- a/tools/skiaserve/urlhandlers/ImgHandler.cpp
+++ b/tools/skiaserve/urlhandlers/ImgHandler.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "UrlHandler.h"
+#include "tools/skiaserve/urlhandlers/UrlHandler.h"
 
 #include "microhttpd.h"
-#include "../Request.h"
-#include "../Response.h"
+#include "tools/skiaserve/Request.h"
+#include "tools/skiaserve/Response.h"
 
 using namespace Response;
 
diff --git a/tools/skiaserve/urlhandlers/InfoHandler.cpp b/tools/skiaserve/urlhandlers/InfoHandler.cpp
index 9335458..d276605 100644
--- a/tools/skiaserve/urlhandlers/InfoHandler.cpp
+++ b/tools/skiaserve/urlhandlers/InfoHandler.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "UrlHandler.h"
+#include "tools/skiaserve/urlhandlers/UrlHandler.h"
 
 #include "microhttpd.h"
-#include "../Request.h"
-#include "../Response.h"
+#include "tools/skiaserve/Request.h"
+#include "tools/skiaserve/Response.h"
 
 using namespace Response;
 
diff --git a/tools/skiaserve/urlhandlers/OpBoundsHandler.cpp b/tools/skiaserve/urlhandlers/OpBoundsHandler.cpp
index e9a120f..94f4e6b 100644
--- a/tools/skiaserve/urlhandlers/OpBoundsHandler.cpp
+++ b/tools/skiaserve/urlhandlers/OpBoundsHandler.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "UrlHandler.h"
+#include "tools/skiaserve/urlhandlers/UrlHandler.h"
 
-#include "../Request.h"
-#include "../Response.h"
+#include "tools/skiaserve/Request.h"
+#include "tools/skiaserve/Response.h"
 #include "microhttpd.h"
 
 using namespace Response;
diff --git a/tools/skiaserve/urlhandlers/OpsHandler.cpp b/tools/skiaserve/urlhandlers/OpsHandler.cpp
index 852c526..556c2a9 100644
--- a/tools/skiaserve/urlhandlers/OpsHandler.cpp
+++ b/tools/skiaserve/urlhandlers/OpsHandler.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "UrlHandler.h"
+#include "tools/skiaserve/urlhandlers/UrlHandler.h"
 
-#include "../Request.h"
-#include "../Response.h"
+#include "tools/skiaserve/Request.h"
+#include "tools/skiaserve/Response.h"
 #include "microhttpd.h"
 
 using namespace Response;
diff --git a/tools/skiaserve/urlhandlers/OverdrawHandler.cpp b/tools/skiaserve/urlhandlers/OverdrawHandler.cpp
index 7f8c404..e7441aa 100644
--- a/tools/skiaserve/urlhandlers/OverdrawHandler.cpp
+++ b/tools/skiaserve/urlhandlers/OverdrawHandler.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "UrlHandler.h"
+#include "tools/skiaserve/urlhandlers/UrlHandler.h"
 
 #include "microhttpd.h"
-#include "../Request.h"
-#include "../Response.h"
+#include "tools/skiaserve/Request.h"
+#include "tools/skiaserve/Response.h"
 
 using namespace Response;
 
diff --git a/tools/skiaserve/urlhandlers/PostHandler.cpp b/tools/skiaserve/urlhandlers/PostHandler.cpp
index 634a2e5..22b8b50 100644
--- a/tools/skiaserve/urlhandlers/PostHandler.cpp
+++ b/tools/skiaserve/urlhandlers/PostHandler.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "UrlHandler.h"
+#include "tools/skiaserve/urlhandlers/UrlHandler.h"
 
 #include "microhttpd.h"
-#include "../Request.h"
-#include "../Response.h"
+#include "tools/skiaserve/Request.h"
+#include "tools/skiaserve/Response.h"
 
 using namespace Response;
 
diff --git a/tools/skiaserve/urlhandlers/QuitHandler.cpp b/tools/skiaserve/urlhandlers/QuitHandler.cpp
index fa8045c..230a0f8 100644
--- a/tools/skiaserve/urlhandlers/QuitHandler.cpp
+++ b/tools/skiaserve/urlhandlers/QuitHandler.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "UrlHandler.h"
+#include "tools/skiaserve/urlhandlers/UrlHandler.h"
 
 #include "microhttpd.h"
-#include "../Request.h"
-#include "../Response.h"
+#include "tools/skiaserve/Request.h"
+#include "tools/skiaserve/Response.h"
 
 using namespace Response;
 
diff --git a/tools/skiaserve/urlhandlers/RootHandler.cpp b/tools/skiaserve/urlhandlers/RootHandler.cpp
index 647c198..3ff04fe 100644
--- a/tools/skiaserve/urlhandlers/RootHandler.cpp
+++ b/tools/skiaserve/urlhandlers/RootHandler.cpp
@@ -5,11 +5,11 @@
  * found in the LICENSE file.
  */
 
-#include "UrlHandler.h"
+#include "tools/skiaserve/urlhandlers/UrlHandler.h"
 
 #include "microhttpd.h"
-#include "../Request.h"
-#include "../Response.h"
+#include "tools/skiaserve/Request.h"
+#include "tools/skiaserve/Response.h"
 
 using namespace Response;
 
diff --git a/tools/skiaserve/urlhandlers/UrlHandler.h b/tools/skiaserve/urlhandlers/UrlHandler.h
index 95fa476..eb17b5c 100644
--- a/tools/skiaserve/urlhandlers/UrlHandler.h
+++ b/tools/skiaserve/urlhandlers/UrlHandler.h
@@ -7,7 +7,7 @@
 #ifndef UrlHandler_DEFINED
 #define UrlHandler_DEFINED
 
-#include "SkColor.h"
+#include "include/core/SkColor.h"
 
 struct MHD_Connection;
 struct Request;
diff --git a/tools/skp_parser.cpp b/tools/skp_parser.cpp
index de1caf0..595209f 100644
--- a/tools/skp_parser.cpp
+++ b/tools/skp_parser.cpp
@@ -5,10 +5,10 @@
  * found in the LICENSE file.
  */
 
-#include "DebugCanvas.h"
-#include "SkNullCanvas.h"
-#include "SkPicture.h"
-#include "SkStream.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkStream.h"
+#include "include/utils/SkNullCanvas.h"
+#include "tools/debugger/DebugCanvas.h"
 
 #include <iostream>
 
diff --git a/tools/skpbench/skpbench.cpp b/tools/skpbench/skpbench.cpp
index 7b1c478..2320796 100644
--- a/tools/skpbench/skpbench.cpp
+++ b/tools/skpbench/skpbench.cpp
@@ -5,33 +5,33 @@
  * found in the LICENSE file.
  */
 
-#include "CommandLineFlags.h"
-#include "CommonFlags.h"
-#include "CommonFlagsConfig.h"
-#include "DDLPromiseImageHelper.h"
-#include "DDLTileHelper.h"
-#include "GpuTimer.h"
-#include "GrCaps.h"
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "SkCanvas.h"
-#include "SkDeferredDisplayList.h"
-#include "SkGr.h"
-#include "SkGraphics.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkPerlinNoiseShader.h"
-#include "SkPicture.h"
-#include "SkPictureRecorder.h"
-#include "SkStream.h"
-#include "SkSurface.h"
-#include "SkSurfaceProps.h"
-#include "SkTaskGroup.h"
-#include "ToolUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkSurfaceProps.h"
+#include "include/effects/SkPerlinNoiseShader.h"
+#include "include/private/SkDeferredDisplayList.h"
+#include "src/core/SkOSFile.h"
+#include "src/core/SkTaskGroup.h"
+#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/SkGr.h"
+#include "src/utils/SkOSPath.h"
+#include "tools/DDLPromiseImageHelper.h"
+#include "tools/DDLTileHelper.h"
+#include "tools/ToolUtils.h"
+#include "tools/flags/CommandLineFlags.h"
+#include "tools/flags/CommonFlags.h"
+#include "tools/flags/CommonFlagsConfig.h"
+#include "tools/gpu/GpuTimer.h"
+#include "tools/gpu/GrContextFactory.h"
 
 #ifdef SK_XML
-#include "SkDOM.h"
-#include "../experimental/svg/model/SkSVGDOM.h"
+#include "experimental/svg/model/SkSVGDOM.h"
+#include "src/xml/SkDOM.h"
 #endif
 
 #include <stdlib.h>
diff --git a/tools/skpinfo.cpp b/tools/skpinfo.cpp
index 2316c62..2fa2831 100644
--- a/tools/skpinfo.cpp
+++ b/tools/skpinfo.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "CommandLineFlags.h"
-#include "SkFontDescriptor.h"
-#include "SkPicture.h"
-#include "SkPictureCommon.h"
-#include "SkPictureData.h"
-#include "SkStream.h"
-#include "SkTo.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkTo.h"
+#include "src/core/SkFontDescriptor.h"
+#include "src/core/SkPictureCommon.h"
+#include "src/core/SkPictureData.h"
+#include "tools/flags/CommandLineFlags.h"
 
 static DEFINE_string2(input, i, "", "skp on which to report");
 static DEFINE_bool2(version, v, true, "version");
diff --git a/tools/skqp/jitter_gms.cpp b/tools/skqp/jitter_gms.cpp
index 9680471..6680b89 100644
--- a/tools/skqp/jitter_gms.cpp
+++ b/tools/skqp/jitter_gms.cpp
@@ -7,12 +7,12 @@
 // there is a significant change.  Print `1` if the named test has no
 // significant change, `0` otherwise
 
-#include "gm.h"
-#include "SkGraphics.h"
-#include "SkExecutor.h"
-#include "SkSemaphore.h"
+#include "gm/gm.h"
+#include "include/core/SkExecutor.h"
+#include "include/core/SkGraphics.h"
+#include "include/private/SkSemaphore.h"
 
-#include "skqp_model.h"
+#include "tools/skqp/src/skqp_model.h"
 
 #include <algorithm>
 #include <cstdio>
diff --git a/tools/skqp/make_skqp_model.cpp b/tools/skqp/make_skqp_model.cpp
index 4bf7e13..62ae5d0 100644
--- a/tools/skqp/make_skqp_model.cpp
+++ b/tools/skqp/make_skqp_model.cpp
@@ -1,10 +1,10 @@
 // Copyright 2019 Google LLC.
 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
 
-#include "SkBitmap.h"
-#include "SkCodec.h"
-#include "SkPngEncoder.h"
-#include "SkOSFile.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkBitmap.h"
+#include "include/encode/SkPngEncoder.h"
+#include "src/core/SkOSFile.h"
 
 static void update(SkBitmap* maxBitmap, SkBitmap* minBitmap, const SkBitmap& bm) {
     SkASSERT(!bm.drawsNothing());
diff --git a/tools/skqp/src/jni_skqp.cpp b/tools/skqp/src/jni_skqp.cpp
index 1d45ffd..43d8dd2 100644
--- a/tools/skqp/src/jni_skqp.cpp
+++ b/tools/skqp/src/jni_skqp.cpp
@@ -12,11 +12,11 @@
 #include <jni.h>
 #include <sys/stat.h>
 
-#include "ResourceFactory.h"
-#include "SkStream.h"
-#include "SkTo.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkTo.h"
+#include "tools/ResourceFactory.h"
 
-#include "skqp.h"
+#include "tools/skqp/src/skqp.h"
 
 ////////////////////////////////////////////////////////////////////////////////
 extern "C" {
diff --git a/tools/skqp/src/skqp.cpp b/tools/skqp/src/skqp.cpp
index 4bf57e2..32e381f 100644
--- a/tools/skqp/src/skqp.cpp
+++ b/tools/skqp/src/skqp.cpp
@@ -5,32 +5,32 @@
  * found in the LICENSE file.
  */
 
-#include "skqp.h"
+#include "tools/skqp/src/skqp.h"
 
-#include "../../../src/core/SkStreamPriv.h"
-#include "../../tools/fonts/TestFontMgr.h"
-#include "GrContext.h"
-#include "GrContextOptions.h"
-#include "GrContextPriv.h"
-#include "SkFontMgrPriv.h"
-#include "SkFontStyle.h"
-#include "SkGraphics.h"
-#include "SkImageInfoPriv.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkPngEncoder.h"
-#include "SkStream.h"
-#include "SkSurface.h"
-#include "Test.h"
-#include "gl/GLTestContext.h"
-#include "gm.h"
-#include "vk/VkTestContext.h"
+#include "gm/gm.h"
+#include "include/core/SkFontStyle.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkSurface.h"
+#include "include/encode/SkPngEncoder.h"
+#include "include/gpu/GrContext.h"
+#include "include/gpu/GrContextOptions.h"
+#include "include/private/SkImageInfoPriv.h"
+#include "src/core/SkFontMgrPriv.h"
+#include "src/core/SkOSFile.h"
+#include "src/core/SkStreamPriv.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/utils/SkOSPath.h"
+#include "tests/Test.h"
+#include "tools/fonts/TestFontMgr.h"
+#include "tools/gpu/gl/GLTestContext.h"
+#include "tools/gpu/vk/VkTestContext.h"
 
 #include <algorithm>
 #include <cinttypes>
 #include <sstream>
 
-#include "skqp_model.h"
+#include "tools/skqp/src/skqp_model.h"
 
 #define IMAGES_DIRECTORY_PATH "images"
 #define PATH_MAX_PNG "max.png"
diff --git a/tools/skqp/src/skqp_main.cpp b/tools/skqp/src/skqp_main.cpp
index 2737a9a..16369cb 100644
--- a/tools/skqp/src/skqp_main.cpp
+++ b/tools/skqp/src/skqp_main.cpp
@@ -8,11 +8,11 @@
 #include <iostream>
 #include <sys/stat.h>
 
-#include "skqp.h"
+#include "tools/skqp/src/skqp.h"
 
-#include "Resources.h"
-#include "SkData.h"
-#include "SkOSFile.h"
+#include "include/core/SkData.h"
+#include "src/core/SkOSFile.h"
+#include "tools/Resources.h"
 
 ////////////////////////////////////////////////////////////////////////////////
 
diff --git a/tools/skqp/src/skqp_model.cpp b/tools/skqp/src/skqp_model.cpp
index 79fd2dc..79be02d 100644
--- a/tools/skqp/src/skqp_model.cpp
+++ b/tools/skqp/src/skqp_model.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "skqp_model.h"
-#include "skqp.h"
+#include "tools/skqp/src/skqp.h"
+#include "tools/skqp/src/skqp_model.h"
 
-#include "SkBitmap.h"
-#include "SkCodec.h"
-#include "SkOSPath.h"
-#include "SkStream.h"
+#include "include/codec/SkCodec.h"
+#include "include/core/SkBitmap.h"
+#include "include/core/SkStream.h"
+#include "src/utils/SkOSPath.h"
 
 #ifndef SK_SKQP_GLOBAL_ERROR_TOLERANCE
 #define SK_SKQP_GLOBAL_ERROR_TOLERANCE 0
diff --git a/tools/skqp/src/skqp_model.h b/tools/skqp/src/skqp_model.h
index d807cde..a2feaa0 100644
--- a/tools/skqp/src/skqp_model.h
+++ b/tools/skqp/src/skqp_model.h
@@ -10,9 +10,9 @@
 #include <cstdint>
 #include <string>
 
-#include "SkBitmap.h"
+#include "include/core/SkBitmap.h"
 
-#include "skqp.h"
+#include "tools/skqp/src/skqp.h"
 
 class SkQPAssetManager;
 class SkStreamAsset;
diff --git a/tools/timer/AnimTimer.h b/tools/timer/AnimTimer.h
index 8517951..01ff21f 100644
--- a/tools/timer/AnimTimer.h
+++ b/tools/timer/AnimTimer.h
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkScalar.h"
-#include "SkTime.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkTime.h"
 
 #ifndef AnimTimer_DEFINED
 #define AnimTimer_DEFINED
diff --git a/tools/timer/Timer.cpp b/tools/timer/Timer.cpp
index 28841cd..fe214c4 100644
--- a/tools/timer/Timer.cpp
+++ b/tools/timer/Timer.cpp
@@ -4,7 +4,7 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
-#include "Timer.h"
+#include "tools/timer/Timer.h"
 
 SkString HumanizeMs(double ms) {
     if (ms > 60e+3)  return SkStringPrintf("%.3gm", ms/60e+3);
diff --git a/tools/timer/Timer.h b/tools/timer/Timer.h
index 446eb25..e8647ab 100644
--- a/tools/timer/Timer.h
+++ b/tools/timer/Timer.h
@@ -7,9 +7,9 @@
 #ifndef Timer_DEFINED
 #define Timer_DEFINED
 
-#include "SkString.h"
-#include "SkTime.h"
-#include "SkTypes.h"
+#include "include/core/SkString.h"
+#include "include/core/SkTime.h"
+#include "include/core/SkTypes.h"
 
 class WallTimer {
 public:
diff --git a/tools/trace/ChromeTracingTracer.cpp b/tools/trace/ChromeTracingTracer.cpp
index a6e84e4..ba6ea31 100644
--- a/tools/trace/ChromeTracingTracer.cpp
+++ b/tools/trace/ChromeTracingTracer.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "ChromeTracingTracer.h"
-#include "SkJSONWriter.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkStream.h"
-#include "SkThreadID.h"
-#include "SkTraceEvent.h"
+#include "include/core/SkStream.h"
+#include "include/private/SkThreadID.h"
+#include "src/core/SkOSFile.h"
+#include "src/core/SkTraceEvent.h"
+#include "src/utils/SkJSONWriter.h"
+#include "src/utils/SkOSPath.h"
+#include "tools/trace/ChromeTracingTracer.h"
 
 #include <chrono>
 
diff --git a/tools/trace/ChromeTracingTracer.h b/tools/trace/ChromeTracingTracer.h
index 266409d..56eed32 100644
--- a/tools/trace/ChromeTracingTracer.h
+++ b/tools/trace/ChromeTracingTracer.h
@@ -8,11 +8,11 @@
 #ifndef ChromeTracingTracer_DEFINED
 #define ChromeTracingTracer_DEFINED
 
-#include "EventTracingPriv.h"
-#include "SkEventTracer.h"
-#include "SkSpinlock.h"
-#include "SkString.h"
-#include "SkTHash.h"
+#include "include/core/SkString.h"
+#include "include/private/SkSpinlock.h"
+#include "include/private/SkTHash.h"
+#include "include/utils/SkEventTracer.h"
+#include "tools/trace/EventTracingPriv.h"
 
 class SkJSONWriter;
 
diff --git a/tools/trace/EventTracingPriv.cpp b/tools/trace/EventTracingPriv.cpp
index e3d9c2c..43fc430 100644
--- a/tools/trace/EventTracingPriv.cpp
+++ b/tools/trace/EventTracingPriv.cpp
@@ -5,14 +5,14 @@
  * found in the LICENSE file.
  */
 
-#include "EventTracingPriv.h"
+#include "tools/trace/EventTracingPriv.h"
 
-#include "ChromeTracingTracer.h"
-#include "CommandLineFlags.h"
-#include "SkATrace.h"
-#include "SkDebugfTracer.h"
-#include "SkEventTracer.h"
-#include "SkTraceEvent.h"
+#include "include/utils/SkEventTracer.h"
+#include "src/core/SkATrace.h"
+#include "src/core/SkTraceEvent.h"
+#include "tools/flags/CommandLineFlags.h"
+#include "tools/trace/ChromeTracingTracer.h"
+#include "tools/trace/SkDebugfTracer.h"
 
 static DEFINE_string(trace,
               "",
diff --git a/tools/trace/EventTracingPriv.h b/tools/trace/EventTracingPriv.h
index 6485dc9..44fc9f4 100644
--- a/tools/trace/EventTracingPriv.h
+++ b/tools/trace/EventTracingPriv.h
@@ -8,7 +8,7 @@
 #ifndef EventTracingPriv_DEFINED
 #define EventTracingPriv_DEFINED
 
-#include "SkMutex.h"
+#include "include/private/SkMutex.h"
 
 /**
  * Construct and install an SkEventTracer, based on the mode,
diff --git a/tools/trace/SkDebugfTracer.cpp b/tools/trace/SkDebugfTracer.cpp
index d694b8c..bd2feea 100644
--- a/tools/trace/SkDebugfTracer.cpp
+++ b/tools/trace/SkDebugfTracer.cpp
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#include "SkDebugfTracer.h"
-#include "SkTraceEvent.h"
+#include "src/core/SkTraceEvent.h"
+#include "tools/trace/SkDebugfTracer.h"
 
 SkEventTracer::Handle SkDebugfTracer::addTraceEvent(char phase,
                                                     const uint8_t* categoryEnabledFlag,
diff --git a/tools/trace/SkDebugfTracer.h b/tools/trace/SkDebugfTracer.h
index 9d8753f..bd19f51 100644
--- a/tools/trace/SkDebugfTracer.h
+++ b/tools/trace/SkDebugfTracer.h
@@ -8,9 +8,9 @@
 #ifndef SkDebugfTracer_DEFINED
 #define SkDebugfTracer_DEFINED
 
-#include "EventTracingPriv.h"
-#include "SkEventTracer.h"
-#include "SkString.h"
+#include "include/core/SkString.h"
+#include "include/utils/SkEventTracer.h"
+#include "tools/trace/EventTracingPriv.h"
 
 /**
  * A SkEventTracer implementation that logs events using SkDebugf.
diff --git a/tools/using_skia_and_harfbuzz.cpp b/tools/using_skia_and_harfbuzz.cpp
index af315f0..03fcf30 100644
--- a/tools/using_skia_and_harfbuzz.cpp
+++ b/tools/using_skia_and_harfbuzz.cpp
@@ -16,12 +16,12 @@
 #include <string>
 #include <vector>
 
-#include "SkCanvas.h"
-#include "SkPDFDocument.h"
-#include "SkShaper.h"
-#include "SkStream.h"
-#include "SkTextBlob.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkTextBlob.h"
+#include "include/core/SkTypeface.h"
+#include "include/docs/SkPDFDocument.h"
+#include "modules/skshaper/include/SkShaper.h"
 
 // Options /////////////////////////////////////////////////////////////////////
 
diff --git a/tools/viewer/BisectSlide.cpp b/tools/viewer/BisectSlide.cpp
index 0239ef2..fa2bed9 100644
--- a/tools/viewer/BisectSlide.cpp
+++ b/tools/viewer/BisectSlide.cpp
@@ -5,17 +5,17 @@
  * found in the LICENSE file.
  */
 
-#include "BisectSlide.h"
+#include "tools/viewer/BisectSlide.h"
 
-#include "SkOSPath.h"
-#include "SkPicture.h"
-#include "SkStream.h"
+#include "include/core/SkPicture.h"
+#include "include/core/SkStream.h"
+#include "src/utils/SkOSPath.h"
 
 #include <utility>
 
 #ifdef SK_XML
-#include "SkDOM.h"
-#include "../experimental/svg/model/SkSVGDOM.h"
+#include "experimental/svg/model/SkSVGDOM.h"
+#include "src/xml/SkDOM.h"
 #endif
 
 sk_sp<BisectSlide> BisectSlide::Create(const char filepath[]) {
diff --git a/tools/viewer/BisectSlide.h b/tools/viewer/BisectSlide.h
index 9e10537..142209c 100644
--- a/tools/viewer/BisectSlide.h
+++ b/tools/viewer/BisectSlide.h
@@ -8,9 +8,9 @@
 #ifndef BisectSlide_DEFINED
 #define BisectSlide_DEFINED
 
-#include "SkCanvas.h"
-#include "SkPath.h"
-#include "Slide.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkPath.h"
+#include "tools/viewer/Slide.h"
 
 #include <stack>
 
diff --git a/tools/viewer/GMSlide.cpp b/tools/viewer/GMSlide.cpp
index 07c0392..582cd81 100644
--- a/tools/viewer/GMSlide.cpp
+++ b/tools/viewer/GMSlide.cpp
@@ -11,8 +11,8 @@
 * found in the LICENSE file.
 */
 
-#include "GMSlide.h"
-#include "SkCanvas.h"
+#include "include/core/SkCanvas.h"
+#include "tools/viewer/GMSlide.h"
 
 GMSlide::GMSlide(skiagm::GM* gm) : fGM(gm) {
     fName.printf("GM_%s", gm->getName());
diff --git a/tools/viewer/GMSlide.h b/tools/viewer/GMSlide.h
index fc34fe4..e046a2d 100644
--- a/tools/viewer/GMSlide.h
+++ b/tools/viewer/GMSlide.h
@@ -8,8 +8,8 @@
 #ifndef GMSlide_DEFINED
 #define GMSlide_DEFINED
 
-#include "Slide.h"
-#include "gm.h"
+#include "gm/gm.h"
+#include "tools/viewer/Slide.h"
 
 class GMSlide : public Slide {
 public:
diff --git a/tools/viewer/ImGuiLayer.cpp b/tools/viewer/ImGuiLayer.cpp
index 03ba9ed..6203375 100644
--- a/tools/viewer/ImGuiLayer.cpp
+++ b/tools/viewer/ImGuiLayer.cpp
@@ -5,15 +5,15 @@
 * found in the LICENSE file.
 */
 
-#include "ImGuiLayer.h"
+#include "tools/viewer/ImGuiLayer.h"
 
-#include "SkCanvas.h"
-#include "SkImage.h"
-#include "SkPixmap.h"
-#include "SkSurface.h"
-#include "SkSwizzle.h"
-#include "SkTime.h"
-#include "SkVertices.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPixmap.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkSwizzle.h"
+#include "include/core/SkTime.h"
+#include "include/core/SkVertices.h"
 
 #include "imgui.h"
 
diff --git a/tools/viewer/ImGuiLayer.h b/tools/viewer/ImGuiLayer.h
index f7ee4da..0f83514 100644
--- a/tools/viewer/ImGuiLayer.h
+++ b/tools/viewer/ImGuiLayer.h
@@ -8,9 +8,9 @@
 #ifndef ImGuiLayer_DEFINED
 #define ImGuiLayer_DEFINED
 
-#include "SkPaint.h"
-#include "SkTArray.h"
-#include "sk_app/Window.h"
+#include "include/core/SkPaint.h"
+#include "include/private/SkTArray.h"
+#include "tools/sk_app/Window.h"
 
 #include "imgui.h"
 
diff --git a/tools/viewer/ImageSlide.cpp b/tools/viewer/ImageSlide.cpp
index 8ff7d18..52e5d84 100644
--- a/tools/viewer/ImageSlide.cpp
+++ b/tools/viewer/ImageSlide.cpp
@@ -5,11 +5,11 @@
 * found in the LICENSE file.
 */
 
-#include "ImageSlide.h"
+#include "tools/viewer/ImageSlide.h"
 
-#include "SkCanvas.h"
-#include "SkData.h"
-#include "SkImage.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkImage.h"
 
 ImageSlide::ImageSlide(const SkString& name, const SkString& path) : fPath(path) {
     fName = name;
diff --git a/tools/viewer/ImageSlide.h b/tools/viewer/ImageSlide.h
index d9e3f2d..2246408 100644
--- a/tools/viewer/ImageSlide.h
+++ b/tools/viewer/ImageSlide.h
@@ -8,9 +8,9 @@
 #ifndef ImageSlide_DEFINED
 #define ImageSlide_DEFINED
 
-#include "Slide.h"
-#include "SkPicture.h"
-#include "SkImage.h"
+#include "include/core/SkImage.h"
+#include "include/core/SkPicture.h"
+#include "tools/viewer/Slide.h"
 
 class ImageSlide : public Slide {
 public:
diff --git a/tools/viewer/NIMASlide.cpp b/tools/viewer/NIMASlide.cpp
index c04c82b..c550614 100644
--- a/tools/viewer/NIMASlide.cpp
+++ b/tools/viewer/NIMASlide.cpp
@@ -5,13 +5,13 @@
 * found in the LICENSE file.
 */
 
-#include "NIMASlide.h"
+#include "tools/viewer/NIMASlide.h"
 
-#include "AnimTimer.h"
-#include "Resources.h"
-#include "SkOSPath.h"
+#include "src/utils/SkOSPath.h"
+#include "tools/Resources.h"
+#include "tools/timer/AnimTimer.h"
 #include "imgui.h"
-#include "nima/NimaActor.h"
+#include "experimental/nima/NimaActor.h"
 
 #include <algorithm>
 #include <cmath>
diff --git a/tools/viewer/NIMASlide.h b/tools/viewer/NIMASlide.h
index 05892b9..29d0aa3 100644
--- a/tools/viewer/NIMASlide.h
+++ b/tools/viewer/NIMASlide.h
@@ -8,11 +8,11 @@
 #ifndef NIMASlide_DEFINED
 #define NIMASlide_DEFINED
 
-#include "Slide.h"
+#include "tools/viewer/Slide.h"
 
-#include "SkCanvas.h"
-#include "SkVertices.h"
-#include "nima/NimaActor.h"
+#include "experimental/nima/NimaActor.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkVertices.h"
 
 class NIMASlide : public Slide {
 public:
diff --git a/tools/viewer/ParticlesSlide.cpp b/tools/viewer/ParticlesSlide.cpp
index cd41656..bf95783 100644
--- a/tools/viewer/ParticlesSlide.cpp
+++ b/tools/viewer/ParticlesSlide.cpp
@@ -5,18 +5,18 @@
 * found in the LICENSE file.
 */
 
-#include "ParticlesSlide.h"
+#include "tools/viewer/ParticlesSlide.h"
 
-#include "AnimTimer.h"
-#include "ImGuiLayer.h"
-#include "Resources.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkParticleAffector.h"
-#include "SkParticleDrawable.h"
-#include "SkParticleEffect.h"
-#include "SkParticleSerialization.h"
-#include "SkReflected.h"
+#include "modules/particles/include/SkParticleAffector.h"
+#include "modules/particles/include/SkParticleDrawable.h"
+#include "modules/particles/include/SkParticleEffect.h"
+#include "modules/particles/include/SkParticleSerialization.h"
+#include "modules/particles/include/SkReflected.h"
+#include "src/core/SkOSFile.h"
+#include "src/utils/SkOSPath.h"
+#include "tools/Resources.h"
+#include "tools/timer/AnimTimer.h"
+#include "tools/viewer/ImGuiLayer.h"
 
 #include "imgui.h"
 
diff --git a/tools/viewer/ParticlesSlide.h b/tools/viewer/ParticlesSlide.h
index 8211513..fcc0f55 100644
--- a/tools/viewer/ParticlesSlide.h
+++ b/tools/viewer/ParticlesSlide.h
@@ -8,11 +8,11 @@
 #ifndef ParticlesSlide_DEFINED
 #define ParticlesSlide_DEFINED
 
-#include "Slide.h"
+#include "tools/viewer/Slide.h"
 
-#include "SkPath.h"
-#include "SkRandom.h"
-#include "SkTArray.h"
+#include "include/core/SkPath.h"
+#include "include/private/SkTArray.h"
+#include "include/utils/SkRandom.h"
 
 class AnimTimer;
 class SkParticleEffect;
diff --git a/tools/viewer/SKPSlide.cpp b/tools/viewer/SKPSlide.cpp
index caf18cd..5b4d312 100644
--- a/tools/viewer/SKPSlide.cpp
+++ b/tools/viewer/SKPSlide.cpp
@@ -5,11 +5,11 @@
 * found in the LICENSE file.
 */
 
-#include "SKPSlide.h"
+#include "tools/viewer/SKPSlide.h"
 
-#include "SkCanvas.h"
-#include "SkOSFile.h"
-#include "SkStream.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkStream.h"
+#include "src/core/SkOSFile.h"
 
 SKPSlide::SKPSlide(const SkString& name, const SkString& path) : fPath(path) {
     fName = name;
diff --git a/tools/viewer/SKPSlide.h b/tools/viewer/SKPSlide.h
index ff92ed1..e202250 100644
--- a/tools/viewer/SKPSlide.h
+++ b/tools/viewer/SKPSlide.h
@@ -8,8 +8,8 @@
 #ifndef SKPSlide_DEFINED
 #define SKPSlide_DEFINED
 
-#include "Slide.h"
-#include "SkPicture.h"
+#include "include/core/SkPicture.h"
+#include "tools/viewer/Slide.h"
 
 class SKPSlide : public Slide {
 public:
diff --git a/tools/viewer/SampleSlide.cpp b/tools/viewer/SampleSlide.cpp
index f48f1dc..b40635d 100644
--- a/tools/viewer/SampleSlide.cpp
+++ b/tools/viewer/SampleSlide.cpp
@@ -5,11 +5,11 @@
 * found in the LICENSE file.
 */
 
-#include "SampleSlide.h"
+#include "tools/viewer/SampleSlide.h"
 
-#include "SkCanvas.h"
-#include "SkOSFile.h"
-#include "SkStream.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkStream.h"
+#include "src/core/SkOSFile.h"
 
 using namespace sk_app;
 
diff --git a/tools/viewer/SampleSlide.h b/tools/viewer/SampleSlide.h
index 69d48ac..b9657d6 100644
--- a/tools/viewer/SampleSlide.h
+++ b/tools/viewer/SampleSlide.h
@@ -8,8 +8,8 @@
 #ifndef SampleSlide_DEFINED
 #define SampleSlide_DEFINED
 
-#include "Slide.h"
-#include "Sample.h"
+#include "samplecode/Sample.h"
+#include "tools/viewer/Slide.h"
 
 class SampleSlide : public Slide {
 public:
diff --git a/tools/viewer/SkottieSlide.cpp b/tools/viewer/SkottieSlide.cpp
index 6198e47..1efe712 100644
--- a/tools/viewer/SkottieSlide.cpp
+++ b/tools/viewer/SkottieSlide.cpp
@@ -5,16 +5,16 @@
  * found in the LICENSE file.
  */
 
-#include "SkottieSlide.h"
+#include "tools/viewer/SkottieSlide.h"
 
 #if defined(SK_ENABLE_SKOTTIE)
 
-#include "AnimTimer.h"
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkOSPath.h"
-#include "Skottie.h"
-#include "SkottieUtils.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "modules/skottie/include/Skottie.h"
+#include "modules/skottie/utils/SkottieUtils.h"
+#include "src/utils/SkOSPath.h"
+#include "tools/timer/AnimTimer.h"
 
 #include <cmath>
 
diff --git a/tools/viewer/SkottieSlide.h b/tools/viewer/SkottieSlide.h
index 1a6a075..c267c1e 100644
--- a/tools/viewer/SkottieSlide.h
+++ b/tools/viewer/SkottieSlide.h
@@ -8,10 +8,10 @@
 #ifndef SkottieSlide_DEFINED
 #define SkottieSlide_DEFINED
 
-#include "Slide.h"
+#include "tools/viewer/Slide.h"
 
 #if defined(SK_ENABLE_SKOTTIE)
-#include "Skottie.h"
+#include "modules/skottie/include/Skottie.h"
 
 namespace sksg    { class Scene;     }
 
diff --git a/tools/viewer/Slide.h b/tools/viewer/Slide.h
index 10080ce..c3124ad 100644
--- a/tools/viewer/Slide.h
+++ b/tools/viewer/Slide.h
@@ -8,10 +8,10 @@
 #ifndef Slide_DEFINED
 #define Slide_DEFINED
 
-#include "SkRefCnt.h"
-#include "SkSize.h"
-#include "SkString.h"
-#include "sk_app/Window.h"
+#include "include/core/SkRefCnt.h"
+#include "include/core/SkSize.h"
+#include "include/core/SkString.h"
+#include "tools/sk_app/Window.h"
 
 class SkCanvas;
 class AnimTimer;
diff --git a/tools/viewer/SlideDir.cpp b/tools/viewer/SlideDir.cpp
index ad3be77..67c3f88 100644
--- a/tools/viewer/SlideDir.cpp
+++ b/tools/viewer/SlideDir.cpp
@@ -5,22 +5,22 @@
  * found in the LICENSE file.
  */
 
-#include "SlideDir.h"
+#include "tools/viewer/SlideDir.h"
 
-#include "AnimTimer.h"
-#include "SkCanvas.h"
-#include "SkCubicMap.h"
-#include "SkMakeUnique.h"
-#include "SkSGDraw.h"
-#include "SkSGGroup.h"
-#include "SkSGPaint.h"
-#include "SkSGPlane.h"
-#include "SkSGRect.h"
-#include "SkSGRenderNode.h"
-#include "SkSGScene.h"
-#include "SkSGText.h"
-#include "SkSGTransform.h"
-#include "SkTypeface.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkCubicMap.h"
+#include "include/core/SkTypeface.h"
+#include "modules/sksg/include/SkSGDraw.h"
+#include "modules/sksg/include/SkSGGroup.h"
+#include "modules/sksg/include/SkSGPaint.h"
+#include "modules/sksg/include/SkSGPlane.h"
+#include "modules/sksg/include/SkSGRect.h"
+#include "modules/sksg/include/SkSGRenderNode.h"
+#include "modules/sksg/include/SkSGScene.h"
+#include "modules/sksg/include/SkSGText.h"
+#include "modules/sksg/include/SkSGTransform.h"
+#include "src/core/SkMakeUnique.h"
+#include "tools/timer/AnimTimer.h"
 
 #include <cmath>
 #include <utility>
diff --git a/tools/viewer/SlideDir.h b/tools/viewer/SlideDir.h
index eeb4904..664d5ee 100644
--- a/tools/viewer/SlideDir.h
+++ b/tools/viewer/SlideDir.h
@@ -8,9 +8,9 @@
 #ifndef SlideDir_DEFINED
 #define SlideDir_DEFINED
 
-#include "Slide.h"
+#include "tools/viewer/Slide.h"
 
-#include "SkTArray.h"
+#include "include/private/SkTArray.h"
 
 class SkString;
 
diff --git a/tools/viewer/StatsLayer.cpp b/tools/viewer/StatsLayer.cpp
index fe82c97..a047b31 100644
--- a/tools/viewer/StatsLayer.cpp
+++ b/tools/viewer/StatsLayer.cpp
@@ -5,13 +5,13 @@
 * found in the LICENSE file.
 */
 
-#include "StatsLayer.h"
+#include "tools/viewer/StatsLayer.h"
 
-#include "SkCanvas.h"
-#include "SkFont.h"
-#include "SkString.h"
-#include "SkSurface.h"
-#include "SkTime.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkFont.h"
+#include "include/core/SkString.h"
+#include "include/core/SkSurface.h"
+#include "include/core/SkTime.h"
 
 StatsLayer::StatsLayer()
     : fCurrentMeasurement(-1)
diff --git a/tools/viewer/StatsLayer.h b/tools/viewer/StatsLayer.h
index 1d12f68..79f4a78 100644
--- a/tools/viewer/StatsLayer.h
+++ b/tools/viewer/StatsLayer.h
@@ -8,9 +8,9 @@
 #ifndef StatsLayer_DEFINED
 #define StatsLayer_DEFINED
 
-#include "SkColor.h"
-#include "SkString.h"
-#include "sk_app/Window.h"
+#include "include/core/SkColor.h"
+#include "include/core/SkString.h"
+#include "tools/sk_app/Window.h"
 
 class StatsLayer : public sk_app::Window::Layer {
 public:
diff --git a/tools/viewer/SvgSlide.cpp b/tools/viewer/SvgSlide.cpp
index 9ea9e40..512546b 100644
--- a/tools/viewer/SvgSlide.cpp
+++ b/tools/viewer/SvgSlide.cpp
@@ -5,13 +5,13 @@
  * found in the LICENSE file.
  */
 
-#include "SvgSlide.h"
+#include "tools/viewer/SvgSlide.h"
 
 #if defined(SK_XML)
 
-#include "SkCanvas.h"
-#include "SkStream.h"
-#include "SkSVGDOM.h"
+#include "experimental/svg/model/SkSVGDOM.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkStream.h"
 
 SvgSlide::SvgSlide(const SkString& name, const SkString& path)
     : fPath(path) {
diff --git a/tools/viewer/SvgSlide.h b/tools/viewer/SvgSlide.h
index 9fc3a5b..1744d74 100644
--- a/tools/viewer/SvgSlide.h
+++ b/tools/viewer/SvgSlide.h
@@ -8,7 +8,7 @@
 #ifndef SvgSlide_DEFINED
 #define SvgSlide_DEFINED
 
-#include "Slide.h"
+#include "tools/viewer/Slide.h"
 
 class SkSVGDOM;
 
diff --git a/tools/viewer/TouchGesture.cpp b/tools/viewer/TouchGesture.cpp
index 2287e03..249aa44 100644
--- a/tools/viewer/TouchGesture.cpp
+++ b/tools/viewer/TouchGesture.cpp
@@ -7,9 +7,9 @@
 
 #include <algorithm>
 
-#include "TouchGesture.h"
-#include "SkMatrix.h"
-#include "SkTime.h"
+#include "include/core/SkMatrix.h"
+#include "include/core/SkTime.h"
+#include "tools/viewer/TouchGesture.h"
 
 #define DISCRETIZE_TRANSLATE_TO_AVOID_FLICKER   true
 
diff --git a/tools/viewer/TouchGesture.h b/tools/viewer/TouchGesture.h
index 34f889f..f6cdb3a 100644
--- a/tools/viewer/TouchGesture.h
+++ b/tools/viewer/TouchGesture.h
@@ -8,8 +8,8 @@
 #ifndef TouchGesture_DEFINED
 #define TouchGesture_DEFINED
 
-#include "../private/SkTDArray.h"
-#include "SkMatrix.h"
+#include "include/core/SkMatrix.h"
+#include "include/private/SkTDArray.h"
 
 class TouchGesture {
 public:
diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp
index c2a3595..d3545a6 100644
--- a/tools/viewer/Viewer.cpp
+++ b/tools/viewer/Viewer.cpp
@@ -5,42 +5,42 @@
 * found in the LICENSE file.
 */
 
-#include "Viewer.h"
-#include "BisectSlide.h"
-#include "CommandLineFlags.h"
-#include "CommonFlags.h"
-#include "EventTracingPriv.h"
-#include "GMSlide.h"
-#include "GrContext.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrPersistentCacheUtils.h"
-#include "ImageSlide.h"
-#include "ParticlesSlide.h"
-#include "Resources.h"
-#include "SKPSlide.h"
-#include "SampleSlide.h"
-#include "SkCanvas.h"
-#include "SkColorSpacePriv.h"
-#include "SkData.h"
-#include "SkGraphics.h"
-#include "SkImagePriv.h"
-#include "SkJSONWriter.h"
-#include "SkMakeUnique.h"
-#include "SkMD5.h"
-#include "SkOSFile.h"
-#include "SkOSPath.h"
-#include "SkPaintFilterCanvas.h"
-#include "SkPictureRecorder.h"
-#include "SkScan.h"
-#include "SkStream.h"
-#include "SkSurface.h"
-#include "SkTaskGroup.h"
-#include "SkTo.h"
-#include "SlideDir.h"
-#include "SvgSlide.h"
-#include "ToolUtils.h"
-#include "ccpr/GrCoverageCountingPathRenderer.h"
+#include "include/core/SkCanvas.h"
+#include "include/core/SkData.h"
+#include "include/core/SkGraphics.h"
+#include "include/core/SkPictureRecorder.h"
+#include "include/core/SkStream.h"
+#include "include/core/SkSurface.h"
+#include "include/gpu/GrContext.h"
+#include "include/private/SkTo.h"
+#include "include/utils/SkPaintFilterCanvas.h"
+#include "src/core/SkColorSpacePriv.h"
+#include "src/core/SkImagePriv.h"
+#include "src/core/SkMD5.h"
+#include "src/core/SkMakeUnique.h"
+#include "src/core/SkOSFile.h"
+#include "src/core/SkScan.h"
+#include "src/core/SkTaskGroup.h"
+#include "src/gpu/GrContextPriv.h"
+#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrPersistentCacheUtils.h"
+#include "src/gpu/ccpr/GrCoverageCountingPathRenderer.h"
+#include "src/utils/SkJSONWriter.h"
+#include "src/utils/SkOSPath.h"
+#include "tools/Resources.h"
+#include "tools/ToolUtils.h"
+#include "tools/flags/CommandLineFlags.h"
+#include "tools/flags/CommonFlags.h"
+#include "tools/trace/EventTracingPriv.h"
+#include "tools/viewer/BisectSlide.h"
+#include "tools/viewer/GMSlide.h"
+#include "tools/viewer/ImageSlide.h"
+#include "tools/viewer/ParticlesSlide.h"
+#include "tools/viewer/SKPSlide.h"
+#include "tools/viewer/SampleSlide.h"
+#include "tools/viewer/SlideDir.h"
+#include "tools/viewer/SvgSlide.h"
+#include "tools/viewer/Viewer.h"
 
 #include <stdlib.h>
 #include <map>
@@ -49,11 +49,11 @@
 #include "misc/cpp/imgui_stdlib.h"  // For ImGui support of std::string
 
 #if defined(SK_ENABLE_SKOTTIE)
-    #include "SkottieSlide.h"
+    #include "tools/viewer/SkottieSlide.h"
 #endif
 
 #if !(defined(SK_BUILD_FOR_WIN) && defined(__clang__))
-    #include "NIMASlide.h"
+    #include "tools/viewer/NIMASlide.h"
 #endif
 
 using namespace sk_app;
diff --git a/tools/viewer/Viewer.h b/tools/viewer/Viewer.h
index 061d5ac..1c02e3a 100644
--- a/tools/viewer/Viewer.h
+++ b/tools/viewer/Viewer.h
@@ -8,21 +8,21 @@
 #ifndef Viewer_DEFINED
 #define Viewer_DEFINED
 
-#include "AnimTimer.h"
-#include "ImGuiLayer.h"
-#include "MemoryCache.h"
-#include "SkExecutor.h"
-#include "SkFont.h"
-#include "SkScan.h"
-#include "ir/SkSLProgram.h"
-#include "SkSLString.h"
-#include "Slide.h"
-#include "StatsLayer.h"
-#include "TouchGesture.h"
-#include "gm.h"
-#include "sk_app/Application.h"
-#include "sk_app/CommandSet.h"
-#include "sk_app/Window.h"
+#include "gm/gm.h"
+#include "include/core/SkExecutor.h"
+#include "include/core/SkFont.h"
+#include "src/core/SkScan.h"
+#include "src/sksl/SkSLString.h"
+#include "src/sksl/ir/SkSLProgram.h"
+#include "tools/gpu/MemoryCache.h"
+#include "tools/sk_app/Application.h"
+#include "tools/sk_app/CommandSet.h"
+#include "tools/sk_app/Window.h"
+#include "tools/timer/AnimTimer.h"
+#include "tools/viewer/ImGuiLayer.h"
+#include "tools/viewer/Slide.h"
+#include "tools/viewer/StatsLayer.h"
+#include "tools/viewer/TouchGesture.h"
 
 class SkCanvas;
 class SkData;
diff --git a/tools/whitelist_typefaces.cpp b/tools/whitelist_typefaces.cpp
index 5cdfb6a..546dd96 100644
--- a/tools/whitelist_typefaces.cpp
+++ b/tools/whitelist_typefaces.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "SkGraphics.h"
+#include "include/core/SkGraphics.h"
 
 extern bool CheckChecksums();
 extern bool GenerateChecksums();
diff --git a/tools/win_dbghelp.cpp b/tools/win_dbghelp.cpp
index 1048094..b406b05 100644
--- a/tools/win_dbghelp.cpp
+++ b/tools/win_dbghelp.cpp
@@ -6,7 +6,7 @@
  */
 
 #include "windows.h"
-#include "win_dbghelp.h"
+#include "tools/win_dbghelp.h"
 
 #include <process.h>
 #include <string.h>