Bug 1530471 - remove GLContext SkiaGL glue r=jgilbert
authorLee Salzman <lsalzman@mozilla.com>
Mon, 25 Feb 2019 21:27:42 +0000
changeset 519660 6d0e1f99b8acd5baaa7ca194d852c48b4d79ee75
parent 519659 62aabc4a65412a9f9689638cdb38584e414cc7e8
child 519661 d2af6ff2f10d00f8c03f8924d0d9b3e00ec2e918
push id10862
push userffxbld-merge
push dateMon, 11 Mar 2019 13:01:11 +0000
treeherdermozilla-beta@a2e7f5c935da [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjgilbert
bugs1530471
milestone67.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1530471 - remove GLContext SkiaGL glue r=jgilbert Depends on D21053 Differential Revision: https://phabricator.services.mozilla.com/D21054
gfx/gl/SkiaGLGlue.cpp
gfx/gl/SkiaGLGlue.h
gfx/gl/moz.build
deleted file mode 100644
--- a/gfx/gl/SkiaGLGlue.cpp
+++ /dev/null
@@ -1,375 +0,0 @@
-/* -*- Mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 4; -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "skia/include/gpu/GrContext.h"
-#include "skia/include/gpu/gl/GrGLInterface.h"
-#include "mozilla/gfx/2D.h"
-#include "mozilla/ThreadLocal.h"
-#include "mozilla/DebugOnly.h"
-
-/* SkPostConfig.h includes windows.h, which includes windef.h
- * which redefines min/max. We don't want that. */
-#ifdef _WIN32
-#  undef min
-#  undef max
-#endif
-
-#include "GLContext.h"
-#include "SkiaGLGlue.h"
-
-using mozilla::gl::GLContext;
-using mozilla::gl::GLFeature;
-using mozilla::gl::SkiaGLGlue;
-
-template <typename R, typename... A>
-static inline GrGLFunction<R (*)(A...)> WrapGL(RefPtr<GLContext> aContext,
-                                               R (GLContext::*aFunc)(A...)) {
-  return [aContext, aFunc](A... args) -> R {
-    aContext->MakeCurrent();
-    return (aContext->*aFunc)(args...);
-  };
-}
-
-template <typename R, typename... A>
-static inline GrGLFunction<R (*)(A...)> WrapGL(RefPtr<GLContext> aContext,
-                                               R (*aFunc)(GLContext*, A...)) {
-  return [aContext, aFunc](A... args) -> R {
-    aContext->MakeCurrent();
-    return (*aFunc)(aContext, args...);
-  };
-}
-
-// Core GL functions required by Ganesh
-
-static const GLubyte* glGetString_mozilla(GLContext* aContext, GrGLenum aName) {
-  // GLContext only exposes a OpenGL 2.0 style API, so we have to intercept a
-  // bunch of checks that Ganesh makes to determine which capabilities are
-  // present on the GL implementation and change them to match what GLContext
-  // actually exposes.
-
-  if (aName == LOCAL_GL_VERSION) {
-    if (aContext->IsGLES()) {
-      return reinterpret_cast<const GLubyte*>("OpenGL ES 2.0");
-    }
-    return reinterpret_cast<const GLubyte*>("2.0");
-  } else if (aName == LOCAL_GL_EXTENSIONS) {
-    // Only expose the bare minimum extensions we want to support to ensure a
-    // functional Ganesh as GLContext only exposes certain extensions
-    static bool extensionsStringBuilt = false;
-    static char extensionsString[1024];
-
-    if (!extensionsStringBuilt) {
-      extensionsString[0] = '\0';
-
-      if (aContext->IsGLES()) {
-        // OES is only applicable to GLES2
-        if (aContext->IsExtensionSupported(
-                GLContext::OES_packed_depth_stencil)) {
-          strcat(extensionsString, "GL_OES_packed_depth_stencil ");
-        }
-
-        if (aContext->IsExtensionSupported(GLContext::OES_rgb8_rgba8)) {
-          strcat(extensionsString, "GL_OES_rgb8_rgba8 ");
-        }
-
-        if (aContext->IsExtensionSupported(GLContext::OES_texture_npot)) {
-          strcat(extensionsString, "GL_OES_texture_npot ");
-        }
-
-        if (aContext->IsExtensionSupported(
-                GLContext::OES_vertex_array_object)) {
-          strcat(extensionsString, "GL_OES_vertex_array_object ");
-        }
-
-        if (aContext->IsSupported(GLFeature::standard_derivatives)) {
-          strcat(extensionsString, "GL_OES_standard_derivatives ");
-        }
-      } else {
-        if (aContext->IsSupported(GLFeature::framebuffer_object)) {
-          strcat(extensionsString, "GL_ARB_framebuffer_object ");
-        } else if (aContext->IsExtensionSupported(
-                       GLContext::EXT_framebuffer_object)) {
-          strcat(extensionsString, "GL_EXT_framebuffer_object ");
-        }
-
-        if (aContext->IsSupported(GLFeature::texture_rg)) {
-          strcat(extensionsString, "GL_ARB_texture_rg ");
-        }
-      }
-
-      if (aContext->IsExtensionSupported(
-              GLContext::EXT_texture_format_BGRA8888)) {
-        strcat(extensionsString, "GL_EXT_texture_format_BGRA8888 ");
-      }
-
-      if (aContext->IsExtensionSupported(GLContext::EXT_packed_depth_stencil)) {
-        strcat(extensionsString, "GL_EXT_packed_depth_stencil ");
-      }
-
-      if (aContext->IsExtensionSupported(GLContext::EXT_bgra)) {
-        strcat(extensionsString, "GL_EXT_bgra ");
-      }
-
-      if (aContext->IsExtensionSupported(GLContext::EXT_read_format_bgra)) {
-        strcat(extensionsString, "GL_EXT_read_format_bgra ");
-      }
-
-      extensionsStringBuilt = true;
-#ifdef DEBUG
-      printf_stderr("Exported SkiaGL extensions: %s\n", extensionsString);
-#endif
-    }
-
-    return reinterpret_cast<const GLubyte*>(extensionsString);
-
-  } else if (aName == LOCAL_GL_SHADING_LANGUAGE_VERSION) {
-    if (aContext->IsGLES()) {
-      return reinterpret_cast<const GLubyte*>("OpenGL ES GLSL ES 1.0");
-    }
-    return reinterpret_cast<const GLubyte*>("1.10");
-  }
-
-  return aContext->fGetString(aName);
-}
-
-static GrGLInterface* CreateGrGLInterfaceFromGLContext(GLContext* context) {
-  auto* i = new GrGLInterface();
-
-  context->MakeCurrent();
-
-  // We support both desktop GL and GLES2
-  if (context->IsGLES()) {
-    i->fStandard = kGLES_GrGLStandard;
-  } else {
-    i->fStandard = kGL_GrGLStandard;
-  }
-
-  GrGLFunction<GrGLGetStringFn> getString =
-      WrapGL(context, &glGetString_mozilla);
-  GrGLFunction<GrGLGetIntegervFn> getIntegerv =
-      WrapGL(context, &GLContext::fGetIntegerv);
-
-  GrGLExtensions extensions;
-  if (!extensions.init(i->fStandard, getString, nullptr, getIntegerv)) {
-    delete i;
-    return nullptr;
-  }
-
-  i->fExtensions.swap(&extensions);
-
-  // Core GL functions required by Ganesh
-  i->fFunctions.fActiveTexture = WrapGL(context, &GLContext::fActiveTexture);
-  i->fFunctions.fAttachShader = WrapGL(context, &GLContext::fAttachShader);
-  i->fFunctions.fBindAttribLocation =
-      WrapGL(context, &GLContext::fBindAttribLocation);
-  i->fFunctions.fBindBuffer = WrapGL(context, &GLContext::fBindBuffer);
-  i->fFunctions.fBindFramebuffer =
-      WrapGL(context, &GLContext::fBindFramebuffer);
-  i->fFunctions.fBindRenderbuffer =
-      WrapGL(context, &GLContext::fBindRenderbuffer);
-  i->fFunctions.fBindTexture = WrapGL(context, &GLContext::fBindTexture);
-  i->fFunctions.fBlendFunc = WrapGL(context, &GLContext::fBlendFunc);
-  i->fFunctions.fBlendColor = WrapGL(context, &GLContext::fBlendColor);
-  i->fFunctions.fBlendEquation = WrapGL(context, &GLContext::fBlendEquation);
-  i->fFunctions.fBufferData = WrapGL(context, &GLContext::fBufferData);
-  i->fFunctions.fBufferSubData = WrapGL(context, &GLContext::fBufferSubData);
-  i->fFunctions.fCheckFramebufferStatus =
-      WrapGL(context, &GLContext::fCheckFramebufferStatus);
-  i->fFunctions.fClear = WrapGL(context, &GLContext::fClear);
-  i->fFunctions.fClearColor = WrapGL(context, &GLContext::fClearColor);
-  i->fFunctions.fClearStencil = WrapGL(context, &GLContext::fClearStencil);
-  i->fFunctions.fColorMask = WrapGL(context, &GLContext::fColorMask);
-  i->fFunctions.fCompileShader = WrapGL(context, &GLContext::fCompileShader);
-  i->fFunctions.fCompressedTexImage2D =
-      WrapGL(context, &GLContext::fCompressedTexImage2D);
-  i->fFunctions.fCompressedTexSubImage2D =
-      WrapGL(context, &GLContext::fCompressedTexSubImage2D);
-  i->fFunctions.fCopyTexSubImage2D =
-      WrapGL(context, &GLContext::fCopyTexSubImage2D);
-  i->fFunctions.fCreateProgram = WrapGL(context, &GLContext::fCreateProgram);
-  i->fFunctions.fCreateShader = WrapGL(context, &GLContext::fCreateShader);
-  i->fFunctions.fCullFace = WrapGL(context, &GLContext::fCullFace);
-  i->fFunctions.fDeleteBuffers = WrapGL(context, &GLContext::fDeleteBuffers);
-  i->fFunctions.fDeleteFramebuffers =
-      WrapGL(context, &GLContext::fDeleteFramebuffers);
-  i->fFunctions.fDeleteProgram = WrapGL(context, &GLContext::fDeleteProgram);
-  i->fFunctions.fDeleteRenderbuffers =
-      WrapGL(context, &GLContext::fDeleteRenderbuffers);
-  i->fFunctions.fDeleteShader = WrapGL(context, &GLContext::fDeleteShader);
-  i->fFunctions.fDeleteTextures = WrapGL(context, &GLContext::fDeleteTextures);
-  i->fFunctions.fDepthMask = WrapGL(context, &GLContext::fDepthMask);
-  i->fFunctions.fDisable = WrapGL(context, &GLContext::fDisable);
-  i->fFunctions.fDisableVertexAttribArray =
-      WrapGL(context, &GLContext::fDisableVertexAttribArray);
-  i->fFunctions.fDrawArrays = WrapGL(context, &GLContext::fDrawArrays);
-  i->fFunctions.fDrawElements = WrapGL(context, &GLContext::fDrawElements);
-  i->fFunctions.fDrawRangeElements =
-      WrapGL(context, &GLContext::fDrawRangeElements);
-  i->fFunctions.fEnable = WrapGL(context, &GLContext::fEnable);
-  i->fFunctions.fEnableVertexAttribArray =
-      WrapGL(context, &GLContext::fEnableVertexAttribArray);
-  i->fFunctions.fFinish = WrapGL(context, &GLContext::fFinish);
-  i->fFunctions.fFlush = WrapGL(context, &GLContext::fFlush);
-  i->fFunctions.fFramebufferRenderbuffer =
-      WrapGL(context, &GLContext::fFramebufferRenderbuffer);
-  i->fFunctions.fFramebufferTexture2D =
-      WrapGL(context, &GLContext::fFramebufferTexture2D);
-  i->fFunctions.fFrontFace = WrapGL(context, &GLContext::fFrontFace);
-  i->fFunctions.fGenBuffers = WrapGL(context, &GLContext::fGenBuffers);
-  i->fFunctions.fGenFramebuffers =
-      WrapGL(context, &GLContext::fGenFramebuffers);
-  i->fFunctions.fGenRenderbuffers =
-      WrapGL(context, &GLContext::fGenRenderbuffers);
-  i->fFunctions.fGetFramebufferAttachmentParameteriv =
-      WrapGL(context, &GLContext::fGetFramebufferAttachmentParameteriv);
-  i->fFunctions.fGenTextures = WrapGL(context, &GLContext::fGenTextures);
-  i->fFunctions.fGenerateMipmap = WrapGL(context, &GLContext::fGenerateMipmap);
-  i->fFunctions.fGetBufferParameteriv =
-      WrapGL(context, &GLContext::fGetBufferParameteriv);
-  i->fFunctions.fGetError = WrapGL(context, &GLContext::fGetError);
-  i->fFunctions.fGetIntegerv = getIntegerv;
-  i->fFunctions.fGetProgramInfoLog =
-      WrapGL(context, &GLContext::fGetProgramInfoLog);
-  i->fFunctions.fGetProgramiv = WrapGL(context, &GLContext::fGetProgramiv);
-  i->fFunctions.fGetRenderbufferParameteriv =
-      WrapGL(context, &GLContext::fGetRenderbufferParameteriv);
-  i->fFunctions.fGetShaderInfoLog =
-      WrapGL(context, &GLContext::fGetShaderInfoLog);
-  i->fFunctions.fGetShaderiv = WrapGL(context, &GLContext::fGetShaderiv);
-  i->fFunctions.fGetShaderPrecisionFormat =
-      WrapGL(context, &GLContext::fGetShaderPrecisionFormat);
-  i->fFunctions.fGetString = getString;
-  i->fFunctions.fGetUniformLocation =
-      WrapGL(context, &GLContext::fGetUniformLocation);
-  i->fFunctions.fIsTexture = WrapGL(context, &GLContext::fIsTexture);
-  i->fFunctions.fLineWidth = WrapGL(context, &GLContext::fLineWidth);
-  i->fFunctions.fLinkProgram = WrapGL(context, &GLContext::fLinkProgram);
-  i->fFunctions.fPixelStorei = WrapGL(context, &GLContext::fPixelStorei);
-  i->fFunctions.fPolygonMode = WrapGL(context, &GLContext::fPolygonMode);
-  i->fFunctions.fReadPixels = WrapGL(context, &GLContext::fReadPixels);
-  i->fFunctions.fRenderbufferStorage =
-      WrapGL(context, &GLContext::fRenderbufferStorage);
-  i->fFunctions.fScissor = WrapGL(context, &GLContext::fScissor);
-  i->fFunctions.fShaderSource = WrapGL(context, &GLContext::fShaderSource);
-  i->fFunctions.fStencilFunc = WrapGL(context, &GLContext::fStencilFunc);
-  i->fFunctions.fStencilFuncSeparate =
-      WrapGL(context, &GLContext::fStencilFuncSeparate);
-  i->fFunctions.fStencilMask = WrapGL(context, &GLContext::fStencilMask);
-  i->fFunctions.fStencilMaskSeparate =
-      WrapGL(context, &GLContext::fStencilMaskSeparate);
-  i->fFunctions.fStencilOp = WrapGL(context, &GLContext::fStencilOp);
-  i->fFunctions.fStencilOpSeparate =
-      WrapGL(context, &GLContext::fStencilOpSeparate);
-  i->fFunctions.fTexImage2D = WrapGL(context, &GLContext::fTexImage2D);
-  i->fFunctions.fTexParameteri = WrapGL(context, &GLContext::fTexParameteri);
-  i->fFunctions.fTexParameteriv = WrapGL(context, &GLContext::fTexParameteriv);
-  i->fFunctions.fTexSubImage2D = WrapGL(context, &GLContext::fTexSubImage2D);
-  i->fFunctions.fUniform1f = WrapGL(context, &GLContext::fUniform1f);
-  i->fFunctions.fUniform1i = WrapGL(context, &GLContext::fUniform1i);
-  i->fFunctions.fUniform1fv = WrapGL(context, &GLContext::fUniform1fv);
-  i->fFunctions.fUniform1iv = WrapGL(context, &GLContext::fUniform1iv);
-  i->fFunctions.fUniform2f = WrapGL(context, &GLContext::fUniform2f);
-  i->fFunctions.fUniform2i = WrapGL(context, &GLContext::fUniform2i);
-  i->fFunctions.fUniform2fv = WrapGL(context, &GLContext::fUniform2fv);
-  i->fFunctions.fUniform2iv = WrapGL(context, &GLContext::fUniform2iv);
-  i->fFunctions.fUniform3f = WrapGL(context, &GLContext::fUniform3f);
-  i->fFunctions.fUniform3i = WrapGL(context, &GLContext::fUniform3i);
-  i->fFunctions.fUniform3fv = WrapGL(context, &GLContext::fUniform3fv);
-  i->fFunctions.fUniform3iv = WrapGL(context, &GLContext::fUniform3iv);
-  i->fFunctions.fUniform4f = WrapGL(context, &GLContext::fUniform4f);
-  i->fFunctions.fUniform4i = WrapGL(context, &GLContext::fUniform4i);
-  i->fFunctions.fUniform4fv = WrapGL(context, &GLContext::fUniform4fv);
-  i->fFunctions.fUniform4iv = WrapGL(context, &GLContext::fUniform4iv);
-  i->fFunctions.fUniformMatrix2fv =
-      WrapGL(context, &GLContext::fUniformMatrix2fv);
-  i->fFunctions.fUniformMatrix3fv =
-      WrapGL(context, &GLContext::fUniformMatrix3fv);
-  i->fFunctions.fUniformMatrix4fv =
-      WrapGL(context, &GLContext::fUniformMatrix4fv);
-  i->fFunctions.fUseProgram = WrapGL(context, &GLContext::fUseProgram);
-  i->fFunctions.fVertexAttrib1f = WrapGL(context, &GLContext::fVertexAttrib1f);
-  i->fFunctions.fVertexAttrib2fv =
-      WrapGL(context, &GLContext::fVertexAttrib2fv);
-  i->fFunctions.fVertexAttrib3fv =
-      WrapGL(context, &GLContext::fVertexAttrib3fv);
-  i->fFunctions.fVertexAttrib4fv =
-      WrapGL(context, &GLContext::fVertexAttrib4fv);
-  i->fFunctions.fVertexAttribPointer =
-      WrapGL(context, &GLContext::fVertexAttribPointer);
-  i->fFunctions.fViewport = WrapGL(context, &GLContext::fViewport);
-
-  // Required for either desktop OpenGL 2.0 or OpenGL ES 2.0
-  i->fFunctions.fStencilFuncSeparate =
-      WrapGL(context, &GLContext::fStencilFuncSeparate);
-  i->fFunctions.fStencilMaskSeparate =
-      WrapGL(context, &GLContext::fStencilMaskSeparate);
-  i->fFunctions.fStencilOpSeparate =
-      WrapGL(context, &GLContext::fStencilOpSeparate);
-
-  // GLContext supports glMapBuffer
-  i->fFunctions.fMapBuffer = WrapGL(context, &GLContext::fMapBuffer);
-  i->fFunctions.fUnmapBuffer = WrapGL(context, &GLContext::fUnmapBuffer);
-
-  // GLContext supports glRenderbufferStorageMultisample/glBlitFramebuffer
-  i->fFunctions.fRenderbufferStorageMultisample =
-      WrapGL(context, &GLContext::fRenderbufferStorageMultisample);
-  i->fFunctions.fBlitFramebuffer =
-      WrapGL(context, &GLContext::fBlitFramebuffer);
-
-  // GLContext supports glCompressedTexImage2D
-  i->fFunctions.fCompressedTexImage2D =
-      WrapGL(context, &GLContext::fCompressedTexImage2D);
-
-  // GL_OES_vertex_array_object
-  i->fFunctions.fBindVertexArray =
-      WrapGL(context, &GLContext::fBindVertexArray);
-  i->fFunctions.fDeleteVertexArrays =
-      WrapGL(context, &GLContext::fDeleteVertexArrays);
-  i->fFunctions.fGenVertexArrays =
-      WrapGL(context, &GLContext::fGenVertexArrays);
-
-  // Desktop GL
-  i->fFunctions.fGetTexLevelParameteriv =
-      WrapGL(context, &GLContext::fGetTexLevelParameteriv);
-  i->fFunctions.fDrawBuffer = WrapGL(context, &GLContext::fDrawBuffer);
-  i->fFunctions.fReadBuffer = WrapGL(context, &GLContext::fReadBuffer);
-
-  // Desktop OpenGL > 1.5
-  i->fFunctions.fGenQueries = WrapGL(context, &GLContext::fGenQueries);
-  i->fFunctions.fDeleteQueries = WrapGL(context, &GLContext::fDeleteQueries);
-  i->fFunctions.fBeginQuery = WrapGL(context, &GLContext::fBeginQuery);
-  i->fFunctions.fEndQuery = WrapGL(context, &GLContext::fEndQuery);
-  i->fFunctions.fGetQueryiv = WrapGL(context, &GLContext::fGetQueryiv);
-  i->fFunctions.fGetQueryObjectiv =
-      WrapGL(context, &GLContext::fGetQueryObjectiv);
-  i->fFunctions.fGetQueryObjectuiv =
-      WrapGL(context, &GLContext::fGetQueryObjectuiv);
-
-  // Desktop OpenGL > 2.0
-  i->fFunctions.fDrawBuffers = WrapGL(context, &GLContext::fDrawBuffers);
-
-  return i;
-}
-
-SkiaGLGlue::SkiaGLGlue(GLContext* context) : mGLContext(context) {
-  mGrGLInterface.reset(CreateGrGLInterfaceFromGLContext(mGLContext));
-  mGrContext = GrContext::MakeGL(mGrGLInterface);
-}
-
-SkiaGLGlue::~SkiaGLGlue() {
-  /*
-   * These members have inter-dependencies, but do not keep each other alive, so
-   * destruction order is very important here: mGrContext uses mGrGLInterface,
-   * and through it, uses mGLContext
-   */
-  mGrContext = nullptr;
-  if (mGrGLInterface) {
-    // Ensure that no references to the GLContext remain, even if the GrContext
-    // still lives.
-    mGrGLInterface->fFunctions = GrGLInterface::Functions();
-    mGrGLInterface = nullptr;
-  }
-  mGLContext = nullptr;
-}
deleted file mode 100644
--- a/gfx/gl/SkiaGLGlue.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 4; -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#ifndef SKIA_GL_GLUE_H_
-#define SKIA_GL_GLUE_H_
-
-#ifdef USE_SKIA_GPU
-
-#  include "skia/include/core/SkRefCnt.h"
-#  include "mozilla/RefPtr.h"
-
-struct GrGLInterface;
-class GrContext;
-
-namespace mozilla {
-namespace gl {
-
-class GLContext;
-
-class SkiaGLGlue : public GenericAtomicRefCounted {
- public:
-  MOZ_DECLARE_REFCOUNTED_VIRTUAL_TYPENAME(SkiaGLGlue, override)
-
-  explicit SkiaGLGlue(GLContext* context);
-  GLContext* GetGLContext() const { return mGLContext.get(); }
-  GrContext* GetGrContext() const { return mGrContext.get(); }
-
- protected:
-  virtual ~SkiaGLGlue();
-
- private:
-  RefPtr<GLContext> mGLContext;
-  sk_sp<GrGLInterface> mGrGLInterface;
-  sk_sp<GrContext> mGrContext;
-};
-
-}  // namespace gl
-}  // namespace mozilla
-
-#else  // USE_SKIA_GPU
-
-class GrContext;
-
-namespace mozilla {
-namespace gl {
-
-class GLContext;
-
-class SkiaGLGlue : public GenericAtomicRefCounted {
- public:
-  SkiaGLGlue(GLContext* context);
-  GLContext* GetGLContext() const { return nullptr; }
-  GrContext* GetGrContext() const { return nullptr; }
-};
-
-}  // namespace gl
-}  // namespace mozilla
-
-#endif  // USE_SKIA_GPU
-
-#endif  // SKIA_GL_GLUE_H_
--- a/gfx/gl/moz.build
+++ b/gfx/gl/moz.build
@@ -69,24 +69,16 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'wind
         'WGLLibrary.h',
     ]
     UNIFIED_SOURCES += [
         'GLBlitHelperD3D.cpp',
         'GLContextProviderWGL.cpp',
         'SharedSurfaceANGLE.cpp',
         'SharedSurfaceD3D11Interop.cpp',
     ]
-if CONFIG['MOZ_ENABLE_SKIA_GPU']:
-    EXPORTS += ['SkiaGLGlue.h']
-    SOURCES += [
-        'SkiaGLGlue.cpp',
-    ]
-    if CONFIG['CC_TYPE'] == 'clang':
-        # Suppress warnings from Skia header files.
-        SOURCES['SkiaGLGlue.cpp'].flags += ['-Wno-implicit-fallthrough']
 
 if gl_provider == 'CGL':
     # These files include Mac headers that are unfriendly to unified builds
     SOURCES += [
         "GLContextProviderCGL.mm",
     ]
     EXPORTS += [
         'GLContextCGL.h',