| Index: src/gpu/GrGpu.cpp
 | 
| diff --git a/src/gpu/GrGpu.cpp b/src/gpu/GrGpu.cpp
 | 
| index e7adf0b3219ae8c2f55165042342f92afdc53d83..4fcd4d57af0a23b7f7c316c813fd7c25b942db38 100644
 | 
| --- a/src/gpu/GrGpu.cpp
 | 
| +++ b/src/gpu/GrGpu.cpp
 | 
| @@ -166,6 +166,10 @@ GrTexture* GrGpu::wrapBackendTexture(const GrBackendTextureDesc& desc, GrWrapOwn
 | 
|          !this->caps()->isConfigRenderable(desc.fConfig, desc.fSampleCnt > 0)) {
 | 
|          return nullptr;
 | 
|      }
 | 
| +    int maxSize = this->caps()->maxTextureSize();
 | 
| +    if (desc.fWidth > maxSize || desc.fHeight > maxSize) {
 | 
| +        return nullptr;
 | 
| +    }
 | 
|      GrTexture* tex = this->onWrapBackendTexture(desc, ownership);
 | 
|      if (nullptr == tex) {
 | 
|          return nullptr;
 | 
| @@ -189,6 +193,22 @@ GrRenderTarget* GrGpu::wrapBackendRenderTarget(const GrBackendRenderTargetDesc&
 | 
|      return this->onWrapBackendRenderTarget(desc, ownership);
 | 
|  }
 | 
|  
 | 
| +GrRenderTarget* GrGpu::wrapBackendTextureAsRenderTarget(const GrBackendTextureDesc& desc,
 | 
| +                                                        GrWrapOwnership ownership) {
 | 
| +    this->handleDirtyContext();
 | 
| +    if (!(desc.fFlags & kRenderTarget_GrBackendTextureFlag)) {
 | 
| +      return nullptr;
 | 
| +    }
 | 
| +    if (!this->caps()->isConfigRenderable(desc.fConfig, desc.fSampleCnt > 0)) {
 | 
| +        return nullptr;
 | 
| +    }
 | 
| +    int maxSize = this->caps()->maxTextureSize();
 | 
| +    if (desc.fWidth > maxSize || desc.fHeight > maxSize) {
 | 
| +        return nullptr;
 | 
| +    }
 | 
| +    return this->onWrapBackendTextureAsRenderTarget(desc, ownership);
 | 
| +}
 | 
| +
 | 
|  GrVertexBuffer* GrGpu::createVertexBuffer(size_t size, bool dynamic) {
 | 
|      this->handleDirtyContext();
 | 
|      GrVertexBuffer* vb = this->onCreateVertexBuffer(size, dynamic);
 | 
| 
 |