Bug 1082598 - Part 7: Update moz.build for Skia update. r=jrmuizel
authorLee Salzman <lsalzman@mozilla.com>
Fri, 18 Dec 2015 13:53:25 -0500
changeset 277047 9b8ca41426b7d55cf7d50c2dee5bbd01090e2119
parent 277046 16923db5df3750dfd2f131ea66fdfdbd5f30bcf0
child 277048 be17fb6c3c8858d8131a96f634da6fa3af6615f9
push id16724
push usercbook@mozilla.com
push dateMon, 21 Dec 2015 11:00:52 +0000
treeherderfx-team@3f3f0361567c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjrmuizel
bugs1082598
milestone46.0a1
Bug 1082598 - Part 7: Update moz.build for Skia update. r=jrmuizel
gfx/skia/generate_mozbuild.py
gfx/skia/moz.build
--- a/gfx/skia/generate_mozbuild.py
+++ b/gfx/skia/generate_mozbuild.py
@@ -20,52 +20,31 @@ header = """
 # debugging generate_mozbuild.py.
 #
 # DO NOT MODIFY THIS FILE IT IS AUTOGENERATED.
 #
 """
 
 footer = """
 
-# can we find a better way of dealing with asm sources?
-
-# left out of UNIFIED_SOURCES for now; that's not C++ anyway, nothing else to unify it with
-#XXX: doesn't build with Apple's assembler
-if not CONFIG['INTEL_ARCHITECTURE'] and CONFIG['CPU_ARCH'] == 'arm' and CONFIG['GNU_CC'] and CONFIG['OS_TARGET'] != 'Darwin':
-    SOURCES += [
-        'skia/src/opts/memset.arm.S',
-    ]
-    if CONFIG['BUILD_ARM_NEON']:
-        SOURCES += [
-            'skia/src/opts/memset16_neon.S',
-            'skia/src/opts/memset32_neon.S',
-        ]
-
-if CONFIG['INTEL_ARCHITECTURE'] and CONFIG['GNU_CC'] and CONFIG['OS_ARCH'] != 'WINNT':
-    if CONFIG['CPU_ARCH'] == 'x86_64':
-        SOURCES += [
-            'skia/src/opts/SkBlitRow_opts_SSE4_x64_asm.S',
-        ]
-    else:
-        SOURCES += [
-            'skia/src/opts/SkBlitRow_opts_SSE4_asm.S',
-        ]
-
+# We allow warnings for third-party code that can be updated from upstream.
 ALLOW_COMPILER_WARNINGS = True
 
 FINAL_LIBRARY = 'gkmedias'
 LOCAL_INCLUDES += [
+    'skia/include/c',
     'skia/include/config',
     'skia/include/core',
     'skia/include/effects',
     'skia/include/gpu',
     'skia/include/images',
     'skia/include/pathops',
     'skia/include/pipe',
     'skia/include/ports',
+    'skia/include/private',
     'skia/include/utils',
     'skia/include/utils/mac',
     'skia/include/utils/win',
     'skia/include/views',
     'skia/src/core',
     'skia/src/gpu',
     'skia/src/gpu/effects',
     'skia/src/gpu/gl',
@@ -73,22 +52,16 @@ LOCAL_INCLUDES += [
     'skia/src/lazy',
     'skia/src/opts',
     'skia/src/sfnt',
     'skia/src/utils',
     'skia/src/utils/mac',
     'skia/src/utils/win',
 ]
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] in {'android', 'gtk2', 'gtk3', 'qt', 'gonk', 'cocoa', 'uikit'}:
-    DEFINES['SK_USE_POSIX_THREADS'] = 1
-
-if CONFIG['INTEL_ARCHITECTURE'] and CONFIG['HAVE_TOOLCHAIN_SUPPORT_MSSSE3']:
-    DEFINES['SK_BUILD_SSSE3'] = 1
-
 if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android', 'gonk'):
     DEFINES['SK_FONTHOST_CAIRO_STANDALONE'] = 0
 
 if CONFIG['MOZ_WIDGET_TOOLKIT'] in {
     'android',
     'cocoa',
     'uikit',
     'gonk',
@@ -96,62 +69,60 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] in {
   } or CONFIG['MOZ_WIDGET_GTK']:
     DEFINES['SK_FONTHOST_DOES_NOT_USE_FONTMGR'] = 1
 
 # We should autogenerate these SSE related flags.
 
 if CONFIG['_MSC_VER']:
     # MSVC doesn't need special compiler flags, but Skia needs to be told that these files should
     # be built with the required SSE level or it will simply compile in stubs and cause runtime crashes
-    SOURCES['skia/src/opts/SkBitmapFilter_opts_SSE2.cpp'].flags += ['-DSK_CPU_SSE_LEVEL=20']
-    SOURCES['skia/src/opts/SkBitmapProcState_opts_SSE2.cpp'].flags += ['-DSK_CPU_SSE_LEVEL=20']
-    SOURCES['skia/src/opts/SkBitmapProcState_opts_SSSE3.cpp'].flags += ['-DSK_CPU_SSE_LEVEL=31']
-    SOURCES['skia/src/opts/SkBlitRect_opts_SSE2.cpp'].flags += ['-DSK_CPU_SSE_LEVEL=20']
-    SOURCES['skia/src/opts/SkBlitRow_opts_SSE2.cpp'].flags += ['-DSK_CPU_SSE_LEVEL=20']
-    SOURCES['skia/src/opts/SkBlurImage_opts_SSE2.cpp'].flags += ['-DSK_CPU_SSE_LEVEL=20']
-    SOURCES['skia/src/opts/SkBlurImage_opts_SSE4.cpp'].flags += ['-DSK_CPU_SSE_LEVEL=41']
-    SOURCES['skia/src/opts/SkMorphology_opts_SSE2.cpp'].flags += ['-DSK_CPU_SSE_LEVEL=20']
-    SOURCES['skia/src/opts/SkUtils_opts_SSE2.cpp'].flags += ['-DSK_CPU_SSE_LEVEL=20']
-    SOURCES['skia/src/opts/SkXfermode_opts_SSE2.cpp'].flags += ['-DSK_CPU_SSE_LEVEL=20']
-
+    SOURCES['skia/src/opts/SkBitmapFilter_opts_SSE2.cpp'].flags += ['/arch:SSE2 -DSK_CPU_SSE_LEVEL=20']
+    SOURCES['skia/src/opts/SkBitmapProcState_opts_SSE2.cpp'].flags += ['/arch:SSE2 -DSK_CPU_SSE_LEVEL=20']
+    SOURCES['skia/src/opts/SkBitmapProcState_opts_SSSE3.cpp'].flags += ['/arch:SSE2 -DSK_CPU_SSE_LEVEL=31']
+    SOURCES['skia/src/opts/SkBlitRow_opts_SSE2.cpp'].flags += ['/arch:SSE2 -DSK_CPU_SSE_LEVEL=20']
+    SOURCES['skia/src/opts/SkBlitRow_opts_SSE4.cpp'].flags += ['/arch:SSE2 -DSK_CPU_SSE_LEVEL=41']
+    SOURCES['skia/src/opts/SkOpts_ssse3.cpp'].flags += ['/arch:SSE2 -DSK_CPU_SSE_LEVEL=31']
+    SOURCES['skia/src/opts/SkOpts_sse41.cpp'].flags += ['/arch:SSE2 -DSK_CPU_SSE_LEVEL=41']
+    SOURCES['skia/src/opts/SkOpts_avx.cpp'].flags += ['/arch:AVX -DSK_CPU_SSE_LEVEL=51']
 if CONFIG['INTEL_ARCHITECTURE'] and CONFIG['GNU_CC']:
     SOURCES['skia/src/opts/SkBitmapFilter_opts_SSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
     SOURCES['skia/src/opts/SkBitmapProcState_opts_SSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
     SOURCES['skia/src/opts/SkBitmapProcState_opts_SSSE3.cpp'].flags += ['-mssse3']
-    SOURCES['skia/src/opts/SkBlitRect_opts_SSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
     SOURCES['skia/src/opts/SkBlitRow_opts_SSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
-    SOURCES['skia/src/opts/SkBlurImage_opts_SSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
-    SOURCES['skia/src/opts/SkBlurImage_opts_SSE4.cpp'].flags += ['-msse4.1']
-    SOURCES['skia/src/opts/SkMorphology_opts_SSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
-    SOURCES['skia/src/opts/SkUtils_opts_SSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
-    SOURCES['skia/src/opts/SkXfermode_opts_SSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
+    SOURCES['skia/src/opts/SkBlitRow_opts_SSE4.cpp'].flags += ['-msse4.1']
+    SOURCES['skia/src/opts/SkOpts_ssse3.cpp'].flags += ['-mssse3']
+    SOURCES['skia/src/opts/SkOpts_sse41.cpp'].flags += ['-msse4.1']
+    SOURCES['skia/src/opts/SkOpts_avx.cpp'].flags += ['-mavx']
 elif CONFIG['CPU_ARCH'] == 'arm' and CONFIG['GNU_CC'] and CONFIG['BUILD_ARM_NEON']:
-    DEFINES['__ARM_HAVE_OPTIONAL_NEON_SUPPORT'] = 1
-    DEFINES['USE_ANDROID_NDK_CPU_FEATURES'] = 0
+    DEFINES['SK_ARM_HAS_OPTIONAL_NEON'] = 1
 elif CONFIG['CLANG_CL']:
     SOURCES['skia/src/opts/SkBitmapProcState_opts_SSSE3.cpp'].flags += ['-mssse3']
-    SOURCES['skia/src/opts/SkBlurImage_opts_SSE4.cpp'].flags += ['-msse4.1']
+    SOURCES['skia/src/opts/SkBlitRow_opts_SSE4.cpp'].flags += ['-msse4.1']
+    SOURCES['skia/src/opts/SkOpts_ssse3.cpp'].flags += ['-mssse3']
+    SOURCES['skia/src/opts/SkOpts_sse41.cpp'].flags += ['-msse4.1']
+    SOURCES['skia/src/opts/SkOpts_avx.cpp'].flags += ['-mavx']
 
 DEFINES['SKIA_IMPLEMENTATION'] = 1
-DEFINES['GR_IMPLEMENTATION'] = 1
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += [
         '-Wno-deprecated-declarations',
         '-Wno-overloaded-virtual',
         '-Wno-sign-compare',
         '-Wno-unused-function',
     ]
     if CONFIG['CLANG_CXX']:
         CXXFLAGS += [
             '-Wno-implicit-fallthrough',
             '-Wno-inconsistent-missing-override',
             '-Wno-macro-redefined',
             '-Wno-unused-private-field',
         ]
+        # work around inline function linking bug with template arguments
+        SOURCES['skia/src/gpu/GrResourceCache.cpp'].flags += ['-fkeep-inline-functions']
     else:
         CXXFLAGS += [
             '-Wno-logical-op',
             '-Wno-maybe-uninitialized',
         ]
     if CONFIG['CPU_ARCH'] == 'arm':
         SOURCES['skia/src/opts/SkBlitRow_opts_arm.cpp'].flags += ['-fomit-frame-pointer']
 
@@ -175,112 +146,95 @@ def generate_opt_sources():
         opt_sources['opts'].add(os.path.join(root, name))
 
   return opt_sources
 
 def generate_platform_sources():
   sources = {}
 
   for plat in platforms:
-    if os.system("cd skia && GYP_GENERATORS=dump_mozbuild ./gyp_skia -D OS=%s gyp/skia_lib.gyp" % plat) != 0:
+    if os.system("cd skia && GYP_GENERATORS=dump_mozbuild ./gyp_skia -D OS=%s -D host_os=linux gyp/skia_lib.gyp" % plat) != 0:
       print 'Failed to generate sources for ' + plat
       continue
 
 
     f = open('skia/sources.json');
     sources[plat] = set(v.replace('../', 'skia/') for v in json.load(f));
     f.close()
 
   return dict(sources.items() + generate_opt_sources().items())
 
 
 def generate_separated_sources(platform_sources):
   blacklist = [
     'ChromeUtils',
-    'SkImageDecoder_',
-    '_gif',
-    'SkFontConfigParser_android',
     'SkJpeg',
     'SkXML',
-    'SkCity',
     'GrGLCreateNativeInterface',
+    'SkCreatePlatformGLContext',
     'fontconfig',
-    'SkCondVar',
     'SkThreadUtils_pthread_',
-    'SkImage_Codec',
-    'SkBitmapChecksummer',
-    'SkNativeGLContext',
     'SkFontConfig',
-    'SkFontHost_win_dw',
     'SkFontMgr_android',
+    'SkFontMgr_custom',
+    'SkFontHost_FreeType.cpp',
     'SkForceLinking',
     'SkMovie',
     'SkImageDecoder',
     'SkImageEncoder',
     'SkBitmapHasher',
+    'SkBitmapRegion',
+    'codec',
     'SkWGL',
-    'SkImages',
-    'SkDiscardableMemory_ashmem',
     'SkMemory_malloc',
+    'SkOpts_',
     'opts_check_x86',
     'third_party',
   ]
 
   def isblacklisted(value):
     for item in blacklist:
       if value.find(item) >= 0:
         return True
 
     return False
 
   separated = defaultdict(set, {
     'common': {
-      #'skia/src/effects/gradients/SkGradientTileProc.cpp',
       'skia/src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
       'skia/src/ports/SkDiscardableMemory_none.cpp',
       'skia/src/ports/SkImageDecoder_empty.cpp',
       'skia/src/ports/SkMemory_mozalloc.cpp',
-      # 'skia/src/images/SkImages.cpp',
-      # 'skia/src/images/SkImageRef.cpp',
-      # 'skia/src/images/SkImageRef_GlobalPool.cpp',
-      # 'skia/src/images/SkImageRefPool.cpp',
-      # 'skia/src/images/SkImageDecoder.cpp',
-      # 'skia/src/images/SkImageDecoder_Factory.cpp',
     },
     'android': {
       # 'skia/src/ports/SkDebug_android.cpp',
-      'skia/src/ports/SkFontHost_android_old.cpp',
       'skia/src/ports/SkFontHost_cairo.cpp',
       # 'skia/src/ports/SkFontHost_FreeType.cpp',
       # 'skia/src/ports/SkFontHost_FreeType_common.cpp',
-      # 'skia/src/ports/SkThread_pthread.cpp',
-      # 'skia/src/ports/SkPurgeableMemoryBlock_android.cpp',
       # 'skia/src/ports/SkTime_Unix.cpp',
       # 'skia/src/utils/SkThreadUtils_pthread.cpp',
-      # 'skia/src/images/SkImageRef_ashmem.cpp',
-      # 'skia/src/utils/android/ashmem.cpp',
     },
     'linux': {
       'skia/src/ports/SkFontHost_cairo.cpp',
     },
     'intel': {
       # There is currently no x86-specific opt for SkTextureCompression
       'skia/src/opts/opts_check_x86.cpp',
-      'skia/src/opts/SkTextureCompression_opts_none.cpp',
+      'skia/src/opts/SkOpts_ssse3.cpp',
+      'skia/src/opts/SkOpts_sse41.cpp',
+      'skia/src/opts/SkOpts_avx.cpp',
     },
     'arm': {
-      'skia/src/opts/SkUtils_opts_arm.cpp',
       'skia/src/core/SkUtilsArm.cpp',
     },
     'neon': {
+      'skia/src/opts/SkOpts_neon.cpp',
       'skia/src/opts/SkBitmapProcState_arm_neon.cpp',
     },
-    'none': {
-      'skia/src/opts/SkUtils_opts_none.cpp',
-    }
+    'none': set()
   })
 
   for plat in platform_sources.keys():
     for value in platform_sources[plat]:
       if isblacklisted(value):
         continue
 
       if value in separated['common']:
@@ -336,25 +290,32 @@ def write_sources(f, values, indent):
     'SkAdvancedTypefaceMetrics',
     'SkBitmapProcState_matrixProcs.cpp',
     'SkBlitter_A8.cpp',
     'SkBlitter_ARGB32.cpp',
     'SkBlitter_RGB16.cpp',
     'SkBlitter_Sprite.cpp',
     'SkBlitRow_opts_arm.cpp',
     'SkScan_Antihair.cpp',
-    'SkCondVar.cpp',
     'SkParse.cpp',
-    'GrAddPathRenderers_default.cpp',
-    'GrDistanceFieldTextContext.cpp',
     'SkSHA1.cpp',
     'SkMD5.cpp',
     'SkPictureData.cpp',
-    'SkScaledImageCache.cpp',
     'opts_check_x86.cpp',
+    'GrDrawContext',
+    'GrResourceCache',
+    'GrAA',
+    'GrGL',
+    'GrBatchAtlas.cpp',
+    'SkArithmeticMode_gpu.cpp',
+    'SkImage_Gpu.cpp',
+    'SkPathOpsDebug.cpp',
+    'SkParsePath.cpp',
+    'SkOpts',
+    'SkRecorder.cpp',
   ]
 
   def isblacklisted(value):
     for item in unified_blacklist:
       if value.find(item) >= 0:
         return True
 
     return False
--- a/gfx/skia/moz.build
+++ b/gfx/skia/moz.build
@@ -9,36 +9,41 @@
 # # #####   #######        #     #   ## ##   #     #     #      ###
 #
 # Seriously. You shouldn't even be looking at this file unless you're
 # debugging generate_mozbuild.py.
 #
 # DO NOT MODIFY THIS FILE IT IS AUTOGENERATED.
 #
 UNIFIED_SOURCES += [
+    'skia/src/c/sk_paint.cpp',
+    'skia/src/c/sk_surface.cpp',
     'skia/src/core/SkAAClip.cpp',
     'skia/src/core/SkAlphaRuns.cpp',
     'skia/src/core/SkAnnotation.cpp',
     'skia/src/core/SkBBHFactory.cpp',
-    'skia/src/core/SkBBoxHierarchyRecord.cpp',
-    'skia/src/core/SkBBoxRecord.cpp',
+    'skia/src/core/SkBigPicture.cpp',
     'skia/src/core/SkBitmap.cpp',
-    'skia/src/core/SkBitmap_scroll.cpp',
+    'skia/src/core/SkBitmapCache.cpp',
+    'skia/src/core/SkBitmapController.cpp',
     'skia/src/core/SkBitmapDevice.cpp',
     'skia/src/core/SkBitmapFilter.cpp',
     'skia/src/core/SkBitmapHeap.cpp',
     'skia/src/core/SkBitmapProcShader.cpp',
     'skia/src/core/SkBitmapProcState.cpp',
+    'skia/src/core/SkBitmapProvider.cpp',
     'skia/src/core/SkBitmapScaler.cpp',
     'skia/src/core/SkBlitMask_D32.cpp',
     'skia/src/core/SkBlitRow_D16.cpp',
     'skia/src/core/SkBlitRow_D32.cpp',
     'skia/src/core/SkBlitter.cpp',
     'skia/src/core/SkBuffer.cpp',
+    'skia/src/core/SkCachedData.cpp',
     'skia/src/core/SkCanvas.cpp',
+    'skia/src/core/SkChecksum.cpp',
     'skia/src/core/SkChunkAlloc.cpp',
     'skia/src/core/SkClipStack.cpp',
     'skia/src/core/SkColor.cpp',
     'skia/src/core/SkColorFilter.cpp',
     'skia/src/core/SkColorTable.cpp',
     'skia/src/core/SkComposeShader.cpp',
     'skia/src/core/SkConfig8888.cpp',
     'skia/src/core/SkConvolver.cpp',
@@ -48,559 +53,609 @@ UNIFIED_SOURCES += [
     'skia/src/core/SkDebug.cpp',
     'skia/src/core/SkDeque.cpp',
     'skia/src/core/SkDevice.cpp',
     'skia/src/core/SkDeviceLooper.cpp',
     'skia/src/core/SkDeviceProfile.cpp',
     'skia/src/core/SkDistanceFieldGen.cpp',
     'skia/src/core/SkDither.cpp',
     'skia/src/core/SkDraw.cpp',
+    'skia/src/core/SkDrawable.cpp',
     'skia/src/core/SkDrawLooper.cpp',
     'skia/src/core/SkEdge.cpp',
     'skia/src/core/SkEdgeBuilder.cpp',
     'skia/src/core/SkEdgeClipper.cpp',
     'skia/src/core/SkError.cpp',
     'skia/src/core/SkFilterProc.cpp',
     'skia/src/core/SkFilterShader.cpp',
     'skia/src/core/SkFlattenable.cpp',
     'skia/src/core/SkFlattenableSerialization.cpp',
-    'skia/src/core/SkFloat.cpp',
     'skia/src/core/SkFloatBits.cpp',
     'skia/src/core/SkFont.cpp',
     'skia/src/core/SkFontDescriptor.cpp',
+    'skia/src/core/SkFontMgr.cpp',
     'skia/src/core/SkFontStream.cpp',
+    'skia/src/core/SkFontStyle.cpp',
+    'skia/src/core/SkForceCPlusPlusLinking.cpp',
     'skia/src/core/SkGeometry.cpp',
     'skia/src/core/SkGlyphCache.cpp',
     'skia/src/core/SkGraphics.cpp',
+    'skia/src/core/SkHalf.cpp',
+    'skia/src/core/SkImageCacherator.cpp',
     'skia/src/core/SkImageFilter.cpp',
     'skia/src/core/SkImageGenerator.cpp',
     'skia/src/core/SkImageInfo.cpp',
-    'skia/src/core/SkInstCnt.cpp',
+    'skia/src/core/SkLightingShader.cpp',
     'skia/src/core/SkLineClipper.cpp',
+    'skia/src/core/SkLocalMatrixImageFilter.cpp',
     'skia/src/core/SkLocalMatrixShader.cpp',
     'skia/src/core/SkMallocPixelRef.cpp',
     'skia/src/core/SkMask.cpp',
+    'skia/src/core/SkMaskCache.cpp',
     'skia/src/core/SkMaskFilter.cpp',
     'skia/src/core/SkMaskGamma.cpp',
     'skia/src/core/SkMath.cpp',
     'skia/src/core/SkMatrix.cpp',
-    'skia/src/core/SkMatrixClipStateMgr.cpp',
+    'skia/src/core/SkMatrixImageFilter.cpp',
     'skia/src/core/SkMetaData.cpp',
+    'skia/src/core/SkMiniRecorder.cpp',
     'skia/src/core/SkMipMap.cpp',
+    'skia/src/core/SkMultiPictureDraw.cpp',
+    'skia/src/core/SkNinePatchIter.cpp',
     'skia/src/core/SkPackBits.cpp',
     'skia/src/core/SkPaint.cpp',
-    'skia/src/core/SkPaintOptionsAndroid.cpp',
     'skia/src/core/SkPaintPriv.cpp',
-    'skia/src/core/SkPatch.cpp',
     'skia/src/core/SkPath.cpp',
     'skia/src/core/SkPathEffect.cpp',
-    'skia/src/core/SkPathHeap.cpp',
     'skia/src/core/SkPathMeasure.cpp',
     'skia/src/core/SkPathRef.cpp',
     'skia/src/core/SkPicture.cpp',
+    'skia/src/core/SkPictureContentInfo.cpp',
     'skia/src/core/SkPictureFlat.cpp',
+    'skia/src/core/SkPictureImageGenerator.cpp',
     'skia/src/core/SkPicturePlayback.cpp',
-    'skia/src/core/SkPictureRangePlayback.cpp',
     'skia/src/core/SkPictureRecord.cpp',
     'skia/src/core/SkPictureRecorder.cpp',
-    'skia/src/core/SkPictureReplacementPlayback.cpp',
     'skia/src/core/SkPictureShader.cpp',
-    'skia/src/core/SkPictureStateTree.cpp',
     'skia/src/core/SkPixelRef.cpp',
+    'skia/src/core/SkPixmap.cpp',
     'skia/src/core/SkPoint.cpp',
-    'skia/src/core/SkProcSpriteBlitter.cpp',
+    'skia/src/core/SkPoint3.cpp',
     'skia/src/core/SkPtrRecorder.cpp',
     'skia/src/core/SkQuadClipper.cpp',
-    'skia/src/core/SkQuadTree.cpp',
     'skia/src/core/SkRasterClip.cpp',
     'skia/src/core/SkRasterizer.cpp',
     'skia/src/core/SkReadBuffer.cpp',
-    'skia/src/core/SkRecordAnalysis.cpp',
+    'skia/src/core/SkRecord.cpp',
     'skia/src/core/SkRecordDraw.cpp',
-    'skia/src/core/SkRecorder.cpp',
-    'skia/src/core/SkRecording.cpp',
     'skia/src/core/SkRecordOpts.cpp',
+    'skia/src/core/SkRecords.cpp',
     'skia/src/core/SkRect.cpp',
     'skia/src/core/SkRefDict.cpp',
     'skia/src/core/SkRegion.cpp',
     'skia/src/core/SkRegion_path.cpp',
+    'skia/src/core/SkRemote.cpp',
+    'skia/src/core/SkResourceCache.cpp',
     'skia/src/core/SkRRect.cpp',
     'skia/src/core/SkRTree.cpp',
+    'skia/src/core/SkRWBuffer.cpp',
     'skia/src/core/SkScalar.cpp',
     'skia/src/core/SkScalerContext.cpp',
     'skia/src/core/SkScan.cpp',
     'skia/src/core/SkScan_AntiPath.cpp',
     'skia/src/core/SkScan_Hairline.cpp',
     'skia/src/core/SkScan_Path.cpp',
+    'skia/src/core/SkSemaphore.cpp',
     'skia/src/core/SkShader.cpp',
+    'skia/src/core/SkSharedMutex.cpp',
+    'skia/src/core/SkSpinlock.cpp',
     'skia/src/core/SkSpriteBlitter_ARGB32.cpp',
     'skia/src/core/SkSpriteBlitter_RGB16.cpp',
     'skia/src/core/SkStream.cpp',
     'skia/src/core/SkString.cpp',
     'skia/src/core/SkStringUtils.cpp',
     'skia/src/core/SkStroke.cpp',
     'skia/src/core/SkStrokeRec.cpp',
     'skia/src/core/SkStrokerPriv.cpp',
-    'skia/src/core/SkTileGrid.cpp',
+    'skia/src/core/SkTaskGroup.cpp',
+    'skia/src/core/SkTextBlob.cpp',
+    'skia/src/core/SkThreadID.cpp',
+    'skia/src/core/SkTime.cpp',
     'skia/src/core/SkTLS.cpp',
     'skia/src/core/SkTSearch.cpp',
     'skia/src/core/SkTypeface.cpp',
     'skia/src/core/SkTypefaceCache.cpp',
     'skia/src/core/SkUnPreMultiply.cpp',
     'skia/src/core/SkUtils.cpp',
     'skia/src/core/SkValidatingReadBuffer.cpp',
+    'skia/src/core/SkVarAlloc.cpp',
     'skia/src/core/SkVertState.cpp',
     'skia/src/core/SkWriteBuffer.cpp',
     'skia/src/core/SkWriter32.cpp',
     'skia/src/core/SkXfermode.cpp',
+    'skia/src/core/SkXfermodeInterpretation.cpp',
+    'skia/src/core/SkYUVPlanesCache.cpp',
     'skia/src/doc/SkDocument.cpp',
-    'skia/src/effects/gradients/SkBitmapCache.cpp',
     'skia/src/effects/gradients/SkClampRange.cpp',
+    'skia/src/effects/gradients/SkGradientBitmapCache.cpp',
     'skia/src/effects/gradients/SkGradientShader.cpp',
     'skia/src/effects/gradients/SkLinearGradient.cpp',
     'skia/src/effects/gradients/SkRadialGradient.cpp',
     'skia/src/effects/gradients/SkSweepGradient.cpp',
     'skia/src/effects/gradients/SkTwoPointConicalGradient.cpp',
     'skia/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp',
-    'skia/src/effects/gradients/SkTwoPointRadialGradient.cpp',
+    'skia/src/effects/GrCircleBlurFragmentProcessor.cpp',
     'skia/src/effects/Sk1DPathEffect.cpp',
     'skia/src/effects/Sk2DPathEffect.cpp',
     'skia/src/effects/SkAlphaThresholdFilter.cpp',
+    'skia/src/effects/SkArcToPathEffect.cpp',
     'skia/src/effects/SkArithmeticMode.cpp',
-    'skia/src/effects/SkAvoidXfermode.cpp',
-    'skia/src/effects/SkBitmapSource.cpp',
     'skia/src/effects/SkBlurDrawLooper.cpp',
     'skia/src/effects/SkBlurImageFilter.cpp',
     'skia/src/effects/SkBlurMask.cpp',
     'skia/src/effects/SkBlurMaskFilter.cpp',
+    'skia/src/effects/SkColorCubeFilter.cpp',
     'skia/src/effects/SkColorFilterImageFilter.cpp',
     'skia/src/effects/SkColorFilters.cpp',
     'skia/src/effects/SkColorMatrix.cpp',
     'skia/src/effects/SkColorMatrixFilter.cpp',
     'skia/src/effects/SkComposeImageFilter.cpp',
     'skia/src/effects/SkCornerPathEffect.cpp',
     'skia/src/effects/SkDashPathEffect.cpp',
     'skia/src/effects/SkDiscretePathEffect.cpp',
     'skia/src/effects/SkDisplacementMapEffect.cpp',
     'skia/src/effects/SkDropShadowImageFilter.cpp',
     'skia/src/effects/SkEmbossMask.cpp',
     'skia/src/effects/SkEmbossMaskFilter.cpp',
     'skia/src/effects/SkGpuBlurUtils.cpp',
+    'skia/src/effects/SkImageSource.cpp',
     'skia/src/effects/SkLayerDrawLooper.cpp',
     'skia/src/effects/SkLayerRasterizer.cpp',
     'skia/src/effects/SkLerpXfermode.cpp',
     'skia/src/effects/SkLightingImageFilter.cpp',
     'skia/src/effects/SkLumaColorFilter.cpp',
     'skia/src/effects/SkMagnifierImageFilter.cpp',
     'skia/src/effects/SkMatrixConvolutionImageFilter.cpp',
-    'skia/src/effects/SkMatrixImageFilter.cpp',
     'skia/src/effects/SkMergeImageFilter.cpp',
     'skia/src/effects/SkMorphologyImageFilter.cpp',
     'skia/src/effects/SkOffsetImageFilter.cpp',
     'skia/src/effects/SkPaintFlagsDrawFilter.cpp',
     'skia/src/effects/SkPerlinNoiseShader.cpp',
     'skia/src/effects/SkPictureImageFilter.cpp',
     'skia/src/effects/SkPixelXorXfermode.cpp',
-    'skia/src/effects/SkPorterDuff.cpp',
     'skia/src/effects/SkRectShaderImageFilter.cpp',
-    'skia/src/effects/SkStippleMaskFilter.cpp',
     'skia/src/effects/SkTableColorFilter.cpp',
     'skia/src/effects/SkTableMaskFilter.cpp',
     'skia/src/effects/SkTestImageFilters.cpp',
     'skia/src/effects/SkTileImageFilter.cpp',
-    'skia/src/effects/SkTransparentShader.cpp',
     'skia/src/effects/SkXfermodeImageFilter.cpp',
     'skia/src/fonts/SkFontMgr_indirect.cpp',
     'skia/src/fonts/SkGScalerContext.cpp',
+    'skia/src/fonts/SkRandomScalerContext.cpp',
     'skia/src/fonts/SkRemotableFontMgr.cpp',
     'skia/src/fonts/SkTestScalerContext.cpp',
+    'skia/src/gpu/batches/GrAtlasTextBatch.cpp',
+    'skia/src/gpu/batches/GrBatch.cpp',
+    'skia/src/gpu/batches/GrCopySurfaceBatch.cpp',
+    'skia/src/gpu/batches/GrDashLinePathRenderer.cpp',
+    'skia/src/gpu/batches/GrDefaultPathRenderer.cpp',
+    'skia/src/gpu/batches/GrDrawAtlasBatch.cpp',
+    'skia/src/gpu/batches/GrDrawBatch.cpp',
+    'skia/src/gpu/batches/GrDrawPathBatch.cpp',
+    'skia/src/gpu/batches/GrDrawVerticesBatch.cpp',
+    'skia/src/gpu/batches/GrNinePatch.cpp',
+    'skia/src/gpu/batches/GrNonAAFillRectBatch.cpp',
+    'skia/src/gpu/batches/GrNonAAStrokeRectBatch.cpp',
+    'skia/src/gpu/batches/GrRectBatchFactory.cpp',
+    'skia/src/gpu/batches/GrStencilAndCoverPathRenderer.cpp',
+    'skia/src/gpu/batches/GrTessellatingPathRenderer.cpp',
+    'skia/src/gpu/batches/GrVertexBatch.cpp',
     'skia/src/gpu/effects/GrBezierEffect.cpp',
     'skia/src/gpu/effects/GrBicubicEffect.cpp',
+    'skia/src/gpu/effects/GrBitmapTextGeoProc.cpp',
     'skia/src/gpu/effects/GrConfigConversionEffect.cpp',
+    'skia/src/gpu/effects/GrConstColorProcessor.cpp',
     'skia/src/gpu/effects/GrConvexPolyEffect.cpp',
     'skia/src/gpu/effects/GrConvolutionEffect.cpp',
-    'skia/src/gpu/effects/GrCustomCoordsTextureEffect.cpp',
+    'skia/src/gpu/effects/GrCoverageSetOpXP.cpp',
+    'skia/src/gpu/effects/GrCustomXfermode.cpp',
     'skia/src/gpu/effects/GrDashingEffect.cpp',
-    'skia/src/gpu/effects/GrDistanceFieldTextureEffect.cpp',
+    'skia/src/gpu/effects/GrDisableColorXP.cpp',
+    'skia/src/gpu/effects/GrDistanceFieldGeoProc.cpp',
     'skia/src/gpu/effects/GrDitherEffect.cpp',
     'skia/src/gpu/effects/GrMatrixConvolutionEffect.cpp',
     'skia/src/gpu/effects/GrOvalEffect.cpp',
+    'skia/src/gpu/effects/GrPorterDuffXferProcessor.cpp',
     'skia/src/gpu/effects/GrRRectEffect.cpp',
     'skia/src/gpu/effects/GrSimpleTextureEffect.cpp',
     'skia/src/gpu/effects/GrSingleTextureEffect.cpp',
     'skia/src/gpu/effects/GrTextureDomain.cpp',
     'skia/src/gpu/effects/GrTextureStripAtlas.cpp',
+    'skia/src/gpu/effects/GrXfermodeFragmentProcessor.cpp',
     'skia/src/gpu/effects/GrYUVtoRGBEffect.cpp',
     'skia/src/gpu/gl/debug/GrBufferObj.cpp',
     'skia/src/gpu/gl/debug/GrDebugGL.cpp',
     'skia/src/gpu/gl/debug/GrFrameBufferObj.cpp',
-    'skia/src/gpu/gl/debug/GrGLCreateDebugInterface.cpp',
     'skia/src/gpu/gl/debug/GrProgramObj.cpp',
     'skia/src/gpu/gl/debug/GrShaderObj.cpp',
     'skia/src/gpu/gl/debug/GrTextureObj.cpp',
     'skia/src/gpu/gl/debug/GrTextureUnitObj.cpp',
     'skia/src/gpu/gl/debug/SkDebugGLContext.cpp',
-    'skia/src/gpu/gl/GrGLAssembleInterface.cpp',
-    'skia/src/gpu/gl/GrGLBufferImpl.cpp',
-    'skia/src/gpu/gl/GrGLCaps.cpp',
-    'skia/src/gpu/gl/GrGLContext.cpp',
-    'skia/src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
-    'skia/src/gpu/gl/GrGLCreateNullInterface.cpp',
-    'skia/src/gpu/gl/GrGLDefaultInterface_native.cpp',
-    'skia/src/gpu/gl/GrGLExtensions.cpp',
-    'skia/src/gpu/gl/GrGLIndexBuffer.cpp',
-    'skia/src/gpu/gl/GrGLInterface.cpp',
-    'skia/src/gpu/gl/GrGLNameAllocator.cpp',
-    'skia/src/gpu/gl/GrGLNoOpInterface.cpp',
-    'skia/src/gpu/gl/GrGLPath.cpp',
-    'skia/src/gpu/gl/GrGLPathRange.cpp',
-    'skia/src/gpu/gl/GrGLProgram.cpp',
-    'skia/src/gpu/gl/GrGLProgramDesc.cpp',
-    'skia/src/gpu/gl/GrGLProgramEffects.cpp',
-    'skia/src/gpu/gl/GrGLRenderTarget.cpp',
-    'skia/src/gpu/gl/GrGLShaderBuilder.cpp',
-    'skia/src/gpu/gl/GrGLSL.cpp',
-    'skia/src/gpu/gl/GrGLStencilBuffer.cpp',
-    'skia/src/gpu/gl/GrGLTexture.cpp',
-    'skia/src/gpu/gl/GrGLUniformManager.cpp',
-    'skia/src/gpu/gl/GrGLUtil.cpp',
-    'skia/src/gpu/gl/GrGLVertexArray.cpp',
-    'skia/src/gpu/gl/GrGLVertexBuffer.cpp',
-    'skia/src/gpu/gl/GrGpuGL.cpp',
-    'skia/src/gpu/gl/GrGpuGL_program.cpp',
-    'skia/src/gpu/gl/SkGLContextHelper.cpp',
+    'skia/src/gpu/gl/SkGLContext.cpp',
     'skia/src/gpu/gl/SkNullGLContext.cpp',
-    'skia/src/gpu/GrAAConvexPathRenderer.cpp',
-    'skia/src/gpu/GrAAHairLinePathRenderer.cpp',
-    'skia/src/gpu/GrAARectRenderer.cpp',
-    'skia/src/gpu/GrAllocPool.cpp',
-    'skia/src/gpu/GrAtlas.cpp',
-    'skia/src/gpu/GrBitmapTextContext.cpp',
+    'skia/src/gpu/GrAtlasTextBlob.cpp',
+    'skia/src/gpu/GrAtlasTextContext.cpp',
+    'skia/src/gpu/GrBatchFlushState.cpp',
+    'skia/src/gpu/GrBatchFontCache.cpp',
+    'skia/src/gpu/GrBatchTest.cpp',
     'skia/src/gpu/GrBlend.cpp',
+    'skia/src/gpu/GrBlurUtils.cpp',
     'skia/src/gpu/GrBufferAllocPool.cpp',
-    'skia/src/gpu/GrCacheID.cpp',
-    'skia/src/gpu/GrClipData.cpp',
-    'skia/src/gpu/GrClipMaskCache.cpp',
+    'skia/src/gpu/GrCaps.cpp',
+    'skia/src/gpu/GrClip.cpp',
     'skia/src/gpu/GrClipMaskManager.cpp',
     'skia/src/gpu/GrContext.cpp',
-    'skia/src/gpu/GrDefaultPathRenderer.cpp',
-    'skia/src/gpu/GrDrawState.cpp',
+    'skia/src/gpu/GrCoordTransform.cpp',
+    'skia/src/gpu/GrDefaultGeoProcFactory.cpp',
+    'skia/src/gpu/GrDrawingManager.cpp',
     'skia/src/gpu/GrDrawTarget.cpp',
-    'skia/src/gpu/GrEffect.cpp',
     'skia/src/gpu/GrFontScaler.cpp',
+    'skia/src/gpu/GrFragmentProcessor.cpp',
     'skia/src/gpu/GrGpu.cpp',
     'skia/src/gpu/GrGpuFactory.cpp',
     'skia/src/gpu/GrGpuResource.cpp',
-    'skia/src/gpu/GrInOrderDrawBuffer.cpp',
+    'skia/src/gpu/GrGpuResourceRef.cpp',
+    'skia/src/gpu/GrImageIDTextureAdjuster.cpp',
+    'skia/src/gpu/GrInvariantOutput.cpp',
+    'skia/src/gpu/GrLayerAtlas.cpp',
     'skia/src/gpu/GrLayerCache.cpp',
+    'skia/src/gpu/GrLayerHoister.cpp',
     'skia/src/gpu/GrMemoryPool.cpp',
     'skia/src/gpu/GrOvalRenderer.cpp',
     'skia/src/gpu/GrPaint.cpp',
     'skia/src/gpu/GrPath.cpp',
+    'skia/src/gpu/GrPathProcessor.cpp',
+    'skia/src/gpu/GrPathRange.cpp',
     'skia/src/gpu/GrPathRenderer.cpp',
     'skia/src/gpu/GrPathRendererChain.cpp',
+    'skia/src/gpu/GrPathRendering.cpp',
     'skia/src/gpu/GrPathUtils.cpp',
-    'skia/src/gpu/GrPictureUtils.cpp',
+    'skia/src/gpu/GrPipeline.cpp',
+    'skia/src/gpu/GrPipelineBuilder.cpp',
+    'skia/src/gpu/GrPrimitiveProcessor.cpp',
+    'skia/src/gpu/GrProcessor.cpp',
+    'skia/src/gpu/GrProcessorUnitTest.cpp',
+    'skia/src/gpu/GrProcOptInfo.cpp',
+    'skia/src/gpu/GrProgramElement.cpp',
+    'skia/src/gpu/GrRecordReplaceDraw.cpp',
     'skia/src/gpu/GrRectanizer_pow2.cpp',
     'skia/src/gpu/GrRectanizer_skyline.cpp',
     'skia/src/gpu/GrReducedClip.cpp',
     'skia/src/gpu/GrRenderTarget.cpp',
-    'skia/src/gpu/GrResourceCache.cpp',
+    'skia/src/gpu/GrResourceProvider.cpp',
     'skia/src/gpu/GrSoftwarePathRenderer.cpp',
     'skia/src/gpu/GrStencil.cpp',
-    'skia/src/gpu/GrStencilAndCoverPathRenderer.cpp',
     'skia/src/gpu/GrStencilAndCoverTextContext.cpp',
-    'skia/src/gpu/GrStencilBuffer.cpp',
+    'skia/src/gpu/GrStencilAttachment.cpp',
+    'skia/src/gpu/GrStrokeInfo.cpp',
     'skia/src/gpu/GrSurface.cpp',
     'skia/src/gpu/GrSWMaskHelper.cpp',
+    'skia/src/gpu/GrTestUtils.cpp',
+    'skia/src/gpu/GrTextBlobCache.cpp',
     'skia/src/gpu/GrTextContext.cpp',
-    'skia/src/gpu/GrTextStrike.cpp',
     'skia/src/gpu/GrTexture.cpp',
     'skia/src/gpu/GrTextureAccess.cpp',
+    'skia/src/gpu/GrTextureParamsAdjuster.cpp',
+    'skia/src/gpu/GrTextureProvider.cpp',
     'skia/src/gpu/GrTraceMarker.cpp',
+    'skia/src/gpu/GrXferProcessor.cpp',
+    'skia/src/gpu/GrYUVProvider.cpp',
     'skia/src/gpu/SkGpuDevice.cpp',
+    'skia/src/gpu/SkGpuDevice_drawTexture.cpp',
     'skia/src/gpu/SkGr.cpp',
     'skia/src/gpu/SkGrPixelRef.cpp',
     'skia/src/gpu/SkGrTexturePixelRef.cpp',
     'skia/src/image/SkImage.cpp',
-    'skia/src/image/SkImage_Gpu.cpp',
+    'skia/src/image/SkImage_Generator.cpp',
     'skia/src/image/SkImage_Raster.cpp',
-    'skia/src/image/SkImagePriv.cpp',
+    'skia/src/image/SkImageShader.cpp',
     'skia/src/image/SkSurface.cpp',
     'skia/src/image/SkSurface_Gpu.cpp',
     'skia/src/image/SkSurface_Raster.cpp',
     'skia/src/images/bmpdecoderhelper.cpp',
     'skia/src/images/SkDecodingImageGenerator.cpp',
     'skia/src/images/SkPageFlipper.cpp',
     'skia/src/images/SkScaledBitmapSampler.cpp',
-    'skia/src/lazy/SkCachingPixelRef.cpp',
     'skia/src/lazy/SkDiscardableMemoryPool.cpp',
     'skia/src/lazy/SkDiscardablePixelRef.cpp',
     'skia/src/pathops/SkAddIntersections.cpp',
-    'skia/src/pathops/SkDCubicIntersection.cpp',
+    'skia/src/pathops/SkDConicLineIntersection.cpp',
     'skia/src/pathops/SkDCubicLineIntersection.cpp',
     'skia/src/pathops/SkDCubicToQuads.cpp',
     'skia/src/pathops/SkDLineIntersection.cpp',
-    'skia/src/pathops/SkDQuadImplicit.cpp',
-    'skia/src/pathops/SkDQuadIntersection.cpp',
     'skia/src/pathops/SkDQuadLineIntersection.cpp',
     'skia/src/pathops/SkIntersections.cpp',
     'skia/src/pathops/SkOpAngle.cpp',
+    'skia/src/pathops/SkOpBuilder.cpp',
+    'skia/src/pathops/SkOpCoincidence.cpp',
     'skia/src/pathops/SkOpContour.cpp',
+    'skia/src/pathops/SkOpCubicHull.cpp',
     'skia/src/pathops/SkOpEdgeBuilder.cpp',
     'skia/src/pathops/SkOpSegment.cpp',
-    'skia/src/pathops/SkPathOpsBounds.cpp',
+    'skia/src/pathops/SkOpSpan.cpp',
     'skia/src/pathops/SkPathOpsCommon.cpp',
+    'skia/src/pathops/SkPathOpsConic.cpp',
     'skia/src/pathops/SkPathOpsCubic.cpp',
-    'skia/src/pathops/SkPathOpsDebug.cpp',
+    'skia/src/pathops/SkPathOpsCurve.cpp',
     'skia/src/pathops/SkPathOpsLine.cpp',
     'skia/src/pathops/SkPathOpsOp.cpp',
     'skia/src/pathops/SkPathOpsPoint.cpp',
     'skia/src/pathops/SkPathOpsQuad.cpp',
     'skia/src/pathops/SkPathOpsRect.cpp',
     'skia/src/pathops/SkPathOpsSimplify.cpp',
     'skia/src/pathops/SkPathOpsTightBounds.cpp',
-    'skia/src/pathops/SkPathOpsTriangle.cpp',
+    'skia/src/pathops/SkPathOpsTSect.cpp',
     'skia/src/pathops/SkPathOpsTypes.cpp',
+    'skia/src/pathops/SkPathOpsWinding.cpp',
     'skia/src/pathops/SkPathWriter.cpp',
-    'skia/src/pathops/SkQuarticRoot.cpp',
     'skia/src/pathops/SkReduceOrder.cpp',
     'skia/src/pipe/SkGPipeRead.cpp',
     'skia/src/pipe/SkGPipeWrite.cpp',
     'skia/src/ports/SkDiscardableMemory_none.cpp',
     'skia/src/ports/SkGlobalInitialization_default.cpp',
     'skia/src/ports/SkImageDecoder_empty.cpp',
+    'skia/src/ports/SkImageGenerator_skia.cpp',
     'skia/src/ports/SkMemory_mozalloc.cpp',
     'skia/src/ports/SkOSFile_stdio.cpp',
     'skia/src/sfnt/SkOTTable_name.cpp',
     'skia/src/sfnt/SkOTUtils.cpp',
+    'skia/src/utils/android/SkAndroidSDKCanvas.cpp',
     'skia/src/utils/SkBase64.cpp',
+    'skia/src/utils/SkBitmapSourceDeserializer.cpp',
     'skia/src/utils/SkBitSet.cpp',
     'skia/src/utils/SkBoundaryPatch.cpp',
     'skia/src/utils/SkCamera.cpp',
     'skia/src/utils/SkCanvasStack.cpp',
     'skia/src/utils/SkCanvasStateUtils.cpp',
     'skia/src/utils/SkCubicInterval.cpp',
     'skia/src/utils/SkCullPoints.cpp',
     'skia/src/utils/SkDashPath.cpp',
-    'skia/src/utils/SkDeferredCanvas.cpp',
     'skia/src/utils/SkDumpCanvas.cpp',
     'skia/src/utils/SkEventTracer.cpp',
     'skia/src/utils/SkFrontBufferedStream.cpp',
-    'skia/src/utils/SkGatherPixelRefsAndRects.cpp',
+    'skia/src/utils/SkImageGeneratorUtils.cpp',
     'skia/src/utils/SkInterpolator.cpp',
     'skia/src/utils/SkLayer.cpp',
     'skia/src/utils/SkMatrix22.cpp',
     'skia/src/utils/SkMatrix44.cpp',
     'skia/src/utils/SkMeshUtils.cpp',
     'skia/src/utils/SkNinePatch.cpp',
     'skia/src/utils/SkNullCanvas.cpp',
     'skia/src/utils/SkNWayCanvas.cpp',
     'skia/src/utils/SkOSFile.cpp',
+    'skia/src/utils/SkPaintFilterCanvas.cpp',
     'skia/src/utils/SkParseColor.cpp',
-    'skia/src/utils/SkParsePath.cpp',
-    'skia/src/utils/SkPathUtils.cpp',
-    'skia/src/utils/SkPictureUtils.cpp',
-    'skia/src/utils/SkProxyCanvas.cpp',
+    'skia/src/utils/SkPatchGrid.cpp',
+    'skia/src/utils/SkPatchUtils.cpp',
     'skia/src/utils/SkRTConf.cpp',
+    'skia/src/utils/SkTextBox.cpp',
     'skia/src/utils/SkTextureCompressor.cpp',
     'skia/src/utils/SkTextureCompressor_ASTC.cpp',
     'skia/src/utils/SkTextureCompressor_LATC.cpp',
     'skia/src/utils/SkTextureCompressor_R11EAC.cpp',
+    'skia/src/utils/SkWhitelistTypefaces.cpp',
 ]
 SOURCES += [
     'skia/src/core/SkAdvancedTypefaceMetrics.cpp',
     'skia/src/core/SkBitmapProcState_matrixProcs.cpp',
     'skia/src/core/SkBlitter_A8.cpp',
     'skia/src/core/SkBlitter_ARGB32.cpp',
     'skia/src/core/SkBlitter_RGB16.cpp',
     'skia/src/core/SkBlitter_Sprite.cpp',
     'skia/src/core/SkFontHost.cpp',
+    'skia/src/core/SkOpts.cpp',
     'skia/src/core/SkPictureData.cpp',
-    'skia/src/core/SkScaledImageCache.cpp',
+    'skia/src/core/SkRecorder.cpp',
     'skia/src/core/SkScan_Antihair.cpp',
-    'skia/src/gpu/GrAddPathRenderers_default.cpp',
-    'skia/src/gpu/GrDistanceFieldTextContext.cpp',
+    'skia/src/effects/SkArithmeticMode_gpu.cpp',
+    'skia/src/gpu/batches/GrAAConvexPathRenderer.cpp',
+    'skia/src/gpu/batches/GrAAConvexTessellator.cpp',
+    'skia/src/gpu/batches/GrAADistanceFieldPathRenderer.cpp',
+    'skia/src/gpu/batches/GrAAFillRectBatch.cpp',
+    'skia/src/gpu/batches/GrAAHairLinePathRenderer.cpp',
+    'skia/src/gpu/batches/GrAALinearizingConvexPathRenderer.cpp',
+    'skia/src/gpu/batches/GrAAStrokeRectBatch.cpp',
+    'skia/src/gpu/gl/builders/GrGLProgramBuilder.cpp',
+    'skia/src/gpu/gl/builders/GrGLShaderStringBuilder.cpp',
+    'skia/src/gpu/gl/builders/GrGLSLPrettyPrint.cpp',
+    'skia/src/gpu/gl/debug/GrGLCreateDebugInterface.cpp',
+    'skia/src/gpu/gl/GrGLAssembleInterface.cpp',
+    'skia/src/gpu/gl/GrGLBufferImpl.cpp',
+    'skia/src/gpu/gl/GrGLCaps.cpp',
+    'skia/src/gpu/gl/GrGLContext.cpp',
+    'skia/src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
+    'skia/src/gpu/gl/GrGLCreateNullInterface.cpp',
+    'skia/src/gpu/gl/GrGLDefaultInterface_native.cpp',
+    'skia/src/gpu/gl/GrGLExtensions.cpp',
+    'skia/src/gpu/gl/GrGLGLSL.cpp',
+    'skia/src/gpu/gl/GrGLGpu.cpp',
+    'skia/src/gpu/gl/GrGLGpuProgramCache.cpp',
+    'skia/src/gpu/gl/GrGLIndexBuffer.cpp',
+    'skia/src/gpu/gl/GrGLInterface.cpp',
+    'skia/src/gpu/gl/GrGLNameAllocator.cpp',
+    'skia/src/gpu/gl/GrGLNoOpInterface.cpp',
+    'skia/src/gpu/gl/GrGLPath.cpp',
+    'skia/src/gpu/gl/GrGLPathRange.cpp',
+    'skia/src/gpu/gl/GrGLPathRendering.cpp',
+    'skia/src/gpu/gl/GrGLProgram.cpp',
+    'skia/src/gpu/gl/GrGLProgramDataManager.cpp',
+    'skia/src/gpu/gl/GrGLProgramDesc.cpp',
+    'skia/src/gpu/gl/GrGLRenderTarget.cpp',
+    'skia/src/gpu/gl/GrGLStencilAttachment.cpp',
+    'skia/src/gpu/gl/GrGLTexture.cpp',
+    'skia/src/gpu/gl/GrGLTextureRenderTarget.cpp',
+    'skia/src/gpu/gl/GrGLUtil.cpp',
+    'skia/src/gpu/gl/GrGLVaryingHandler.cpp',
+    'skia/src/gpu/gl/GrGLVertexArray.cpp',
+    'skia/src/gpu/gl/GrGLVertexBuffer.cpp',
+    'skia/src/gpu/glsl/GrGLSL.cpp',
+    'skia/src/gpu/glsl/GrGLSLBlend.cpp',
+    'skia/src/gpu/glsl/GrGLSLCaps.cpp',
+    'skia/src/gpu/glsl/GrGLSLFragmentProcessor.cpp',
+    'skia/src/gpu/glsl/GrGLSLFragmentShaderBuilder.cpp',
+    'skia/src/gpu/glsl/GrGLSLGeometryProcessor.cpp',
+    'skia/src/gpu/glsl/GrGLSLGeometryShaderBuilder.cpp',
+    'skia/src/gpu/glsl/GrGLSLPrimitiveProcessor.cpp',
+    'skia/src/gpu/glsl/GrGLSLProgramBuilder.cpp',
+    'skia/src/gpu/glsl/GrGLSLShaderBuilder.cpp',
+    'skia/src/gpu/glsl/GrGLSLUtil.cpp',
+    'skia/src/gpu/glsl/GrGLSLVarying.cpp',
+    'skia/src/gpu/glsl/GrGLSLVertexShaderBuilder.cpp',
+    'skia/src/gpu/glsl/GrGLSLXferProcessor.cpp',
+    'skia/src/gpu/GrBatchAtlas.cpp',
+    'skia/src/gpu/GrDrawContext.cpp',
+    'skia/src/gpu/GrResourceCache.cpp',
+    'skia/src/image/SkImage_Gpu.cpp',
+    'skia/src/pathops/SkPathOpsDebug.cpp',
     'skia/src/utils/SkMD5.cpp',
     'skia/src/utils/SkParse.cpp',
+    'skia/src/utils/SkParsePath.cpp',
     'skia/src/utils/SkSHA1.cpp',
 ]
 if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android', 'gonk'):
     UNIFIED_SOURCES += [
         'skia/src/ports/SkDebug_android.cpp',
         'skia/src/ports/SkOSFile_posix.cpp',
+        'skia/src/ports/SkOSLibrary_posix.cpp',
         'skia/src/ports/SkTime_Unix.cpp',
         'skia/src/ports/SkTLS_pthread.cpp',
         'skia/src/utils/SkThreadUtils_pthread.cpp',
     ]
     SOURCES += [
-        'skia/src/ports/SkFontHost_android_old.cpp',
         'skia/src/ports/SkFontHost_cairo.cpp',
-        'skia/src/ports/SkFontHost_FreeType.cpp',
         'skia/src/ports/SkFontHost_FreeType_common.cpp',
     ]
 if CONFIG['MOZ_WIDGET_TOOLKIT'] in {'cocoa', 'uikit'}:
     UNIFIED_SOURCES += [
         'skia/src/ports/SkDebug_stdio.cpp',
         'skia/src/ports/SkOSFile_posix.cpp',
+        'skia/src/ports/SkOSLibrary_posix.cpp',
         'skia/src/ports/SkTime_Unix.cpp',
         'skia/src/ports/SkTLS_pthread.cpp',
         'skia/src/utils/mac/SkCreateCGImageRef.cpp',
         'skia/src/utils/mac/SkStream_mac.cpp',
         'skia/src/utils/SkThreadUtils_pthread.cpp',
     ]
     SOURCES += [
         'skia/src/ports/SkFontHost_mac.cpp',
     ]
 if CONFIG['MOZ_WIDGET_GTK']:
     UNIFIED_SOURCES += [
         'skia/src/ports/SkDebug_stdio.cpp',
         'skia/src/ports/SkOSFile_posix.cpp',
+        'skia/src/ports/SkOSLibrary_posix.cpp',
         'skia/src/ports/SkTime_Unix.cpp',
         'skia/src/ports/SkTLS_pthread.cpp',
         'skia/src/utils/SkThreadUtils_pthread.cpp',
     ]
     SOURCES += [
         'skia/src/ports/SkFontHost_cairo.cpp',
-        'skia/src/ports/SkFontHost_FreeType.cpp',
         'skia/src/ports/SkFontHost_FreeType_common.cpp',
     ]
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt':
     UNIFIED_SOURCES += [
         'skia/src/ports/SkDebug_stdio.cpp',
         'skia/src/ports/SkOSFile_posix.cpp',
+        'skia/src/ports/SkOSLibrary_posix.cpp',
         'skia/src/ports/SkTime_Unix.cpp',
         'skia/src/ports/SkTLS_pthread.cpp',
         'skia/src/utils/SkThreadUtils_pthread.cpp',
     ]
     SOURCES += [
         'skia/src/ports/SkFontHost_cairo.cpp',
-        'skia/src/ports/SkFontHost_FreeType.cpp',
         'skia/src/ports/SkFontHost_FreeType_common.cpp',
     ]
 if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
     SOURCES += [
         'skia/src/ports/SkDebug_win.cpp',
         'skia/src/ports/SkFontHost_win.cpp',
-        'skia/src/ports/SkFontMgr_default_dw.cpp',
         'skia/src/ports/SkFontMgr_win_dw.cpp',
+        'skia/src/ports/SkFontMgr_win_dw_factory.cpp',
         'skia/src/ports/SkOSFile_win.cpp',
+        'skia/src/ports/SkOSLibrary_win.cpp',
         'skia/src/ports/SkRemotableFontMgr_win_dw.cpp',
         'skia/src/ports/SkScalerContext_win_dw.cpp',
         'skia/src/ports/SkTime_win.cpp',
         'skia/src/ports/SkTLS_win.cpp',
         'skia/src/ports/SkTypeface_win_dw.cpp',
         'skia/src/utils/SkThreadUtils_win.cpp',
         'skia/src/utils/win/SkAutoCoInitialize.cpp',
         'skia/src/utils/win/SkDWrite.cpp',
         'skia/src/utils/win/SkDWriteFontFileStream.cpp',
         'skia/src/utils/win/SkDWriteGeometrySink.cpp',
         'skia/src/utils/win/SkHRESULT.cpp',
         'skia/src/utils/win/SkIStream.cpp',
     ]
 if CONFIG['INTEL_ARCHITECTURE']:
-    UNIFIED_SOURCES += [
-        'skia/src/opts/SkTextureCompression_opts_none.cpp',
-    ]
     SOURCES += [
         'skia/src/opts/opts_check_x86.cpp',
         'skia/src/opts/SkBitmapFilter_opts_SSE2.cpp',
         'skia/src/opts/SkBitmapProcState_opts_SSE2.cpp',
         'skia/src/opts/SkBitmapProcState_opts_SSSE3.cpp',
-        'skia/src/opts/SkBlitRect_opts_SSE2.cpp',
         'skia/src/opts/SkBlitRow_opts_SSE2.cpp',
-        'skia/src/opts/SkBlurImage_opts_SSE2.cpp',
-        'skia/src/opts/SkBlurImage_opts_SSE4.cpp',
-        'skia/src/opts/SkMorphology_opts_SSE2.cpp',
-        'skia/src/opts/SkUtils_opts_SSE2.cpp',
-        'skia/src/opts/SkXfermode_opts_SSE2.cpp',
+        'skia/src/opts/SkBlitRow_opts_SSE4.cpp',
+        'skia/src/opts/SkOpts_avx.cpp',
+        'skia/src/opts/SkOpts_sse41.cpp',
+        'skia/src/opts/SkOpts_ssse3.cpp',
     ]
 elif CONFIG['CPU_ARCH'] == 'arm' and CONFIG['GNU_CC']:
     UNIFIED_SOURCES += [
         'skia/src/core/SkUtilsArm.cpp',
         'skia/src/opts/SkBitmapProcState_opts_arm.cpp',
         'skia/src/opts/SkBlitMask_opts_arm.cpp',
-        'skia/src/opts/SkBlurImage_opts_arm.cpp',
-        'skia/src/opts/SkMorphology_opts_arm.cpp',
-        'skia/src/opts/SkTextureCompression_opts_arm.cpp',
-        'skia/src/opts/SkUtils_opts_arm.cpp',
-        'skia/src/opts/SkXfermode_opts_arm.cpp',
     ]
     SOURCES += [
         'skia/src/opts/SkBlitRow_opts_arm.cpp',
     ]
     if CONFIG['BUILD_ARM_NEON']:
         SOURCES += [
             'skia/src/opts/SkBitmapProcState_arm_neon.cpp',
             'skia/src/opts/SkBitmapProcState_matrixProcs_neon.cpp',
             'skia/src/opts/SkBlitMask_opts_arm_neon.cpp',
             'skia/src/opts/SkBlitRow_opts_arm_neon.cpp',
-            'skia/src/opts/SkBlurImage_opts_neon.cpp',
-            'skia/src/opts/SkMorphology_opts_neon.cpp',
-            'skia/src/opts/SkTextureCompression_opts_neon.cpp',
-            'skia/src/opts/SkXfermode_opts_arm_neon.cpp',
+            'skia/src/opts/SkOpts_neon.cpp',
         ]
         SOURCES['skia/src/opts/SkBitmapProcState_arm_neon.cpp'].flags += ['-mfpu=neon']
         SOURCES['skia/src/opts/SkBitmapProcState_matrixProcs_neon.cpp'].flags += ['-mfpu=neon']
         SOURCES['skia/src/opts/SkBlitMask_opts_arm_neon.cpp'].flags += ['-mfpu=neon']
         SOURCES['skia/src/opts/SkBlitRow_opts_arm_neon.cpp'].flags += ['-mfpu=neon']
-        SOURCES['skia/src/opts/SkBlurImage_opts_neon.cpp'].flags += ['-mfpu=neon']
-        SOURCES['skia/src/opts/SkMorphology_opts_neon.cpp'].flags += ['-mfpu=neon']
-        SOURCES['skia/src/opts/SkTextureCompression_opts_neon.cpp'].flags += ['-mfpu=neon']
-        SOURCES['skia/src/opts/SkXfermode_opts_arm_neon.cpp'].flags += ['-mfpu=neon']
+        SOURCES['skia/src/opts/SkOpts_neon.cpp'].flags += ['-mfpu=neon']
 else:
     UNIFIED_SOURCES += [
         'skia/src/opts/SkBitmapProcState_opts_none.cpp',
         'skia/src/opts/SkBlitMask_opts_none.cpp',
         'skia/src/opts/SkBlitRow_opts_none.cpp',
-        'skia/src/opts/SkBlurImage_opts_none.cpp',
-        'skia/src/opts/SkMorphology_opts_none.cpp',
-        'skia/src/opts/SkTextureCompression_opts_none.cpp',
-        'skia/src/opts/SkUtils_opts_none.cpp',
-        'skia/src/opts/SkXfermode_opts_none.cpp',
     ]
 
 
-# can we find a better way of dealing with asm sources?
-
-# left out of UNIFIED_SOURCES for now; that's not C++ anyway, nothing else to unify it with
-#XXX: doesn't build with Apple's assembler
-if not CONFIG['INTEL_ARCHITECTURE'] and CONFIG['CPU_ARCH'] == 'arm' and CONFIG['GNU_CC'] and CONFIG['OS_TARGET'] != 'Darwin':
-    SOURCES += [
-        'skia/src/opts/memset.arm.S',
-    ]
-    if CONFIG['BUILD_ARM_NEON']:
-        SOURCES += [
-            'skia/src/opts/memset16_neon.S',
-            'skia/src/opts/memset32_neon.S',
-        ]
-
-if CONFIG['INTEL_ARCHITECTURE'] and CONFIG['GNU_CC'] and CONFIG['OS_ARCH'] != 'WINNT':
-    if CONFIG['CPU_ARCH'] == 'x86_64':
-        SOURCES += [
-            'skia/src/opts/SkBlitRow_opts_SSE4_x64_asm.S',
-        ]
-    else:
-        SOURCES += [
-            'skia/src/opts/SkBlitRow_opts_SSE4_asm.S',
-        ]
-
 # We allow warnings for third-party code that can be updated from upstream.
 ALLOW_COMPILER_WARNINGS = True
 
 FINAL_LIBRARY = 'gkmedias'
 LOCAL_INCLUDES += [
+    'skia/include/c',
     'skia/include/config',
     'skia/include/core',
     'skia/include/effects',
     'skia/include/gpu',
     'skia/include/images',
     'skia/include/pathops',
     'skia/include/pipe',
     'skia/include/ports',
+    'skia/include/private',
     'skia/include/utils',
     'skia/include/utils/mac',
     'skia/include/utils/win',
     'skia/include/views',
     'skia/src/core',
     'skia/src/gpu',
     'skia/src/gpu/effects',
     'skia/src/gpu/gl',
@@ -608,79 +663,77 @@ LOCAL_INCLUDES += [
     'skia/src/lazy',
     'skia/src/opts',
     'skia/src/sfnt',
     'skia/src/utils',
     'skia/src/utils/mac',
     'skia/src/utils/win',
 ]
 
-if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android', 'gtk2', 'gtk3', 'qt', 'gonk', 'cocoa', 'uikit'):
-    DEFINES['SK_USE_POSIX_THREADS'] = 1
-
-if CONFIG['INTEL_ARCHITECTURE'] and CONFIG['HAVE_TOOLCHAIN_SUPPORT_MSSSE3']:
-    DEFINES['SK_BUILD_SSSE3'] = 1
-
 if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android', 'gonk'):
     DEFINES['SK_FONTHOST_CAIRO_STANDALONE'] = 0
 
-if (CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android') or    (CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa') or (CONFIG['MOZ_WIDGET_TOOLKIT'] == 'uikit') or    (CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk') or    (CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt') or    CONFIG['MOZ_WIDGET_GTK']:
+if CONFIG['MOZ_WIDGET_TOOLKIT'] in {
+    'android',
+    'cocoa',
+    'uikit',
+    'gonk',
+    'qt',
+  } or CONFIG['MOZ_WIDGET_GTK']:
     DEFINES['SK_FONTHOST_DOES_NOT_USE_FONTMGR'] = 1
 
 # We should autogenerate these SSE related flags.
 
 if CONFIG['_MSC_VER']:
     # MSVC doesn't need special compiler flags, but Skia needs to be told that these files should
     # be built with the required SSE level or it will simply compile in stubs and cause runtime crashes
-    SOURCES['skia/src/opts/SkBitmapFilter_opts_SSE2.cpp'].flags += ['-DSK_CPU_SSE_LEVEL=20']
-    SOURCES['skia/src/opts/SkBitmapProcState_opts_SSE2.cpp'].flags += ['-DSK_CPU_SSE_LEVEL=20']
-    SOURCES['skia/src/opts/SkBitmapProcState_opts_SSSE3.cpp'].flags += ['-DSK_CPU_SSE_LEVEL=31']
-    SOURCES['skia/src/opts/SkBlitRect_opts_SSE2.cpp'].flags += ['-DSK_CPU_SSE_LEVEL=20']
-    SOURCES['skia/src/opts/SkBlitRow_opts_SSE2.cpp'].flags += ['-DSK_CPU_SSE_LEVEL=20']
-    SOURCES['skia/src/opts/SkBlurImage_opts_SSE2.cpp'].flags += ['-DSK_CPU_SSE_LEVEL=20']
-    SOURCES['skia/src/opts/SkBlurImage_opts_SSE4.cpp'].flags += ['-DSK_CPU_SSE_LEVEL=41']
-    SOURCES['skia/src/opts/SkMorphology_opts_SSE2.cpp'].flags += ['-DSK_CPU_SSE_LEVEL=20']
-    SOURCES['skia/src/opts/SkUtils_opts_SSE2.cpp'].flags += ['-DSK_CPU_SSE_LEVEL=20']
-    SOURCES['skia/src/opts/SkXfermode_opts_SSE2.cpp'].flags += ['-DSK_CPU_SSE_LEVEL=20']
-
+    SOURCES['skia/src/opts/SkBitmapFilter_opts_SSE2.cpp'].flags += ['/arch:SSE2 -DSK_CPU_SSE_LEVEL=20']
+    SOURCES['skia/src/opts/SkBitmapProcState_opts_SSE2.cpp'].flags += ['/arch:SSE2 -DSK_CPU_SSE_LEVEL=20']
+    SOURCES['skia/src/opts/SkBitmapProcState_opts_SSSE3.cpp'].flags += ['/arch:SSE2 -DSK_CPU_SSE_LEVEL=31']
+    SOURCES['skia/src/opts/SkBlitRow_opts_SSE2.cpp'].flags += ['/arch:SSE2 -DSK_CPU_SSE_LEVEL=20']
+    SOURCES['skia/src/opts/SkBlitRow_opts_SSE4.cpp'].flags += ['/arch:SSE2 -DSK_CPU_SSE_LEVEL=41']
+    SOURCES['skia/src/opts/SkOpts_ssse3.cpp'].flags += ['/arch:SSE2 -DSK_CPU_SSE_LEVEL=31']
+    SOURCES['skia/src/opts/SkOpts_sse41.cpp'].flags += ['/arch:SSE2 -DSK_CPU_SSE_LEVEL=41']
+    SOURCES['skia/src/opts/SkOpts_avx.cpp'].flags += ['/arch:AVX -DSK_CPU_SSE_LEVEL=51']
 if CONFIG['INTEL_ARCHITECTURE'] and CONFIG['GNU_CC']:
     SOURCES['skia/src/opts/SkBitmapFilter_opts_SSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
     SOURCES['skia/src/opts/SkBitmapProcState_opts_SSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
     SOURCES['skia/src/opts/SkBitmapProcState_opts_SSSE3.cpp'].flags += ['-mssse3']
-    SOURCES['skia/src/opts/SkBlitRect_opts_SSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
     SOURCES['skia/src/opts/SkBlitRow_opts_SSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
-    SOURCES['skia/src/opts/SkBlurImage_opts_SSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
-    SOURCES['skia/src/opts/SkBlurImage_opts_SSE4.cpp'].flags += ['-msse4.1']
-    SOURCES['skia/src/opts/SkMorphology_opts_SSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
-    SOURCES['skia/src/opts/SkUtils_opts_SSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
-    SOURCES['skia/src/opts/SkXfermode_opts_SSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
+    SOURCES['skia/src/opts/SkBlitRow_opts_SSE4.cpp'].flags += ['-msse4.1']
+    SOURCES['skia/src/opts/SkOpts_ssse3.cpp'].flags += ['-mssse3']
+    SOURCES['skia/src/opts/SkOpts_sse41.cpp'].flags += ['-msse4.1']
+    SOURCES['skia/src/opts/SkOpts_avx.cpp'].flags += ['-mavx']
 elif CONFIG['CPU_ARCH'] == 'arm' and CONFIG['GNU_CC'] and CONFIG['BUILD_ARM_NEON']:
-    DEFINES['__ARM_HAVE_OPTIONAL_NEON_SUPPORT'] = 1
-    DEFINES['USE_ANDROID_NDK_CPU_FEATURES'] = 0
+    DEFINES['SK_ARM_HAS_OPTIONAL_NEON'] = 1
 elif CONFIG['CLANG_CL']:
     SOURCES['skia/src/opts/SkBitmapProcState_opts_SSSE3.cpp'].flags += ['-mssse3']
-    SOURCES['skia/src/opts/SkBlurImage_opts_SSE4.cpp'].flags += ['-msse4.1']
+    SOURCES['skia/src/opts/SkBlitRow_opts_SSE4.cpp'].flags += ['-msse4.1']
+    SOURCES['skia/src/opts/SkOpts_ssse3.cpp'].flags += ['-mssse3']
+    SOURCES['skia/src/opts/SkOpts_sse41.cpp'].flags += ['-msse4.1']
+    SOURCES['skia/src/opts/SkOpts_avx.cpp'].flags += ['-mavx']
 
 DEFINES['SKIA_IMPLEMENTATION'] = 1
-DEFINES['GR_IMPLEMENTATION'] = 1
 
 if CONFIG['GNU_CXX']:
     CXXFLAGS += [
         '-Wno-deprecated-declarations',
         '-Wno-overloaded-virtual',
         '-Wno-sign-compare',
         '-Wno-unused-function',
     ]
     if CONFIG['CLANG_CXX']:
         CXXFLAGS += [
             '-Wno-implicit-fallthrough',
             '-Wno-inconsistent-missing-override',
             '-Wno-macro-redefined',
             '-Wno-unused-private-field',
         ]
+        # work around inline function linking bug with template arguments
+        SOURCES['skia/src/gpu/GrResourceCache.cpp'].flags += ['-fkeep-inline-functions']
     else:
         CXXFLAGS += [
             '-Wno-logical-op',
             '-Wno-maybe-uninitialized',
         ]
     if CONFIG['CPU_ARCH'] == 'arm':
         SOURCES['skia/src/opts/SkBlitRow_opts_arm.cpp'].flags += ['-fomit-frame-pointer']