From 028e4a4d7c4a38a72fd93a97fc9cad9922c70b00 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 8 Aug 2003 15:01:14 +0000 Subject: [PATCH] *** empty log message *** --- src/video/quartz/SDL_QuartzVideo.m | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/video/quartz/SDL_QuartzVideo.m b/src/video/quartz/SDL_QuartzVideo.m index 5c2ea5928..ed2ce9776 100644 --- a/src/video/quartz/SDL_QuartzVideo.m +++ b/src/video/quartz/SDL_QuartzVideo.m @@ -1468,6 +1468,31 @@ static int QZ_SetupOpenGL (_THIS, int bpp, Uint32 flags) { 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;