Move GrGpuResource GrSurface and GrTexture into src.
Must land https://chromium-review.googlesource.com/c/chromium/src/+/2087980
before this can land.
Bug: skia:7966
Change-Id: I60bbb1765bfbb2c96b2bc0c9826b6b9d57eb2a03
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/275077
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
diff --git a/src/core/SkDeferredDisplayListRecorder.cpp b/src/core/SkDeferredDisplayListRecorder.cpp
index 00f5c5f..996be4c 100644
--- a/src/core/SkDeferredDisplayListRecorder.cpp
+++ b/src/core/SkDeferredDisplayListRecorder.cpp
@@ -61,10 +61,10 @@
#include "include/core/SkPromiseImageTexture.h"
#include "include/core/SkYUVASizeInfo.h"
-#include "include/gpu/GrTexture.h"
#include "src/gpu/GrContextPriv.h"
#include "src/gpu/GrProxyProvider.h"
#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/SkGr.h"
#include "src/image/SkImage_Gpu.h"
#include "src/image/SkImage_GpuYUVA.h"
diff --git a/src/effects/imagefilters/SkDisplacementMapEffect.cpp b/src/effects/imagefilters/SkDisplacementMapEffect.cpp
index fbac8fa..5c2dc81 100644
--- a/src/effects/imagefilters/SkDisplacementMapEffect.cpp
+++ b/src/effects/imagefilters/SkDisplacementMapEffect.cpp
@@ -15,7 +15,6 @@
#include "src/core/SkSpecialImage.h"
#include "src/core/SkWriteBuffer.h"
#if SK_SUPPORT_GPU
-#include "include/gpu/GrTexture.h"
#include "include/private/GrRecordingContext.h"
#include "src/gpu/GrCaps.h"
#include "src/gpu/GrClip.h"
@@ -23,6 +22,7 @@
#include "src/gpu/GrCoordTransform.h"
#include "src/gpu/GrRecordingContextPriv.h"
#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTextureProxy.h"
#include "src/gpu/SkGr.h"
#include "src/gpu/effects/GrTextureDomain.h"
diff --git a/src/effects/imagefilters/SkLightingImageFilter.cpp b/src/effects/imagefilters/SkLightingImageFilter.cpp
index abcf3ac..c7e2e11 100644
--- a/src/effects/imagefilters/SkLightingImageFilter.cpp
+++ b/src/effects/imagefilters/SkLightingImageFilter.cpp
@@ -17,7 +17,6 @@
#include "src/core/SkWriteBuffer.h"
#if SK_SUPPORT_GPU
-#include "include/gpu/GrTexture.h"
#include "include/private/GrRecordingContext.h"
#include "src/gpu/GrCaps.h"
#include "src/gpu/GrFixedClip.h"
@@ -25,6 +24,7 @@
#include "src/gpu/GrPaint.h"
#include "src/gpu/GrRecordingContextPriv.h"
#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTextureProxy.h"
#include "src/gpu/SkGr.h"
diff --git a/src/effects/imagefilters/SkMagnifierImageFilter.cpp b/src/effects/imagefilters/SkMagnifierImageFilter.cpp
index e42b8ab..835dd1a 100644
--- a/src/effects/imagefilters/SkMagnifierImageFilter.cpp
+++ b/src/effects/imagefilters/SkMagnifierImageFilter.cpp
@@ -18,9 +18,9 @@
////////////////////////////////////////////////////////////////////////////////
#if SK_SUPPORT_GPU
#include "include/gpu/GrContext.h"
-#include "include/gpu/GrTexture.h"
#include "src/gpu/GrColorSpaceXform.h"
#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/effects/generated/GrMagnifierEffect.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
diff --git a/src/effects/imagefilters/SkMorphologyImageFilter.cpp b/src/effects/imagefilters/SkMorphologyImageFilter.cpp
index 03087e8..a4b970e 100644
--- a/src/effects/imagefilters/SkMorphologyImageFilter.cpp
+++ b/src/effects/imagefilters/SkMorphologyImageFilter.cpp
@@ -17,13 +17,13 @@
#if SK_SUPPORT_GPU
#include "include/gpu/GrContext.h"
-#include "include/gpu/GrTexture.h"
#include "include/private/GrRecordingContext.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/GrTexture.h"
#include "src/gpu/GrTextureProxy.h"
#include "src/gpu/SkGr.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
diff --git a/src/gpu/GrAHardwareBufferImageGenerator.cpp b/src/gpu/GrAHardwareBufferImageGenerator.cpp
index 45a7f01..174fb35 100644
--- a/src/gpu/GrAHardwareBufferImageGenerator.cpp
+++ b/src/gpu/GrAHardwareBufferImageGenerator.cpp
@@ -18,7 +18,6 @@
#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 "src/core/SkExchange.h"
@@ -30,6 +29,7 @@
#include "src/gpu/GrResourceCache.h"
#include "src/gpu/GrResourceProvider.h"
#include "src/gpu/GrResourceProviderPriv.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTextureProxy.h"
#include "src/gpu/gl/GrGLDefines.h"
diff --git a/src/gpu/GrAuditTrail.h b/src/gpu/GrAuditTrail.h
index dd6549e..58908a0 100644
--- a/src/gpu/GrAuditTrail.h
+++ b/src/gpu/GrAuditTrail.h
@@ -11,9 +11,9 @@
#include "include/core/SkRect.h"
#include "include/core/SkString.h"
#include "include/gpu/GrConfig.h"
-#include "include/gpu/GrGpuResource.h"
#include "include/private/SkTArray.h"
#include "include/private/SkTHash.h"
+#include "src/gpu/GrGpuResource.h"
#include "src/gpu/GrRenderTargetProxy.h"
class GrOp;
diff --git a/src/gpu/GrBackendTextureImageGenerator.cpp b/src/gpu/GrBackendTextureImageGenerator.cpp
index 2a807d6..6b90c80 100644
--- a/src/gpu/GrBackendTextureImageGenerator.cpp
+++ b/src/gpu/GrBackendTextureImageGenerator.cpp
@@ -6,7 +6,6 @@
*/
#include "include/gpu/GrContext.h"
-#include "include/gpu/GrTexture.h"
#include "include/private/GrRecordingContext.h"
#include "src/core/SkMessageBus.h"
#include "src/gpu/GrBackendTextureImageGenerator.h"
@@ -19,6 +18,7 @@
#include "src/gpu/GrResourceProvider.h"
#include "src/gpu/GrResourceProviderPriv.h"
#include "src/gpu/GrSemaphore.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTexturePriv.h"
#include "src/gpu/GrTextureProxyPriv.h"
#include "src/gpu/SkGr.h"
diff --git a/src/gpu/GrCaps.cpp b/src/gpu/GrCaps.cpp
index 1d61665..a00397d 100644
--- a/src/gpu/GrCaps.cpp
+++ b/src/gpu/GrCaps.cpp
@@ -7,9 +7,9 @@
#include "include/gpu/GrBackendSurface.h"
#include "include/gpu/GrContextOptions.h"
-#include "include/gpu/GrSurface.h"
#include "include/private/GrTypesPriv.h"
#include "src/gpu/GrCaps.h"
+#include "src/gpu/GrSurface.h"
#include "src/gpu/GrSurfaceProxy.h"
#include "src/gpu/GrWindowRectangles.h"
#include "src/utils/SkJSONWriter.h"
diff --git a/src/gpu/GrContextPriv.cpp b/src/gpu/GrContextPriv.cpp
index 9a57ac5..9146ab2 100644
--- a/src/gpu/GrContextPriv.cpp
+++ b/src/gpu/GrContextPriv.cpp
@@ -8,7 +8,6 @@
#include "src/gpu/GrContextPriv.h"
#include "include/gpu/GrContextThreadSafeProxy.h"
-#include "include/gpu/GrTexture.h"
#include "src/gpu/GrAuditTrail.h"
#include "src/gpu/GrContextThreadSafeProxyPriv.h"
#include "src/gpu/GrDrawingManager.h"
@@ -18,6 +17,7 @@
#include "src/gpu/GrSurfaceContext.h"
#include "src/gpu/GrSurfaceContextPriv.h"
#include "src/gpu/GrSurfacePriv.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/SkGr.h"
#include "src/gpu/effects/GrSkSLFP.h"
#include "src/gpu/effects/generated/GrConfigConversionEffect.h"
diff --git a/src/gpu/GrDrawOpAtlas.cpp b/src/gpu/GrDrawOpAtlas.cpp
index ee6b5da..c8f2aea 100644
--- a/src/gpu/GrDrawOpAtlas.cpp
+++ b/src/gpu/GrDrawOpAtlas.cpp
@@ -8,7 +8,6 @@
#include "src/gpu/GrDrawOpAtlas.h"
#include "include/gpu/GrContext.h"
-#include "include/gpu/GrTexture.h"
#include "src/core/SkOpts.h"
#include "src/gpu/GrContextPriv.h"
#include "src/gpu/GrGpu.h"
@@ -18,6 +17,7 @@
#include "src/gpu/GrResourceProvider.h"
#include "src/gpu/GrResourceProviderPriv.h"
#include "src/gpu/GrSurfaceProxyPriv.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTracing.h"
#ifdef DUMP_ATLAS_DATA
diff --git a/src/gpu/GrDrawingManager.cpp b/src/gpu/GrDrawingManager.cpp
index 6e919da..ff5deb2 100644
--- a/src/gpu/GrDrawingManager.cpp
+++ b/src/gpu/GrDrawingManager.cpp
@@ -9,7 +9,6 @@
#include "include/core/SkDeferredDisplayList.h"
#include "include/gpu/GrBackendSemaphore.h"
-#include "include/gpu/GrTexture.h"
#include "include/private/GrRecordingContext.h"
#include "src/core/SkTTopoSort.h"
#include "src/gpu/GrAuditTrail.h"
@@ -28,6 +27,7 @@
#include "src/gpu/GrSoftwarePathRenderer.h"
#include "src/gpu/GrSurfaceContext.h"
#include "src/gpu/GrSurfaceProxyPriv.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTexturePriv.h"
#include "src/gpu/GrTextureProxy.h"
#include "src/gpu/GrTextureProxyPriv.h"
diff --git a/src/gpu/GrGpuBuffer.h b/src/gpu/GrGpuBuffer.h
index 7e3561e..0e9a8f7 100644
--- a/src/gpu/GrGpuBuffer.h
+++ b/src/gpu/GrGpuBuffer.h
@@ -8,8 +8,8 @@
#ifndef GrGpuBuffer_DEFINED
#define GrGpuBuffer_DEFINED
-#include "include/gpu/GrGpuResource.h"
#include "src/gpu/GrBuffer.h"
+#include "src/gpu/GrGpuResource.h"
class GrGpu;
diff --git a/src/gpu/GrGpuResource.cpp b/src/gpu/GrGpuResource.cpp
index 71f9293..e8a9af2 100644
--- a/src/gpu/GrGpuResource.cpp
+++ b/src/gpu/GrGpuResource.cpp
@@ -7,9 +7,9 @@
#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/GrGpuResource.h"
#include "src/gpu/GrGpuResourcePriv.h"
#include "src/gpu/GrResourceCache.h"
#include <atomic>
diff --git a/src/gpu/GrGpuResource.h b/src/gpu/GrGpuResource.h
new file mode 100644
index 0000000..a8a922e
--- /dev/null
+++ b/src/gpu/GrGpuResource.h
@@ -0,0 +1,321 @@
+/*
+ * Copyright 2014 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef GrGpuResource_DEFINED
+#define GrGpuResource_DEFINED
+
+#include "include/private/GrResourceKey.h"
+#include "include/private/GrTypesPriv.h"
+#include "include/private/SkNoncopyable.h"
+
+class GrContext;
+class GrGpu;
+class GrResourceCache;
+class SkTraceMemoryDump;
+
+/**
+ * Base class for GrGpuResource. Provides the hooks for resources to interact with the cache.
+ * Separated out as a base class to isolate the ref-cnting behavior and provide friendship without
+ * exposing all of GrGpuResource.
+ *
+ * PRIOR to the last ref being removed DERIVED::notifyRefCntWillBeZero() will be called
+ * (static poly morphism using CRTP). It is legal for additional ref's to be added
+ * during this time. AFTER the ref count reaches zero DERIVED::notifyRefCntIsZero() will be
+ * called.
+ */
+template <typename DERIVED> class GrIORef : public SkNoncopyable {
+public:
+ bool unique() const { return fRefCnt == 1; }
+
+ void ref() const {
+ // Only the cache should be able to add the first ref to a resource.
+ SkASSERT(this->getRefCnt() > 0);
+ // No barrier required.
+ (void)fRefCnt.fetch_add(+1, std::memory_order_relaxed);
+ }
+
+ void unref() const {
+ SkASSERT(this->getRefCnt() > 0);
+ if (1 == fRefCnt.fetch_add(-1, std::memory_order_acq_rel)) {
+ // At this point we better be the only thread accessing this resource.
+ // Trick out the notifyRefCntWillBeZero() call by adding back one more ref.
+ fRefCnt.fetch_add(+1, std::memory_order_relaxed);
+ static_cast<const DERIVED*>(this)->notifyRefCntWillBeZero();
+ // notifyRefCntWillBeZero() could have done anything, including re-refing this and
+ // passing on to another thread. Take away the ref-count we re-added above and see
+ // if we're back to zero.
+ // TODO: Consider making it so that refs can't be added and merge
+ // notifyRefCntWillBeZero()/willRemoveLastRef() with notifyRefCntIsZero().
+ if (1 == fRefCnt.fetch_add(-1, std::memory_order_acq_rel)) {
+ static_cast<const DERIVED*>(this)->notifyRefCntIsZero();
+ }
+ }
+ }
+
+#if GR_TEST_UTILS
+ int32_t testingOnly_getRefCnt() const { return this->getRefCnt(); }
+#endif
+
+protected:
+ friend class GrResourceCache; // for internalHasRef
+
+ GrIORef() : fRefCnt(1) {}
+
+ bool internalHasRef() const { return SkToBool(this->getRefCnt()); }
+
+ // Privileged method that allows going from ref count = 0 to ref count = 1.
+ void addInitialRef() const {
+ SkASSERT(fRefCnt >= 0);
+ // No barrier required.
+ (void)fRefCnt.fetch_add(+1, std::memory_order_relaxed);
+ }
+
+private:
+ int32_t getRefCnt() const { return fRefCnt.load(std::memory_order_relaxed); }
+
+ mutable std::atomic<int32_t> fRefCnt;
+
+ typedef SkNoncopyable INHERITED;
+};
+
+/**
+ * Base class for objects that can be kept in the GrResourceCache.
+ */
+class GrGpuResource : public GrIORef<GrGpuResource> {
+public:
+ /**
+ * Tests whether a object has been abandoned or released. All objects will
+ * be in this state after their creating GrContext is destroyed or has
+ * contextLost called. It's up to the client to test wasDestroyed() before
+ * attempting to use an object if it holds refs on objects across
+ * ~GrContext, freeResources with the force flag, or contextLost.
+ *
+ * @return true if the object has been released or abandoned,
+ * false otherwise.
+ */
+ bool wasDestroyed() const { return nullptr == fGpu; }
+
+ /**
+ * Retrieves the context that owns the object. Note that it is possible for
+ * this to return NULL. When objects have been release()ed or abandon()ed
+ * they no longer have an owning context. Destroying a GrContext
+ * automatically releases all its resources.
+ */
+ const GrContext* getContext() const;
+ GrContext* getContext();
+
+ /**
+ * Retrieves the amount of GPU memory used by this resource in bytes. It is
+ * approximate since we aren't aware of additional padding or copies made
+ * by the driver.
+ *
+ * @return the amount of GPU memory used in bytes
+ */
+ size_t gpuMemorySize() const {
+ if (kInvalidGpuMemorySize == fGpuMemorySize) {
+ fGpuMemorySize = this->onGpuMemorySize();
+ SkASSERT(kInvalidGpuMemorySize != fGpuMemorySize);
+ }
+ return fGpuMemorySize;
+ }
+
+ class UniqueID {
+ public:
+ UniqueID() = default;
+
+ explicit UniqueID(uint32_t id) : fID(id) {}
+
+ uint32_t asUInt() const { return fID; }
+
+ bool operator==(const UniqueID& other) const { return fID == other.fID; }
+ bool operator!=(const UniqueID& other) const { return !(*this == other); }
+
+ void makeInvalid() { fID = SK_InvalidUniqueID; }
+ bool isInvalid() const { return fID == SK_InvalidUniqueID; }
+
+ protected:
+ uint32_t fID = SK_InvalidUniqueID;
+ };
+
+ /**
+ * Gets an id that is unique for this GrGpuResource object. It is static in that it does
+ * not change when the content of the GrGpuResource object changes. This will never return
+ * 0.
+ */
+ UniqueID uniqueID() const { return fUniqueID; }
+
+ /** Returns the current unique key for the resource. It will be invalid if the resource has no
+ associated unique key. */
+ const GrUniqueKey& getUniqueKey() const { return fUniqueKey; }
+
+ /**
+ * Internal-only helper class used for manipulations of the resource by the cache.
+ */
+ class CacheAccess;
+ inline CacheAccess cacheAccess();
+ inline const CacheAccess cacheAccess() const;
+
+ /**
+ * Internal-only helper class used for manipulations of the resource by GrSurfaceProxy.
+ */
+ class ProxyAccess;
+ inline ProxyAccess proxyAccess();
+
+ /**
+ * Internal-only helper class used for manipulations of the resource by internal code.
+ */
+ class ResourcePriv;
+ inline ResourcePriv resourcePriv();
+ inline const ResourcePriv resourcePriv() const;
+
+ /**
+ * Dumps memory usage information for this GrGpuResource to traceMemoryDump.
+ * Typically, subclasses should not need to override this, and should only
+ * need to override setMemoryBacking.
+ **/
+ virtual void dumpMemoryStatistics(SkTraceMemoryDump* traceMemoryDump) const;
+
+ /**
+ * Describes the type of gpu resource that is represented by the implementing
+ * class (e.g. texture, buffer object, stencil). This data is used for diagnostic
+ * purposes by dumpMemoryStatistics().
+ *
+ * The value returned is expected to be long lived and will not be copied by the caller.
+ */
+ virtual const char* getResourceType() const = 0;
+
+ static uint32_t CreateUniqueID();
+
+protected:
+ // This must be called by every non-wrapped GrGpuObject. It should be called once the object is
+ // fully initialized (i.e. only from the constructors of the final class).
+ void registerWithCache(SkBudgeted);
+
+ // This must be called by every GrGpuObject that references any wrapped backend objects. It
+ // should be called once the object is fully initialized (i.e. only from the constructors of the
+ // final class).
+ void registerWithCacheWrapped(GrWrapCacheable);
+
+ GrGpuResource(GrGpu*);
+ virtual ~GrGpuResource();
+
+ GrGpu* getGpu() const { return fGpu; }
+
+ /** Overridden to free GPU resources in the backend API. */
+ virtual void onRelease() { }
+ /** Overridden to abandon any internal handles, ptrs, etc to backend API resources.
+ This may be called when the underlying 3D context is no longer valid and so no
+ backend API calls should be made. */
+ virtual void onAbandon() { }
+
+ /**
+ * Allows subclasses to add additional backing information to the SkTraceMemoryDump.
+ **/
+ virtual void setMemoryBacking(SkTraceMemoryDump*, const SkString&) const {}
+
+ /**
+ * Returns a string that uniquely identifies this resource.
+ */
+ SkString getResourceName() const;
+
+ /**
+ * A helper for subclasses that override dumpMemoryStatistics(). This method using a format
+ * consistent with the default implementation of dumpMemoryStatistics() but allows the caller
+ * to customize various inputs.
+ */
+ void dumpMemoryStatisticsPriv(SkTraceMemoryDump* traceMemoryDump, const SkString& resourceName,
+ const char* type, size_t size) const;
+
+
+private:
+ bool isPurgeable() const;
+ bool hasRef() const;
+
+ /**
+ * Called by the registerWithCache if the resource is available to be used as scratch.
+ * Resource subclasses should override this if the instances should be recycled as scratch
+ * resources and populate the scratchKey with the key.
+ * By default resources are not recycled as scratch.
+ **/
+ virtual void computeScratchKey(GrScratchKey*) const {}
+
+ /**
+ * Removes references to objects in the underlying 3D API without freeing them.
+ * Called by CacheAccess.
+ */
+ void abandon();
+
+ /**
+ * Frees the object in the underlying 3D API. Called by CacheAccess.
+ */
+ void release();
+
+ virtual size_t onGpuMemorySize() const = 0;
+
+ /**
+ * Called by GrIORef when a resource is about to lose its last ref
+ */
+ virtual void willRemoveLastRef() {}
+
+ // See comments in CacheAccess and ResourcePriv.
+ void setUniqueKey(const GrUniqueKey&);
+ void removeUniqueKey();
+ void notifyRefCntWillBeZero() const;
+ void notifyRefCntIsZero() const;
+ void removeScratchKey();
+ void makeBudgeted();
+ void makeUnbudgeted();
+
+#ifdef SK_DEBUG
+ friend class GrGpu; // for assert in GrGpu to access getGpu
+#endif
+
+ // An index into a heap when this resource is purgeable or an array when not. This is maintained
+ // by the cache.
+ int fCacheArrayIndex;
+ // This value reflects how recently this resource was accessed in the cache. This is maintained
+ // by the cache.
+ uint32_t fTimestamp;
+ GrStdSteadyClock::time_point fTimeWhenBecamePurgeable;
+
+ static const size_t kInvalidGpuMemorySize = ~static_cast<size_t>(0);
+ GrScratchKey fScratchKey;
+ GrUniqueKey fUniqueKey;
+
+ // This is not ref'ed but abandon() or release() will be called before the GrGpu object
+ // is destroyed. Those calls set will this to NULL.
+ GrGpu* fGpu;
+ mutable size_t fGpuMemorySize = kInvalidGpuMemorySize;
+
+ GrBudgetedType fBudgetedType = GrBudgetedType::kUnbudgetedUncacheable;
+ bool fRefsWrappedObjects = false;
+ const UniqueID fUniqueID;
+
+ typedef GrIORef<GrGpuResource> INHERITED;
+ friend class GrIORef<GrGpuResource>; // to access notifyRefCntWillBeZero and notifyRefCntIsZero.
+};
+
+class GrGpuResource::ProxyAccess {
+private:
+ ProxyAccess(GrGpuResource* resource) : fResource(resource) {}
+
+ /** Proxies are allowed to take a resource from no refs to one ref. */
+ void ref(GrResourceCache* cache);
+
+ // No taking addresses of this type.
+ const CacheAccess* operator&() const = delete;
+ CacheAccess* operator&() = delete;
+
+ GrGpuResource* fResource;
+
+ friend class GrGpuResource;
+ friend class GrSurfaceProxy;
+};
+
+inline GrGpuResource::ProxyAccess GrGpuResource::proxyAccess() { return ProxyAccess(this); }
+
+#endif
diff --git a/src/gpu/GrGpuResourceCacheAccess.h b/src/gpu/GrGpuResourceCacheAccess.h
index b18949c..a346b7d 100644
--- a/src/gpu/GrGpuResourceCacheAccess.h
+++ b/src/gpu/GrGpuResourceCacheAccess.h
@@ -8,7 +8,7 @@
#ifndef GrGpuResourceCacheAccess_DEFINED
#define GrGpuResourceCacheAccess_DEFINED
-#include "include/gpu/GrGpuResource.h"
+#include "src/gpu/GrGpuResource.h"
#include "src/gpu/GrGpuResourcePriv.h"
namespace skiatest {
diff --git a/src/gpu/GrGpuResourcePriv.h b/src/gpu/GrGpuResourcePriv.h
index fc1e593..d9e90bb 100644
--- a/src/gpu/GrGpuResourcePriv.h
+++ b/src/gpu/GrGpuResourcePriv.h
@@ -8,7 +8,7 @@
#ifndef GrGpuResourcePriv_DEFINED
#define GrGpuResourcePriv_DEFINED
-#include "include/gpu/GrGpuResource.h"
+#include "src/gpu/GrGpuResource.h"
/**
* This class allows code internal to Skia privileged access to manage the cache keys and budget
diff --git a/src/gpu/GrOpFlushState.cpp b/src/gpu/GrOpFlushState.cpp
index 10b84f4..10d7b45 100644
--- a/src/gpu/GrOpFlushState.cpp
+++ b/src/gpu/GrOpFlushState.cpp
@@ -7,7 +7,6 @@
#include "src/gpu/GrOpFlushState.h"
-#include "include/gpu/GrTexture.h"
#include "src/core/SkConvertPixels.h"
#include "src/gpu/GrContextPriv.h"
#include "src/gpu/GrDrawOpAtlas.h"
@@ -15,6 +14,7 @@
#include "src/gpu/GrImageInfo.h"
#include "src/gpu/GrProgramInfo.h"
#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrTexture.h"
//////////////////////////////////////////////////////////////////////////////
diff --git a/src/gpu/GrPath.h b/src/gpu/GrPath.h
index 6b43af5..9fc84fd 100644
--- a/src/gpu/GrPath.h
+++ b/src/gpu/GrPath.h
@@ -10,7 +10,7 @@
#include "include/core/SkPath.h"
#include "include/core/SkRect.h"
-#include "include/gpu/GrGpuResource.h"
+#include "src/gpu/GrGpuResource.h"
#include "src/gpu/GrPathRendering.h"
#include "src/gpu/GrStyle.h"
diff --git a/src/gpu/GrProxyProvider.cpp b/src/gpu/GrProxyProvider.cpp
index bbf3493..40ce45d 100644
--- a/src/gpu/GrProxyProvider.cpp
+++ b/src/gpu/GrProxyProvider.cpp
@@ -10,7 +10,6 @@
#include "include/core/SkBitmap.h"
#include "include/core/SkImage.h"
#include "include/gpu/GrContext.h"
-#include "include/gpu/GrTexture.h"
#include "include/private/GrImageContext.h"
#include "include/private/GrResourceKey.h"
#include "include/private/GrSingleOwner.h"
@@ -27,6 +26,7 @@
#include "src/gpu/GrResourceProvider.h"
#include "src/gpu/GrSurfaceProxy.h"
#include "src/gpu/GrSurfaceProxyPriv.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTextureProxyCacheAccess.h"
#include "src/gpu/GrTextureRenderTargetProxy.h"
#include "src/gpu/SkGr.h"
diff --git a/src/gpu/GrRenderTarget.h b/src/gpu/GrRenderTarget.h
index 79e912b..13b43a0 100644
--- a/src/gpu/GrRenderTarget.h
+++ b/src/gpu/GrRenderTarget.h
@@ -9,7 +9,7 @@
#define GrRenderTarget_DEFINED
#include "include/core/SkRect.h"
-#include "include/gpu/GrSurface.h"
+#include "src/gpu/GrSurface.h"
class GrCaps;
class GrRenderTargetPriv;
diff --git a/src/gpu/GrResourceAllocator.h b/src/gpu/GrResourceAllocator.h
index da3c735..8d49948 100644
--- a/src/gpu/GrResourceAllocator.h
+++ b/src/gpu/GrResourceAllocator.h
@@ -8,8 +8,8 @@
#ifndef GrResourceAllocator_DEFINED
#define GrResourceAllocator_DEFINED
-#include "include/gpu/GrSurface.h"
#include "src/gpu/GrGpuResourcePriv.h"
+#include "src/gpu/GrSurface.h"
#include "src/gpu/GrSurfaceProxy.h"
#include "src/core/SkArenaAlloc.h"
diff --git a/src/gpu/GrResourceCache.cpp b/src/gpu/GrResourceCache.cpp
index b42762f..db0c878 100644
--- a/src/gpu/GrResourceCache.cpp
+++ b/src/gpu/GrResourceCache.cpp
@@ -8,7 +8,6 @@
#include "src/gpu/GrResourceCache.h"
#include <atomic>
#include "include/gpu/GrContext.h"
-#include "include/gpu/GrTexture.h"
#include "include/private/GrSingleOwner.h"
#include "include/private/SkTo.h"
#include "include/utils/SkRandom.h"
@@ -21,6 +20,7 @@
#include "src/gpu/GrContextPriv.h"
#include "src/gpu/GrGpuResourceCacheAccess.h"
#include "src/gpu/GrProxyProvider.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTextureProxyCacheAccess.h"
#include "src/gpu/GrTracing.h"
#include "src/gpu/SkGr.h"
diff --git a/src/gpu/GrResourceCache.h b/src/gpu/GrResourceCache.h
index de554b4..7c24134 100644
--- a/src/gpu/GrResourceCache.h
+++ b/src/gpu/GrResourceCache.h
@@ -9,7 +9,6 @@
#define GrResourceCache_DEFINED
#include "include/core/SkRefCnt.h"
-#include "include/gpu/GrGpuResource.h"
#include "include/private/GrResourceKey.h"
#include "include/private/SkTArray.h"
#include "include/private/SkTHash.h"
@@ -17,6 +16,7 @@
#include "src/core/SkTDPQueue.h"
#include "src/core/SkTInternalLList.h"
#include "src/core/SkTMultiMap.h"
+#include "src/gpu/GrGpuResource.h"
#include "src/gpu/GrGpuResourceCacheAccess.h"
#include "src/gpu/GrGpuResourcePriv.h"
diff --git a/src/gpu/GrSemaphore.h b/src/gpu/GrSemaphore.h
index 77e5b79..b5c223b 100644
--- a/src/gpu/GrSemaphore.h
+++ b/src/gpu/GrSemaphore.h
@@ -9,7 +9,7 @@
#define GrSemaphore_DEFINED
#include "include/gpu/GrBackendSemaphore.h"
-#include "include/gpu/GrGpuResource.h"
+#include "src/gpu/GrGpuResource.h"
/**
* Represents a semaphore-like GPU synchronization object. This is a slightly odd fit for
diff --git a/src/gpu/GrStencilAttachment.h b/src/gpu/GrStencilAttachment.h
index 5a56d30..e733bbd 100644
--- a/src/gpu/GrStencilAttachment.h
+++ b/src/gpu/GrStencilAttachment.h
@@ -9,8 +9,8 @@
#ifndef GrStencilAttachment_DEFINED
#define GrStencilAttachment_DEFINED
-#include "include/gpu/GrGpuResource.h"
#include "src/core/SkClipStack.h"
+#include "src/gpu/GrGpuResource.h"
class GrRenderTarget;
class GrResourceKey;
diff --git a/src/gpu/GrSurface.cpp b/src/gpu/GrSurface.cpp
index fe93a3f..03f4616 100644
--- a/src/gpu/GrSurface.cpp
+++ b/src/gpu/GrSurface.cpp
@@ -6,12 +6,12 @@
*/
#include "include/gpu/GrContext.h"
-#include "include/gpu/GrSurface.h"
-#include "include/gpu/GrTexture.h"
#include "src/core/SkCompressedDataUtils.h"
#include "src/gpu/GrRenderTarget.h"
#include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSurface.h"
#include "src/gpu/GrSurfacePriv.h"
+#include "src/gpu/GrTexture.h"
#include "src/core/SkMathPriv.h"
#include "src/gpu/SkGr.h"
diff --git a/src/gpu/GrSurface.h b/src/gpu/GrSurface.h
new file mode 100644
index 0000000..2dd1cf4
--- /dev/null
+++ b/src/gpu/GrSurface.h
@@ -0,0 +1,159 @@
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef GrSurface_DEFINED
+#define GrSurface_DEFINED
+
+#include "include/core/SkImageInfo.h"
+#include "include/core/SkRect.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrTypes.h"
+#include "src/gpu/GrGpuResource.h"
+
+class GrRenderTarget;
+class GrSurfacePriv;
+class GrTexture;
+
+class GrSurface : public GrGpuResource {
+public:
+ /**
+ * Retrieves the dimensions of the surface.
+ */
+ SkISize dimensions() const { return fDimensions; }
+
+ /**
+ * Retrieves the width of the surface.
+ */
+ int width() const { return fDimensions.width(); }
+
+ /**
+ * Retrieves the height of the surface.
+ */
+ int height() const { return fDimensions.height(); }
+
+ /**
+ * Helper that gets the width and height of the surface as a bounding rectangle.
+ */
+ SkRect getBoundsRect() const { return SkRect::Make(this->dimensions()); }
+
+ virtual GrBackendFormat backendFormat() const = 0;
+
+ void setRelease(sk_sp<GrRefCntedCallback> releaseHelper) {
+ this->onSetRelease(releaseHelper);
+ fReleaseHelper = std::move(releaseHelper);
+ }
+
+ // These match the definitions in SkImage, from whence they came.
+ // TODO: Remove Chrome's need to call this on a GrTexture
+ typedef void* ReleaseCtx;
+ typedef void (*ReleaseProc)(ReleaseCtx);
+ void setRelease(ReleaseProc proc, ReleaseCtx ctx) {
+ sk_sp<GrRefCntedCallback> helper(new GrRefCntedCallback(proc, ctx));
+ this->setRelease(std::move(helper));
+ }
+
+ /**
+ * @return the texture associated with the surface, may be null.
+ */
+ virtual GrTexture* asTexture() { return nullptr; }
+ virtual const GrTexture* asTexture() const { return nullptr; }
+
+ /**
+ * @return the render target underlying this surface, may be null.
+ */
+ virtual GrRenderTarget* asRenderTarget() { return nullptr; }
+ virtual const GrRenderTarget* asRenderTarget() const { return nullptr; }
+
+ /** Access methods that are only to be used within Skia code. */
+ inline GrSurfacePriv surfacePriv();
+ inline const GrSurfacePriv surfacePriv() const;
+
+ static size_t ComputeSize(const GrCaps&, const GrBackendFormat&, SkISize dimensions,
+ int colorSamplesPerPixel, GrMipMapped, bool binSize = false);
+
+ /**
+ * The pixel values of this surface cannot be modified (e.g. doesn't support write pixels or
+ * MIP map level regen).
+ */
+ bool readOnly() const { return fSurfaceFlags & GrInternalSurfaceFlags::kReadOnly; }
+
+ bool framebufferOnly() const {
+ return fSurfaceFlags & GrInternalSurfaceFlags::kFramebufferOnly;
+ }
+
+ // Returns true if we are working with protected content.
+ bool isProtected() const { return fIsProtected == GrProtected::kYes; }
+
+ void setFramebufferOnly() {
+ SkASSERT(this->asRenderTarget());
+ fSurfaceFlags |= GrInternalSurfaceFlags::kFramebufferOnly;
+ }
+
+protected:
+ void setGLRTFBOIDIs0() {
+ SkASSERT(!this->requiresManualMSAAResolve());
+ SkASSERT(!this->asTexture());
+ SkASSERT(this->asRenderTarget());
+ fSurfaceFlags |= GrInternalSurfaceFlags::kGLRTFBOIDIs0;
+ }
+ bool glRTFBOIDis0() const {
+ return fSurfaceFlags & GrInternalSurfaceFlags::kGLRTFBOIDIs0;
+ }
+
+ void setRequiresManualMSAAResolve() {
+ SkASSERT(!this->glRTFBOIDis0());
+ SkASSERT(this->asRenderTarget());
+ fSurfaceFlags |= GrInternalSurfaceFlags::kRequiresManualMSAAResolve;
+ }
+ bool requiresManualMSAAResolve() const {
+ return fSurfaceFlags & GrInternalSurfaceFlags::kRequiresManualMSAAResolve;
+ }
+
+ void setReadOnly() {
+ SkASSERT(!this->asRenderTarget());
+ fSurfaceFlags |= GrInternalSurfaceFlags::kReadOnly;
+ }
+
+ // Provides access to methods that should be public within Skia code.
+ friend class GrSurfacePriv;
+
+ GrSurface(GrGpu* gpu, const SkISize& dimensions, GrProtected isProtected)
+ : INHERITED(gpu)
+ , fDimensions(dimensions)
+ , fSurfaceFlags(GrInternalSurfaceFlags::kNone)
+ , fIsProtected(isProtected) {}
+
+ ~GrSurface() override {
+ // check that invokeReleaseProc has been called (if needed)
+ SkASSERT(!fReleaseHelper);
+ }
+
+ void onRelease() override;
+ void onAbandon() override;
+
+private:
+ const char* getResourceType() const override { return "Surface"; }
+
+ // Unmanaged backends (e.g. Vulkan) may want to specially handle the release proc in order to
+ // ensure it isn't called until GPU work related to the resource is completed.
+ virtual void onSetRelease(sk_sp<GrRefCntedCallback>) {}
+
+ void invokeReleaseProc() {
+ // Depending on the ref count of fReleaseHelper this may or may not actually trigger the
+ // ReleaseProc to be called.
+ fReleaseHelper.reset();
+ }
+
+ SkISize fDimensions;
+ GrInternalSurfaceFlags fSurfaceFlags;
+ GrProtected fIsProtected;
+ sk_sp<GrRefCntedCallback> fReleaseHelper;
+
+ typedef GrGpuResource INHERITED;
+};
+
+#endif
diff --git a/src/gpu/GrSurfacePriv.h b/src/gpu/GrSurfacePriv.h
index bd7aa53..e5e8238 100644
--- a/src/gpu/GrSurfacePriv.h
+++ b/src/gpu/GrSurfacePriv.h
@@ -8,7 +8,7 @@
#ifndef GrSurfacePriv_DEFINED
#define GrSurfacePriv_DEFINED
-#include "include/gpu/GrSurface.h"
+#include "src/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.h b/src/gpu/GrSurfaceProxy.h
index 92c357b..0b6fe65 100644
--- a/src/gpu/GrSurfaceProxy.h
+++ b/src/gpu/GrSurfaceProxy.h
@@ -10,12 +10,12 @@
#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"
+#include "src/gpu/GrGpuResource.h"
#include "src/gpu/GrNonAtomicRef.h"
+#include "src/gpu/GrSurface.h"
#include "src/gpu/GrSwizzle.h"
+#include "src/gpu/GrTexture.h"
class GrCaps;
class GrContext_Base;
diff --git a/src/gpu/GrTexture.cpp b/src/gpu/GrTexture.cpp
index b2fd2c1..29266f8 100644
--- a/src/gpu/GrTexture.cpp
+++ b/src/gpu/GrTexture.cpp
@@ -8,7 +8,6 @@
#include "include/core/SkMath.h"
#include "include/core/SkTypes.h"
#include "include/gpu/GrContext.h"
-#include "include/gpu/GrTexture.h"
#include "include/gpu/GrTypes.h"
#include "include/private/GrResourceKey.h"
#include "src/core/SkMipMap.h"
@@ -17,6 +16,7 @@
#include "src/gpu/GrGpu.h"
#include "src/gpu/GrRenderTarget.h"
#include "src/gpu/GrSurfacePriv.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTexturePriv.h"
void GrTexture::markMipMapsDirty() {
diff --git a/src/gpu/GrTexture.h b/src/gpu/GrTexture.h
new file mode 100644
index 0000000..7045a0e
--- /dev/null
+++ b/src/gpu/GrTexture.h
@@ -0,0 +1,102 @@
+
+/*
+ * Copyright 2011 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef GrTexture_DEFINED
+#define GrTexture_DEFINED
+
+#include "include/core/SkImage.h"
+#include "include/core/SkPoint.h"
+#include "include/core/SkRefCnt.h"
+#include "include/gpu/GrBackendSurface.h"
+#include "include/private/GrTypesPriv.h"
+#include "src/gpu/GrSurface.h"
+
+class GrTexturePriv;
+
+class GrTexture : virtual public GrSurface {
+public:
+ GrTexture* asTexture() override { return this; }
+ const GrTexture* asTexture() const override { return this; }
+
+ virtual GrBackendTexture getBackendTexture() const = 0;
+
+ /**
+ * This function indicates that the texture parameters (wrap mode, filtering, ...) have been
+ * changed externally to Skia.
+ */
+ virtual void textureParamsModified() = 0;
+
+ /**
+ * This function steals the backend texture from a uniquely owned GrTexture with no pending
+ * IO, passing it out to the caller. The GrTexture is deleted in the process.
+ *
+ * Note that if the GrTexture is not uniquely owned (no other refs), or has pending IO, this
+ * function will fail.
+ */
+ static bool StealBackendTexture(sk_sp<GrTexture>,
+ GrBackendTexture*,
+ SkImage::BackendTextureReleaseProc*);
+
+ /** See addIdleProc. */
+ enum class IdleState {
+ kFlushed,
+ kFinished
+ };
+ /**
+ * Installs a proc on this texture. It will be called when the texture becomes "idle". There
+ * are two types of idle states as indicated by IdleState. For managed backends (e.g. GL where
+ * a driver typically handles CPU/GPU synchronization of resource access) there is no difference
+ * between the two. They both mean "all work related to the resource has been flushed to the
+ * backend API and the texture is not owned outside the resource cache".
+ *
+ * If the API is unmanaged (e.g. Vulkan) then kFinished has the additional constraint that the
+ * work flushed to the GPU is finished.
+ */
+ virtual void addIdleProc(sk_sp<GrRefCntedCallback> idleProc, IdleState) {
+ // This is the default implementation for the managed case where the IdleState can be
+ // ignored. Unmanaged backends, e.g. Vulkan, must override this to consider IdleState.
+ fIdleProcs.push_back(std::move(idleProc));
+ }
+ /** Helper version of addIdleProc that creates the ref-counted wrapper. */
+ void addIdleProc(GrRefCntedCallback::Callback callback,
+ GrRefCntedCallback::Context context,
+ IdleState state) {
+ this->addIdleProc(sk_make_sp<GrRefCntedCallback>(callback, context), state);
+ }
+
+ /** Access methods that are only to be used within Skia code. */
+ inline GrTexturePriv texturePriv();
+ inline const GrTexturePriv texturePriv() const;
+
+protected:
+ GrTexture(GrGpu*, const SkISize&, GrProtected, GrTextureType, GrMipMapsStatus);
+
+ virtual bool onStealBackendTexture(GrBackendTexture*, SkImage::BackendTextureReleaseProc*) = 0;
+
+ SkTArray<sk_sp<GrRefCntedCallback>> fIdleProcs;
+
+ void willRemoveLastRef() override {
+ // We're about to be idle in the resource cache. Do our part to trigger the idle callbacks.
+ fIdleProcs.reset();
+ }
+ void computeScratchKey(GrScratchKey*) const override;
+
+private:
+ size_t onGpuMemorySize() const override;
+ void markMipMapsDirty();
+ void markMipMapsClean();
+
+ GrTextureType fTextureType;
+ GrMipMapsStatus fMipMapsStatus;
+ int fMaxMipMapLevel;
+ friend class GrTexturePriv;
+
+ typedef GrSurface INHERITED;
+};
+
+#endif
diff --git a/src/gpu/GrTexturePriv.h b/src/gpu/GrTexturePriv.h
index a6b0302..085e78d 100644
--- a/src/gpu/GrTexturePriv.h
+++ b/src/gpu/GrTexturePriv.h
@@ -8,8 +8,8 @@
#ifndef GrTexturePriv_DEFINED
#define GrTexturePriv_DEFINED
-#include "include/gpu/GrTexture.h"
#include "src/gpu/GrSamplerState.h"
+#include "src/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/GrTextureRenderTargetProxy.cpp b/src/gpu/GrTextureRenderTargetProxy.cpp
index be766e2..69b24a5 100644
--- a/src/gpu/GrTextureRenderTargetProxy.cpp
+++ b/src/gpu/GrTextureRenderTargetProxy.cpp
@@ -7,13 +7,13 @@
#include "src/gpu/GrTextureRenderTargetProxy.h"
-#include "include/gpu/GrTexture.h"
#include "src/gpu/GrCaps.h"
#include "src/gpu/GrContextPriv.h"
#include "src/gpu/GrRenderTarget.h"
#include "src/gpu/GrRenderTargetProxyPriv.h"
#include "src/gpu/GrSurfacePriv.h"
#include "src/gpu/GrSurfaceProxyPriv.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTexturePriv.h"
#include "src/gpu/GrTextureProxyPriv.h"
diff --git a/src/gpu/ccpr/GrCCClipPath.cpp b/src/gpu/ccpr/GrCCClipPath.cpp
index b01bda1..20368e6 100644
--- a/src/gpu/ccpr/GrCCClipPath.cpp
+++ b/src/gpu/ccpr/GrCCClipPath.cpp
@@ -7,10 +7,10 @@
#include "src/gpu/ccpr/GrCCClipPath.h"
-#include "include/gpu/GrTexture.h"
#include "src/gpu/GrOnFlushResourceProvider.h"
#include "src/gpu/GrProxyProvider.h"
#include "src/gpu/GrRenderTarget.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/ccpr/GrCCPerFlushResources.h"
void GrCCClipPath::init(
diff --git a/src/gpu/ccpr/GrCCClipProcessor.cpp b/src/gpu/ccpr/GrCCClipProcessor.cpp
index 77ee55d..4f0e4f2 100644
--- a/src/gpu/ccpr/GrCCClipProcessor.cpp
+++ b/src/gpu/ccpr/GrCCClipProcessor.cpp
@@ -7,7 +7,7 @@
#include "src/gpu/ccpr/GrCCClipProcessor.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTextureProxy.h"
#include "src/gpu/ccpr/GrCCClipPath.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
diff --git a/src/gpu/ccpr/GrCCPathProcessor.cpp b/src/gpu/ccpr/GrCCPathProcessor.cpp
index 1a18126..00224f8 100644
--- a/src/gpu/ccpr/GrCCPathProcessor.cpp
+++ b/src/gpu/ccpr/GrCCPathProcessor.cpp
@@ -7,9 +7,9 @@
#include "src/gpu/ccpr/GrCCPathProcessor.h"
-#include "include/gpu/GrTexture.h"
#include "src/gpu/GrOnFlushResourceProvider.h"
#include "src/gpu/GrOpsRenderPass.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTexturePriv.h"
#include "src/gpu/ccpr/GrCCPerFlushResources.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
diff --git a/src/gpu/dawn/GrDawnTexture.h b/src/gpu/dawn/GrDawnTexture.h
index 118ad8f..8fe344c 100644
--- a/src/gpu/dawn/GrDawnTexture.h
+++ b/src/gpu/dawn/GrDawnTexture.h
@@ -8,7 +8,7 @@
#ifndef GrDawnTexture_DEFINED
#define GrDawnTexture_DEFINED
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "dawn/webgpu_cpp.h"
class GrDawnGpu;
diff --git a/src/gpu/effects/GrBicubicEffect.cpp b/src/gpu/effects/GrBicubicEffect.cpp
index 98eaf17..d7f3933 100644
--- a/src/gpu/effects/GrBicubicEffect.cpp
+++ b/src/gpu/effects/GrBicubicEffect.cpp
@@ -7,8 +7,8 @@
#include "src/gpu/effects/GrBicubicEffect.h"
-#include "include/gpu/GrTexture.h"
#include "src/core/SkMatrixPriv.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/effects/GrTextureEffect.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
diff --git a/src/gpu/effects/GrBitmapTextGeoProc.cpp b/src/gpu/effects/GrBitmapTextGeoProc.cpp
index 3b0dcd1..4f2070a 100644
--- a/src/gpu/effects/GrBitmapTextGeoProc.cpp
+++ b/src/gpu/effects/GrBitmapTextGeoProc.cpp
@@ -7,9 +7,9 @@
#include "src/gpu/effects/GrBitmapTextGeoProc.h"
-#include "include/gpu/GrTexture.h"
#include "src/gpu/GrCaps.h"
#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/effects/GrAtlasedShaderHelpers.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.cpp b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
index 4378638..2ddfb7d 100644
--- a/src/gpu/effects/GrDistanceFieldGeoProc.cpp
+++ b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
@@ -5,10 +5,10 @@
* found in the LICENSE file.
*/
-#include "include/gpu/GrTexture.h"
#include "src/core/SkDistanceFieldGen.h"
#include "src/gpu/GrCaps.h"
#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/effects/GrAtlasedShaderHelpers.h"
#include "src/gpu/effects/GrDistanceFieldGeoProc.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
diff --git a/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.cpp b/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.cpp
index b11015a..b79e427 100644
--- a/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.cpp
+++ b/src/gpu/effects/GrGaussianConvolutionFragmentProcessor.cpp
@@ -7,7 +7,7 @@
#include "src/gpu/effects/GrGaussianConvolutionFragmentProcessor.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTextureProxy.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
diff --git a/src/gpu/effects/GrMatrixConvolutionEffect.cpp b/src/gpu/effects/GrMatrixConvolutionEffect.cpp
index 207917a..f734c3f 100644
--- a/src/gpu/effects/GrMatrixConvolutionEffect.cpp
+++ b/src/gpu/effects/GrMatrixConvolutionEffect.cpp
@@ -6,7 +6,7 @@
*/
#include "src/gpu/effects/GrMatrixConvolutionEffect.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTextureProxy.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
diff --git a/src/gpu/effects/GrSkSLFP.cpp b/src/gpu/effects/GrSkSLFP.cpp
index bd5a7cd..924a551 100644
--- a/src/gpu/effects/GrSkSLFP.cpp
+++ b/src/gpu/effects/GrSkSLFP.cpp
@@ -8,9 +8,9 @@
#include "src/gpu/effects/GrSkSLFP.h"
#include "include/effects/SkRuntimeEffect.h"
-#include "include/gpu/GrTexture.h"
#include "include/private/GrContext_Base.h"
#include "src/gpu/GrBaseContextPriv.h"
+#include "src/gpu/GrTexture.h"
#include "src/sksl/SkSLUtil.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
diff --git a/src/gpu/effects/GrTextureDomain.cpp b/src/gpu/effects/GrTextureDomain.cpp
index 9d8202c..beaaf97 100644
--- a/src/gpu/effects/GrTextureDomain.cpp
+++ b/src/gpu/effects/GrTextureDomain.cpp
@@ -7,11 +7,11 @@
#include "src/gpu/effects/GrTextureDomain.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/GrTexture.h"
#include "src/gpu/effects/GrTextureEffect.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
diff --git a/src/gpu/effects/GrTextureEffect.cpp b/src/gpu/effects/GrTextureEffect.cpp
index 490aac1..db84a0b 100644
--- a/src/gpu/effects/GrTextureEffect.cpp
+++ b/src/gpu/effects/GrTextureEffect.cpp
@@ -7,7 +7,7 @@
#include "src/gpu/effects/GrTextureEffect.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTexturePriv.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
diff --git a/src/gpu/effects/GrYUVtoRGBEffect.cpp b/src/gpu/effects/GrYUVtoRGBEffect.cpp
index 83cdda3..9a351af 100644
--- a/src/gpu/effects/GrYUVtoRGBEffect.cpp
+++ b/src/gpu/effects/GrYUVtoRGBEffect.cpp
@@ -7,8 +7,8 @@
#include "src/gpu/effects/GrYUVtoRGBEffect.h"
-#include "include/gpu/GrTexture.h"
#include "src/core/SkYUVMath.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrAARectEffect.cpp b/src/gpu/effects/generated/GrAARectEffect.cpp
index 6d5833e..85368ef 100644
--- a/src/gpu/effects/generated/GrAARectEffect.cpp
+++ b/src/gpu/effects/generated/GrAARectEffect.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrAARectEffect.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrAlphaThresholdFragmentProcessor.cpp b/src/gpu/effects/generated/GrAlphaThresholdFragmentProcessor.cpp
index 8332c54..e1ff266 100644
--- a/src/gpu/effects/generated/GrAlphaThresholdFragmentProcessor.cpp
+++ b/src/gpu/effects/generated/GrAlphaThresholdFragmentProcessor.cpp
@@ -19,7 +19,7 @@
return kCompatibleWithCoverageAsAlpha_OptimizationFlag;
}
}
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrBlurredEdgeFragmentProcessor.cpp b/src/gpu/effects/generated/GrBlurredEdgeFragmentProcessor.cpp
index f286f0e..5c6dbc3 100644
--- a/src/gpu/effects/generated/GrBlurredEdgeFragmentProcessor.cpp
+++ b/src/gpu/effects/generated/GrBlurredEdgeFragmentProcessor.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrBlurredEdgeFragmentProcessor.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrCircleBlurFragmentProcessor.cpp b/src/gpu/effects/generated/GrCircleBlurFragmentProcessor.cpp
index d53339f..5a8bf80 100644
--- a/src/gpu/effects/generated/GrCircleBlurFragmentProcessor.cpp
+++ b/src/gpu/effects/generated/GrCircleBlurFragmentProcessor.cpp
@@ -254,7 +254,7 @@
return std::unique_ptr<GrFragmentProcessor>(new GrCircleBlurFragmentProcessor(
circle, textureRadius, solidRadius, std::move(profile)));
}
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrCircleEffect.cpp b/src/gpu/effects/generated/GrCircleEffect.cpp
index 233f576..3562460 100644
--- a/src/gpu/effects/generated/GrCircleEffect.cpp
+++ b/src/gpu/effects/generated/GrCircleEffect.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrCircleEffect.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrClampFragmentProcessor.cpp b/src/gpu/effects/generated/GrClampFragmentProcessor.cpp
index 0e21338..7d692b5 100644
--- a/src/gpu/effects/generated/GrClampFragmentProcessor.cpp
+++ b/src/gpu/effects/generated/GrClampFragmentProcessor.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrClampFragmentProcessor.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrColorMatrixFragmentProcessor.cpp b/src/gpu/effects/generated/GrColorMatrixFragmentProcessor.cpp
index 357b1c0..a0f7201 100644
--- a/src/gpu/effects/generated/GrColorMatrixFragmentProcessor.cpp
+++ b/src/gpu/effects/generated/GrColorMatrixFragmentProcessor.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrColorMatrixFragmentProcessor.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrComposeLerpEffect.cpp b/src/gpu/effects/generated/GrComposeLerpEffect.cpp
index 3c7bd82..5a80cba 100644
--- a/src/gpu/effects/generated/GrComposeLerpEffect.cpp
+++ b/src/gpu/effects/generated/GrComposeLerpEffect.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrComposeLerpEffect.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrComposeLerpRedEffect.cpp b/src/gpu/effects/generated/GrComposeLerpRedEffect.cpp
index 75d624e..4b9b496 100644
--- a/src/gpu/effects/generated/GrComposeLerpRedEffect.cpp
+++ b/src/gpu/effects/generated/GrComposeLerpRedEffect.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrComposeLerpRedEffect.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrConfigConversionEffect.cpp b/src/gpu/effects/generated/GrConfigConversionEffect.cpp
index c16796d..9a3e987 100644
--- a/src/gpu/effects/generated/GrConfigConversionEffect.cpp
+++ b/src/gpu/effects/generated/GrConfigConversionEffect.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrConfigConversionEffect.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrConstColorProcessor.cpp b/src/gpu/effects/generated/GrConstColorProcessor.cpp
index 8f3079b..f36b208 100644
--- a/src/gpu/effects/generated/GrConstColorProcessor.cpp
+++ b/src/gpu/effects/generated/GrConstColorProcessor.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrConstColorProcessor.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrDeviceSpaceEffect.cpp b/src/gpu/effects/generated/GrDeviceSpaceEffect.cpp
index 8df3a1b..daf7eb9 100644
--- a/src/gpu/effects/generated/GrDeviceSpaceEffect.cpp
+++ b/src/gpu/effects/generated/GrDeviceSpaceEffect.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrDeviceSpaceEffect.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrEllipseEffect.cpp b/src/gpu/effects/generated/GrEllipseEffect.cpp
index b28f961..9e7acb2 100644
--- a/src/gpu/effects/generated/GrEllipseEffect.cpp
+++ b/src/gpu/effects/generated/GrEllipseEffect.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrEllipseEffect.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrHSLToRGBFilterEffect.cpp b/src/gpu/effects/generated/GrHSLToRGBFilterEffect.cpp
index c06b364..11effd2 100644
--- a/src/gpu/effects/generated/GrHSLToRGBFilterEffect.cpp
+++ b/src/gpu/effects/generated/GrHSLToRGBFilterEffect.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrHSLToRGBFilterEffect.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrLumaColorFilterEffect.cpp b/src/gpu/effects/generated/GrLumaColorFilterEffect.cpp
index 3c9f24d..c85bc65 100644
--- a/src/gpu/effects/generated/GrLumaColorFilterEffect.cpp
+++ b/src/gpu/effects/generated/GrLumaColorFilterEffect.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrLumaColorFilterEffect.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrMagnifierEffect.cpp b/src/gpu/effects/generated/GrMagnifierEffect.cpp
index e7ae02b..f1baa05 100644
--- a/src/gpu/effects/generated/GrMagnifierEffect.cpp
+++ b/src/gpu/effects/generated/GrMagnifierEffect.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrMagnifierEffect.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrMixerEffect.cpp b/src/gpu/effects/generated/GrMixerEffect.cpp
index 54ae337..11bc398 100644
--- a/src/gpu/effects/generated/GrMixerEffect.cpp
+++ b/src/gpu/effects/generated/GrMixerEffect.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrMixerEffect.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrOverrideInputFragmentProcessor.cpp b/src/gpu/effects/generated/GrOverrideInputFragmentProcessor.cpp
index 02c4367..c159ec9 100644
--- a/src/gpu/effects/generated/GrOverrideInputFragmentProcessor.cpp
+++ b/src/gpu/effects/generated/GrOverrideInputFragmentProcessor.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrOverrideInputFragmentProcessor.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrPremulInputFragmentProcessor.cpp b/src/gpu/effects/generated/GrPremulInputFragmentProcessor.cpp
index 728e671..f327850 100644
--- a/src/gpu/effects/generated/GrPremulInputFragmentProcessor.cpp
+++ b/src/gpu/effects/generated/GrPremulInputFragmentProcessor.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrPremulInputFragmentProcessor.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrRGBToHSLFilterEffect.cpp b/src/gpu/effects/generated/GrRGBToHSLFilterEffect.cpp
index 166026a..6d93aa9 100644
--- a/src/gpu/effects/generated/GrRGBToHSLFilterEffect.cpp
+++ b/src/gpu/effects/generated/GrRGBToHSLFilterEffect.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrRGBToHSLFilterEffect.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrRRectBlurEffect.cpp b/src/gpu/effects/generated/GrRRectBlurEffect.cpp
index 68607b1..0e6bff9 100644
--- a/src/gpu/effects/generated/GrRRectBlurEffect.cpp
+++ b/src/gpu/effects/generated/GrRRectBlurEffect.cpp
@@ -49,7 +49,7 @@
new GrRRectBlurEffect(xformedSigma, devRRect.getBounds(),
SkRRectPriv::GetSimpleRadii(devRRect).fX, std::move(mask)));
}
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/effects/generated/GrRectBlurEffect.cpp b/src/gpu/effects/generated/GrRectBlurEffect.cpp
index 9cc89b7..226e86d 100644
--- a/src/gpu/effects/generated/GrRectBlurEffect.cpp
+++ b/src/gpu/effects/generated/GrRectBlurEffect.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrRectBlurEffect.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/gl/GrGLTexture.h b/src/gpu/gl/GrGLTexture.h
index 63cc649..f22704c 100644
--- a/src/gpu/gl/GrGLTexture.h
+++ b/src/gpu/gl/GrGLTexture.h
@@ -9,9 +9,9 @@
#ifndef GrGLTexture_DEFINED
#define GrGLTexture_DEFINED
-#include "include/gpu/GrTexture.h"
#include "include/private/GrGLTypesPriv.h"
#include "src/gpu/GrGpu.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/gl/GrGLUtil.h"
class GrGLGpu;
diff --git a/src/gpu/gl/GrGLVertexArray.h b/src/gpu/gl/GrGLVertexArray.h
index a253379..be72068 100644
--- a/src/gpu/gl/GrGLVertexArray.h
+++ b/src/gpu/gl/GrGLVertexArray.h
@@ -8,10 +8,10 @@
#ifndef GrGLVertexArray_DEFINED
#define GrGLVertexArray_DEFINED
-#include "include/gpu/GrGpuResource.h"
#include "include/gpu/gl/GrGLTypes.h"
#include "include/private/GrTypesPriv.h"
#include "include/private/SkTArray.h"
+#include "src/gpu/GrGpuResource.h"
#include "src/gpu/gl/GrGLDefines.h"
class GrBuffer;
diff --git a/src/gpu/glsl/GrGLSLPrimitiveProcessor.cpp b/src/gpu/glsl/GrGLSLPrimitiveProcessor.cpp
index 277164d..b2767bf 100644
--- a/src/gpu/glsl/GrGLSLPrimitiveProcessor.cpp
+++ b/src/gpu/glsl/GrGLSLPrimitiveProcessor.cpp
@@ -7,8 +7,8 @@
#include "src/gpu/glsl/GrGLSLPrimitiveProcessor.h"
-#include "include/gpu/GrTexture.h"
#include "src/gpu/GrCoordTransform.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
#include "src/gpu/glsl/GrGLSLUniformHandler.h"
diff --git a/src/gpu/glsl/GrGLSLXferProcessor.cpp b/src/gpu/glsl/GrGLSLXferProcessor.cpp
index 6778d32..d128072 100644
--- a/src/gpu/glsl/GrGLSLXferProcessor.cpp
+++ b/src/gpu/glsl/GrGLSLXferProcessor.cpp
@@ -7,8 +7,8 @@
#include "src/gpu/glsl/GrGLSLXferProcessor.h"
-#include "include/gpu/GrTexture.h"
#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrXferProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramDataManager.h"
diff --git a/src/gpu/gradients/generated/GrClampedGradientEffect.cpp b/src/gpu/gradients/generated/GrClampedGradientEffect.cpp
index 8437c44..2dd6ad0 100644
--- a/src/gpu/gradients/generated/GrClampedGradientEffect.cpp
+++ b/src/gpu/gradients/generated/GrClampedGradientEffect.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrClampedGradientEffect.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/gradients/generated/GrDualIntervalGradientColorizer.cpp b/src/gpu/gradients/generated/GrDualIntervalGradientColorizer.cpp
index b7ce502..77c824ee 100644
--- a/src/gpu/gradients/generated/GrDualIntervalGradientColorizer.cpp
+++ b/src/gpu/gradients/generated/GrDualIntervalGradientColorizer.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrDualIntervalGradientColorizer.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/gradients/generated/GrLinearGradientLayout.cpp b/src/gpu/gradients/generated/GrLinearGradientLayout.cpp
index b4da70d..ddc69e9 100644
--- a/src/gpu/gradients/generated/GrLinearGradientLayout.cpp
+++ b/src/gpu/gradients/generated/GrLinearGradientLayout.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrLinearGradientLayout.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/gradients/generated/GrRadialGradientLayout.cpp b/src/gpu/gradients/generated/GrRadialGradientLayout.cpp
index 79fbf48..64065e3 100644
--- a/src/gpu/gradients/generated/GrRadialGradientLayout.cpp
+++ b/src/gpu/gradients/generated/GrRadialGradientLayout.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrRadialGradientLayout.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/gradients/generated/GrSingleIntervalGradientColorizer.cpp b/src/gpu/gradients/generated/GrSingleIntervalGradientColorizer.cpp
index f4a3397..1335a74 100644
--- a/src/gpu/gradients/generated/GrSingleIntervalGradientColorizer.cpp
+++ b/src/gpu/gradients/generated/GrSingleIntervalGradientColorizer.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrSingleIntervalGradientColorizer.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/gradients/generated/GrSweepGradientLayout.cpp b/src/gpu/gradients/generated/GrSweepGradientLayout.cpp
index d62046f..8e15923 100644
--- a/src/gpu/gradients/generated/GrSweepGradientLayout.cpp
+++ b/src/gpu/gradients/generated/GrSweepGradientLayout.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrSweepGradientLayout.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/gradients/generated/GrTextureGradientColorizer.cpp b/src/gpu/gradients/generated/GrTextureGradientColorizer.cpp
index 61d03bf..f2b0791 100644
--- a/src/gpu/gradients/generated/GrTextureGradientColorizer.cpp
+++ b/src/gpu/gradients/generated/GrTextureGradientColorizer.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrTextureGradientColorizer.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/gradients/generated/GrTiledGradientEffect.cpp b/src/gpu/gradients/generated/GrTiledGradientEffect.cpp
index f16a83c..d164847 100644
--- a/src/gpu/gradients/generated/GrTiledGradientEffect.cpp
+++ b/src/gpu/gradients/generated/GrTiledGradientEffect.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrTiledGradientEffect.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/gradients/generated/GrTwoPointConicalGradientLayout.cpp b/src/gpu/gradients/generated/GrTwoPointConicalGradientLayout.cpp
index 5b5b1d8..eb47b72 100644
--- a/src/gpu/gradients/generated/GrTwoPointConicalGradientLayout.cpp
+++ b/src/gpu/gradients/generated/GrTwoPointConicalGradientLayout.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrTwoPointConicalGradientLayout.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/gradients/generated/GrUnrolledBinaryGradientColorizer.cpp b/src/gpu/gradients/generated/GrUnrolledBinaryGradientColorizer.cpp
index 3cf31b7..eed5f98 100644
--- a/src/gpu/gradients/generated/GrUnrolledBinaryGradientColorizer.cpp
+++ b/src/gpu/gradients/generated/GrUnrolledBinaryGradientColorizer.cpp
@@ -10,7 +10,7 @@
**************************************************************************************************/
#include "GrUnrolledBinaryGradientColorizer.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
#include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
diff --git a/src/gpu/mock/GrMockGpu.h b/src/gpu/mock/GrMockGpu.h
index 15e81ce..915a805 100644
--- a/src/gpu/mock/GrMockGpu.h
+++ b/src/gpu/mock/GrMockGpu.h
@@ -8,11 +8,11 @@
#ifndef GrMockGpu_DEFINED
#define GrMockGpu_DEFINED
-#include "include/gpu/GrTexture.h"
#include "include/private/SkTHash.h"
#include "src/gpu/GrGpu.h"
#include "src/gpu/GrRenderTarget.h"
#include "src/gpu/GrSemaphore.h"
+#include "src/gpu/GrTexture.h"
class GrMockOpsRenderPass;
struct GrMockOptions;
diff --git a/src/gpu/mock/GrMockTexture.h b/src/gpu/mock/GrMockTexture.h
index 640e41b..7ac6b54 100644
--- a/src/gpu/mock/GrMockTexture.h
+++ b/src/gpu/mock/GrMockTexture.h
@@ -7,11 +7,11 @@
#ifndef GrMockTexture_DEFINED
#define GrMockTexture_DEFINED
-#include "include/gpu/GrTexture.h"
#include "include/gpu/mock/GrMockTypes.h"
#include "src/gpu/GrRenderTarget.h"
#include "src/gpu/GrRenderTargetPriv.h"
#include "src/gpu/GrStencilAttachment.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTexturePriv.h"
#include "src/gpu/mock/GrMockGpu.h"
diff --git a/src/gpu/mtl/GrMtlGpu.h b/src/gpu/mtl/GrMtlGpu.h
index a27848f..9345511 100644
--- a/src/gpu/mtl/GrMtlGpu.h
+++ b/src/gpu/mtl/GrMtlGpu.h
@@ -9,10 +9,10 @@
#define GrMtlGpu_DEFINED
#include <list>
-#include "include/gpu/GrTexture.h"
#include "src/gpu/GrGpu.h"
#include "src/gpu/GrRenderTarget.h"
#include "src/gpu/GrSemaphore.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/mtl/GrMtlCaps.h"
#include "src/gpu/mtl/GrMtlResourceProvider.h"
diff --git a/src/gpu/mtl/GrMtlTexture.h b/src/gpu/mtl/GrMtlTexture.h
index 6478e7a..6cb8ec8 100644
--- a/src/gpu/mtl/GrMtlTexture.h
+++ b/src/gpu/mtl/GrMtlTexture.h
@@ -8,7 +8,7 @@
#ifndef GrMtlTexture_DEFINED
#define GrMtlTexture_DEFINED
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#import <Metal/Metal.h>
diff --git a/src/gpu/mtl/GrMtlUniformHandler.mm b/src/gpu/mtl/GrMtlUniformHandler.mm
index fd95933..2394a6d 100644
--- a/src/gpu/mtl/GrMtlUniformHandler.mm
+++ b/src/gpu/mtl/GrMtlUniformHandler.mm
@@ -5,7 +5,7 @@
* found in the LICENSE file.
*/
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTexturePriv.h"
#include "src/gpu/glsl/GrGLSLProgramBuilder.h"
#include "src/gpu/mtl/GrMtlUniformHandler.h"
diff --git a/src/gpu/mtl/GrMtlUtil.mm b/src/gpu/mtl/GrMtlUtil.mm
index b681be3..2bb6889 100644
--- a/src/gpu/mtl/GrMtlUtil.mm
+++ b/src/gpu/mtl/GrMtlUtil.mm
@@ -7,9 +7,9 @@
#include "src/gpu/mtl/GrMtlUtil.h"
-#include "include/gpu/GrSurface.h"
#include "include/private/GrTypesPriv.h"
#include "include/private/SkMutex.h"
+#include "src/gpu/GrSurface.h"
#include "src/gpu/mtl/GrMtlGpu.h"
#include "src/gpu/mtl/GrMtlRenderTarget.h"
#include "src/gpu/mtl/GrMtlTexture.h"
diff --git a/src/gpu/ops/GrOp.h b/src/gpu/ops/GrOp.h
index dd8c621..1fcd193 100644
--- a/src/gpu/ops/GrOp.h
+++ b/src/gpu/ops/GrOp.h
@@ -11,8 +11,8 @@
#include "include/core/SkMatrix.h"
#include "include/core/SkRect.h"
#include "include/core/SkString.h"
-#include "include/gpu/GrGpuResource.h"
#include "include/private/GrRecordingContext.h"
+#include "src/gpu/GrGpuResource.h"
#include "src/gpu/GrNonAtomicRef.h"
#include "src/gpu/GrTracing.h"
#include "src/gpu/GrXferProcessor.h"
diff --git a/src/gpu/ops/GrTextureOp.cpp b/src/gpu/ops/GrTextureOp.cpp
index 78d7a4b..c1c76b5 100644
--- a/src/gpu/ops/GrTextureOp.cpp
+++ b/src/gpu/ops/GrTextureOp.cpp
@@ -9,7 +9,6 @@
#include "include/core/SkPoint.h"
#include "include/core/SkPoint3.h"
-#include "include/gpu/GrTexture.h"
#include "include/private/GrRecordingContext.h"
#include "include/private/SkFloatingPoint.h"
#include "include/private/SkTo.h"
@@ -27,6 +26,7 @@
#include "src/gpu/GrResourceProvider.h"
#include "src/gpu/GrResourceProviderPriv.h"
#include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTexturePriv.h"
#include "src/gpu/GrTextureProxy.h"
#include "src/gpu/SkGr.h"
diff --git a/src/gpu/vk/GrVkImage.h b/src/gpu/vk/GrVkImage.h
index b0c688e..081e3c7 100644
--- a/src/gpu/vk/GrVkImage.h
+++ b/src/gpu/vk/GrVkImage.h
@@ -10,9 +10,9 @@
#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/GrTexture.h"
#include "src/gpu/vk/GrVkImageLayout.h"
#include "src/gpu/vk/GrVkResource.h"
diff --git a/src/gpu/vk/GrVkTexture.h b/src/gpu/vk/GrVkTexture.h
index 12e0dec..5b122cc 100644
--- a/src/gpu/vk/GrVkTexture.h
+++ b/src/gpu/vk/GrVkTexture.h
@@ -8,10 +8,10 @@
#ifndef GrVkTexture_DEFINED
#define GrVkTexture_DEFINED
-#include "include/gpu/GrTexture.h"
#include "include/gpu/vk/GrVkTypes.h"
#include "src/core/SkLRUCache.h"
#include "src/gpu/GrSamplerState.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/vk/GrVkImage.h"
class GrVkDescriptorSet;
diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp
index 22c452c..ac68c1e 100644
--- a/src/image/SkImage.cpp
+++ b/src/image/SkImage.cpp
@@ -28,7 +28,7 @@
#if SK_SUPPORT_GPU
#include "include/gpu/GrContext.h"
-#include "include/gpu/GrTexture.h"
+#include "src/gpu/GrTexture.h"
#include "src/image/SkImage_Gpu.h"
#endif
#include "include/gpu/GrBackendSurface.h"
diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp
index f3986eb..e97739c 100644
--- a/src/image/SkImage_Gpu.cpp
+++ b/src/image/SkImage_Gpu.cpp
@@ -12,7 +12,6 @@
#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/SkImageInfoPriv.h"
#include "src/core/SkAutoPixmapStorage.h"
@@ -37,6 +36,7 @@
#include "src/gpu/GrRenderTargetContext.h"
#include "src/gpu/GrSemaphore.h"
#include "src/gpu/GrSurfacePriv.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTextureAdjuster.h"
#include "src/gpu/GrTexturePriv.h"
#include "src/gpu/GrTextureProxy.h"
diff --git a/src/image/SkImage_GpuBase.cpp b/src/image/SkImage_GpuBase.cpp
index 51a0e01..168cbc7 100644
--- a/src/image/SkImage_GpuBase.cpp
+++ b/src/image/SkImage_GpuBase.cpp
@@ -10,7 +10,6 @@
#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"
@@ -19,6 +18,7 @@
#include "src/gpu/GrImageInfo.h"
#include "src/gpu/GrRecordingContextPriv.h"
#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTextureAdjuster.h"
#include "src/gpu/effects/GrYUVtoRGBEffect.h"
#include "src/image/SkImage_Gpu.h"
diff --git a/src/image/SkImage_GpuYUVA.cpp b/src/image/SkImage_GpuYUVA.cpp
index 2cfe5c2..89f63d2 100644
--- a/src/image/SkImage_GpuYUVA.cpp
+++ b/src/image/SkImage_GpuYUVA.cpp
@@ -11,7 +11,6 @@
#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"
@@ -22,6 +21,7 @@
#include "src/gpu/GrGpu.h"
#include "src/gpu/GrRecordingContextPriv.h"
#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/GrTextureProducer.h"
#include "src/gpu/SkGr.h"
#include "src/gpu/effects/GrYUVtoRGBEffect.h"
diff --git a/src/image/SkSurface_Gpu.cpp b/src/image/SkSurface_Gpu.cpp
index 015e0e3..234f413 100644
--- a/src/image/SkSurface_Gpu.cpp
+++ b/src/image/SkSurface_Gpu.cpp
@@ -9,7 +9,6 @@
#include "include/core/SkDeferredDisplayList.h"
#include "include/core/SkSurfaceCharacterization.h"
#include "include/gpu/GrBackendSurface.h"
-#include "include/gpu/GrTexture.h"
#include "include/private/GrRecordingContext.h"
#include "src/core/SkImagePriv.h"
#include "src/gpu/GrAHardwareBufferUtils.h"
@@ -20,6 +19,7 @@
#include "src/gpu/GrRenderTarget.h"
#include "src/gpu/GrRenderTargetContextPriv.h"
#include "src/gpu/GrRenderTargetProxyPriv.h"
+#include "src/gpu/GrTexture.h"
#include "src/gpu/SkGpuDevice.h"
#include "src/image/SkImage_Base.h"
#include "src/image/SkImage_Gpu.h"
diff --git a/src/image/SkSurface_GpuMtl.mm b/src/image/SkSurface_GpuMtl.mm
index 8015948..1cf6f2a 100644
--- a/src/image/SkSurface_GpuMtl.mm
+++ b/src/image/SkSurface_GpuMtl.mm
@@ -19,7 +19,7 @@
#if SK_SUPPORT_GPU
-#include "include/gpu/GrSurface.h"
+#include "src/gpu/GrSurface.h"
#include "src/gpu/mtl/GrMtlTextureRenderTarget.h"
#ifdef SK_METAL
diff --git a/src/sksl/SkSLCPPCodeGenerator.cpp b/src/sksl/SkSLCPPCodeGenerator.cpp
index 738f6af..0741c99 100644
--- a/src/sksl/SkSLCPPCodeGenerator.cpp
+++ b/src/sksl/SkSLCPPCodeGenerator.cpp
@@ -1292,7 +1292,7 @@
this->writef(kFragmentProcessorHeader, fullName);
this->writef("#include \"%s.h\"\n\n", fullName);
this->writeSection(CPP_SECTION);
- this->writef("#include \"include/gpu/GrTexture.h\"\n"
+ this->writef("#include \"src/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"