Use CPU arrays for dynamic indices/vertices on ARM GPUs.
Review URL: https://codereview.appspot.com/7365047

git-svn-id: http://skia.googlecode.com/svn/trunk/include@7810 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gpu/gl/GrGLConfig.h b/gpu/gl/GrGLConfig.h
index 20d9031..ea24037 100644
--- a/gpu/gl/GrGLConfig.h
+++ b/gpu/gl/GrGLConfig.h
@@ -96,6 +96,10 @@
  * GR_GL_USE_NV_PATH_RENDERING: Enable experimental support for
  * GL_NV_path_rendering. There are known issues with clipping, non-AA paths, and
  * perspective.
+ *
+ * GR_GL_MUST_USE_VBO: Indicates that all vertices and indices must be rendered
+ * from VBOs. Chromium's command buffer doesn't allow glVertexAttribArray with
+ * ARARY_BUFFER 0 bound or glDrawElements with ELEMENT_ARRAY_BUFFER 0 bound.
  */
 
 #if !defined(GR_GL_LOG_CALLS)
@@ -146,6 +150,10 @@
     #define GR_GL_USE_NV_PATH_RENDERING                 0
 #endif
 
+#if !defined(GR_GL_MUST_USE_VBO)
+    #define GR_GL_MUST_USE_VBO                          0
+#endif
+
 /**
  * There is a strange bug that occurs on Macs with NVIDIA GPUs. We don't
  * fully understand it. When (element) array buffers are continually
diff --git a/gpu/gl/GrGLConfig_chrome.h b/gpu/gl/GrGLConfig_chrome.h
index 50ea34c..3a74aba 100644
--- a/gpu/gl/GrGLConfig_chrome.h
+++ b/gpu/gl/GrGLConfig_chrome.h
@@ -34,4 +34,7 @@
 // CheckFramebufferStatus in chrome synchronizes the gpu and renderer processes.
 #define GR_GL_CHECK_FBO_STATUS_ONCE_PER_FORMAT      1
 
+// Non-VBO vertices and indices are not allowed in Chromium.
+#define GR_GL_MUST_USE_VBO                          1
+
 #endif