Index: src/gpu/gl/GrGLCaps.cpp |
diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp |
index c2ace6cd368948d25d60f95b766895dcfd1ce740..2302ef05685ae96a65f6b8ff69020f340bf70cd5 100644 |
--- a/src/gpu/gl/GrGLCaps.cpp |
+++ b/src/gpu/gl/GrGLCaps.cpp |
@@ -594,6 +594,24 @@ void GrGLCaps::initGLSL(const GrGLContextInfo& ctxInfo) { |
glslCaps->fBindlessTextureSupport = ctxInfo.hasExtension("GL_NV_bindless_texture"); |
+ if (kGL_GrGLStandard == standard) { |
+ glslCaps->fFlatInterpolationSupport = ctxInfo.glslGeneration() >= k130_GrGLSLGeneration; |
+ } else { |
+ glslCaps->fFlatInterpolationSupport = |
+ ctxInfo.glslGeneration() >= k330_GrGLSLGeneration; // This is the value for GLSL ES 3.0. |
+ } |
+ |
+ if (kGL_GrGLStandard == standard) { |
+ glslCaps->fNoPerspectiveInterpolationSupport = |
+ ctxInfo.glslGeneration() >= k130_GrGLSLGeneration; |
+ } else { |
+ if (ctxInfo.hasExtension("GL_NV_shader_noperspective_interpolation")) { |
+ glslCaps->fNoPerspectiveInterpolationSupport = true; |
+ glslCaps->fNoPerspectiveInterpolationExtensionString = |
+ "GL_NV_shader_noperspective_interpolation"; |
+ } |
+ } |
+ |
// Adreno GPUs have a tendency to drop tiles when there is a divide-by-zero in a shader |
glslCaps->fDropsTileOnZeroDivide = kQualcomm_GrGLVendor == ctxInfo.vendor(); |