Better workaround for osx / nv bug

Review URL: http://codereview.appspot.com/5727044/



git-svn-id: http://skia.googlecode.com/svn/trunk@3308 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/include/gpu/gl/GrGLConfig.h b/include/gpu/gl/GrGLConfig.h
index 2cc4f31..806f055 100644
--- a/include/gpu/gl/GrGLConfig.h
+++ b/include/gpu/gl/GrGLConfig.h
@@ -152,12 +152,11 @@
 /**
  * There is a strange bug that occurs on Macs with NVIDIA GPUs. We don't
  * fully understand it. When (element) array buffers are continually
- * respecified using glBufferData at the same (or perhaps just a small) size
- * performance can fall off of a cliff. The driver winds up performing many
- * DMA mapping / unmappings and chews up ~50% of the core. However, it has been
- * observed that respecifiying the buffer with a larger size and then writing
- * the small amount of actual data using glBufferSubData prevents the bad
- * behavior.
+ * respecified using glBufferData performance can fall off of a cliff. The
+ * driver winds up performing many DMA mapping / unmappings and chews up ~50% of
+ * the core. However, it has been observed that occaisonally respecifiying the
+ * buffer using glBufferData and then writing data using glBufferSubData
+ * prevents the bad behavior.
  *
  * There is a lot of uncertainty around this issue. In Chrome backgrounding
  * the tab somehow initiates this behavior and we don't know what the connection
@@ -169,11 +168,8 @@
  * The issue is tracked at:
  * http://code.google.com/p/chromium/issues/detail?id=114865
  *
- * When GR_GL_USE_BUFFER_DATA_NULL_HINT is not set we encounter the bug
- * if we keep uploading small vetex / index sizes. So, every 1K uploads we
- * act as though GR_GL_USE_BUFFER_DATA_NULL_HINT was set: we specify the buffer
- * at full size with a NULL data ptr and then do a partial update with
- * glBufferSubData.
+ * When the workaround is enabled we will use the glBufferData / glBufferSubData
+ * trick every 128 array buffer uploads.
  *
  * Hopefully we will understand this better and have a cleaner fix or get a
  * OS/driver level fix.