Index: src/gpu/gl/GrGLContext.cpp |
diff --git a/src/gpu/gl/GrGLContext.cpp b/src/gpu/gl/GrGLContext.cpp |
index 537363493f87b9b62f19ba28c7f51e4cbc2fd196..fc8b195fd37858d48ac27182a75dd818a10bdb3d 100644 |
--- a/src/gpu/gl/GrGLContext.cpp |
+++ b/src/gpu/gl/GrGLContext.cpp |
@@ -47,6 +47,16 @@ bool GrGLContextInfo::initialize(const GrGLInterface* interface) { |
fVendor = GrGLGetVendor(interface); |
+ /* |
+ * Qualcomm drivers have a horrendous bug with some drivers. Though they claim to |
+ * support GLES 3.00, some perfectly valid GLSL300 shaders will only compile with |
+ * #version 100, and will fail to compile with #version 300 es. In the long term, we |
+ * need to lock this down to a specific driver version. |
+ */ |
+ if (kQualcomm_GrGLVendor == fVendor) { |
+ fGLSLGeneration = k110_GrGLSLGeneration; |
+ } |
+ |
fRenderer = GrGLGetRendererFromString(renderer); |
fIsMesa = GrGLIsMesaFromVersionString(ver); |