src/video/quartz/SDL_QuartzVideo.m
changeset 668 f91ded895274
parent 657 714053f573e7
child 674 be597a247e20
--- a/src/video/quartz/SDL_QuartzVideo.m	Wed Aug 06 21:54:32 2003 +0000
+++ b/src/video/quartz/SDL_QuartzVideo.m	Fri Aug 08 15:01:14 2003 +0000
@@ -1468,6 +1468,31 @@
         return 0;
     }
 
+    /*
+     * Wisdom from Apple engineer in reference to UT2003's OpenGL performance:
+     *  "You are blowing a couple of the internal OpenGL function caches. This
+     *  appears to be happening in the VAO case.  You can tell OpenGL to up
+     *  the cache size by issuing the following calls right after you create
+     *  the OpenGL context.  The default cache size is 16."    --ryan.
+     */
+
+    #ifndef GLI_ARRAY_FUNC_CACHE_MAX
+    #define GLI_ARRAY_FUNC_CACHE_MAX 284
+    #endif
+
+    #ifndef GLI_SUBMIT_FUNC_CACHE_MAX
+    #define GLI_SUBMIT_FUNC_CACHE_MAX 280
+    #endif
+
+    {
+        long cache_max = 64;
+        CGLContextObj ctx = [ gl_context cglContext ];
+        CGLSetParameter (ctx, GLI_SUBMIT_FUNC_CACHE_MAX, &cache_max);
+        CGLSetParameter (ctx, GLI_ARRAY_FUNC_CACHE_MAX, &cache_max);
+    }
+
+    /* End Wisdom from Apple Engineer section. --ryan. */
+
     /* Convince SDL that the GL "driver" is loaded */
     this->gl_config.driver_loaded = 1;