fDualSourceBlendingSupport = false;
fBufferLockSupport = false;
fPathStencilingSupport = false;
+ fDstReadInShaderSupport = false;
+ fReuseScratchTextures = true;
fMaxRenderTargetSize = 0;
fMaxTextureSize = 0;
fDualSourceBlendingSupport = other.fDualSourceBlendingSupport;
fBufferLockSupport = other.fBufferLockSupport;
fPathStencilingSupport = other.fPathStencilingSupport;
+ fDstReadInShaderSupport = other.fDstReadInShaderSupport;
+ fReuseScratchTextures = other.fReuseScratchTextures;
fMaxRenderTargetSize = other.fMaxRenderTargetSize;
fMaxTextureSize = other.fMaxTextureSize;
GrPrintf("Buffer Lock Support : %s\n", gNY[fBufferLockSupport]);
GrPrintf("Path Stenciling Support : %s\n", gNY[fPathStencilingSupport]);
GrPrintf("Dst Read In Shader Support : %s\n", gNY[fDstReadInShaderSupport]);
+ GrPrintf("Reuse Scratch Textures : %s\n", gNY[fReuseScratchTextures]);
GrPrintf("Max Texture Size : %d\n", fMaxTextureSize);
GrPrintf("Max Render Target Size : %d\n", fMaxRenderTargetSize);
GrPrintf("Max Sample Count : %d\n", fMaxSampleCount);
bool bufferLockSupport() const { return fBufferLockSupport; }
bool pathStencilingSupport() const { return fPathStencilingSupport; }
bool dstReadInShaderSupport() const { return fDstReadInShaderSupport; }
+ bool reuseScratchTextures() const { return fReuseScratchTextures; }
int maxRenderTargetSize() const { return fMaxRenderTargetSize; }
int maxTextureSize() const { return fMaxTextureSize; }
bool fBufferLockSupport : 1;
bool fPathStencilingSupport : 1;
bool fDstReadInShaderSupport : 1;
+ bool fReuseScratchTextures : 1;
int fMaxRenderTargetSize;
int fMaxTextureSize;
fDstReadInShaderSupport = kNone_FBFetchType != fFBFetchType;
+ fReuseScratchTextures = kARM_GrGLVendor != ctxInfo.vendor();
+
// Enable supported shader-related caps
if (kDesktop_GrGLBinding == binding) {
fDualSourceBlendingSupport = ctxInfo.version() >= GR_GL_VER(3,3) ||