| Index: src/gpu/gl/GrGLCaps.cpp
|
| diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp
|
| index 8474873ffff5d937f5edc2084e67e0bc5002ac17..a5053774220bf97b7e98e30181f0f32c505c5a53 100644
|
| --- a/src/gpu/gl/GrGLCaps.cpp
|
| +++ b/src/gpu/gl/GrGLCaps.cpp
|
| @@ -234,8 +234,19 @@ bool GrGLCaps::init(const GrGLContextInfo& ctxInfo, const GrGLInterface* gli) {
|
| if (kGLES_GrGLStandard == standard) {
|
| if (ctxInfo.hasExtension("GL_EXT_shader_framebuffer_fetch")) {
|
| fFBFetchType = kEXT_FBFetchType;
|
| + fFBFetchColorName = "gl_LastFragData[0]";
|
| + fFBFetchExtensionString = "GL_EXT_shader_framebuffer_fetch";
|
| } else if (ctxInfo.hasExtension("GL_NV_shader_framebuffer_fetch")) {
|
| fFBFetchType = kNV_FBFetchType;
|
| + fFBFetchColorName = "gl_LastFragData[0]";
|
| + fFBFetchExtensionString = "GL_NV_shader_framebuffer_fetch";
|
| + } else if (ctxInfo.hasExtension("GL_ARM_shader_framebuffer_fetch")) {
|
| + // The arm extension requires specifically enabling MSAA fetching per sample.
|
| + // On some devices this may have a perf hit. Also multiple render targets are disabled
|
| + GR_GL_CALL(gli, Enable(GR_GL_FETCH_PER_SAMPLE_ARM));
|
| + fFBFetchType = kARM_FBFetchType;
|
| + fFBFetchColorName = "gl_LastFragColorARM";
|
| + fFBFetchExtensionString = "GL_ARM_shader_framebuffer_fetch";
|
| }
|
| }
|
|
|
| @@ -779,10 +790,12 @@ SkString GrGLCaps::dump() const {
|
| "None",
|
| "EXT",
|
| "NV",
|
| + "ARM",
|
| };
|
| GR_STATIC_ASSERT(0 == kNone_FBFetchType);
|
| GR_STATIC_ASSERT(1 == kEXT_FBFetchType);
|
| GR_STATIC_ASSERT(2 == kNV_FBFetchType);
|
| + GR_STATIC_ASSERT(3 == kARM_FBFetchType);
|
| GR_STATIC_ASSERT(SK_ARRAY_COUNT(kFBFetchTypeStr) == kLast_FBFetchType + 1);
|
|
|
| static const char* kInvalidateFBTypeStr[] = {
|
|
|