Thank you for the updates DR0ID, I have run your pygame-alternate2.py: 39.6% CPU on Mac OS X, up to 42% CPU during full screen scrolling.
I notice the spikes in CPU in the rabbyt version as well both on Linux (Pentium M / Intel GPU) and Mac (PPC G4 / ATI GPU) both systems spend the majority of the time around the 6%-7% CPU mark and usually during the full screen scroll I see a spike upwards towards 18% CPU for what seems to last less than a second then immediately drops back down to 6%-7% CPU range. I can only guess that it might be related to loading/addressing of textures. Animations under Ubuntu 7.10 Gutsy Gibbon running on Dell Latitude D510 hardware Linux Kernel 2.6.22-15-generic Gnome 2.20.1 Intel Celeron M processor 1.4GHz 512MB Ram With pyglet a good trick is $python -m pyglet.info which will dump information on your system including the detected/reported OpenGL system (what it supports/extensions). It might be useful for comparison purposes: Mac OS X System Information: python -m pyglet.info Python ------------------------------------------------------------------------------ sys.version: 2.5.2 (r252:60911, Feb 22 2008, 07:57:53) [GCC 4.0.1 (Apple Computer, Inc. build 5363)] sys.platform: darwin os.getcwd(): /Users/pn/Documents/PYTHON FILES/Example Code/Game Frameworks/PyGame, Pyglet, and Rabbyt Combined/shadowtestbattery2 pyglet ------------------------------------------------------------------------------ pyglet.version: 1.1 pyglet.__file__: /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/pyglet/__init__.py pyglet.options['debug_trace_depth'] = 1 pyglet.options['audio'] = ('directsound', 'openal', 'alsa', 'silent') pyglet.options['xsync'] = True pyglet.options['debug_trace_flush'] = True pyglet.options['debug_win32'] = False pyglet.options['debug_gl_trace'] = False pyglet.options['debug_x11'] = False pyglet.options['shadow_window'] = True pyglet.options['debug_font'] = False pyglet.options['debug_media'] = False pyglet.options['debug_trace'] = False pyglet.options['debug_lib'] = False pyglet.options['graphics_vbo'] = True pyglet.options['vsync'] = None pyglet.options['debug_trace_args'] = False pyglet.options['debug_gl'] = True pyglet.options['debug_graphics_batch'] = False pyglet.options['font'] = ('gdiplus', 'win32') pyglet.options['debug_texture'] = False pyglet.options['debug_gl_trace_args'] = False pyglet.window ------------------------------------------------------------------------------ platform: <pyglet.window.carbon.CarbonPlatform object at 0x9a8770> display: <pyglet.window.carbon.CarbonDisplay object at 0x9a87b0> screens[0]: CarbonScreen(x=0, y=0, width=1680, height=1050) config['double_buffer'] = 1 config['stereo'] = 0 config['buffer_size'] = 32 config['aux_buffers'] = 0 config['sample_buffers'] = 0 config['samples'] = 0 config['red_size'] = 8 config['green_size'] = 8 config['blue_size'] = 8 config['alpha_size'] = 8 config['depth_size'] = 32 config['stencil_size'] = 0 config['accum_red_size'] = 0 config['accum_green_size'] = 0 config['accum_blue_size'] = 0 config['accum_alpha_size'] = 0 context: CarbonGLContext() pyglet.gl.gl_info ------------------------------------------------------------------------------ gl_info.get_version(): 1.3 ATI-1.5.28 gl_info.get_vendor(): ATI Technologies Inc. gl_info.get_renderer(): ATI Radeon 9200 OpenGL Engine gl_info.get_extensions(): GL_APPLE_aux_depth_stencil GL_APPLE_client_storage GL_APPLE_element_array GL_APPLE_fence GL_APPLE_flush_buffer_range GL_APPLE_flush_render GL_APPLE_packed_pixels GL_APPLE_pixel_buffer GL_APPLE_specular_vector GL_APPLE_texture_range GL_APPLE_transform_hint GL_APPLE_vertex_array_object GL_APPLE_vertex_array_range GL_APPLE_vertex_program_evaluators GL_APPLE_ycbcr_422 GL_ARB_imaging GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_pixel_buffer_object GL_ARB_shader_objects GL_ARB_shading_language_100 GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_texture_rectangle GL_ARB_transpose_matrix GL_ARB_vertex_blend GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_window_pos GL_ATI_array_rev_comps_in_4_bytes GL_ATI_blend_equation_separate GL_ATI_blend_weighted_minmax GL_ATI_text_fragment_shader GL_ATI_texture_env_combine3 GL_ATI_texture_mirror_once GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_clip_volume_hint GL_EXT_compiled_vertex_array GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_multi_draw_arrays GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_stencil_wrap GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_s3tc GL_EXT_texture_env_add GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod_bias GL_EXT_texture_rectangle GL_EXT_transform_feedback GL_IBM_rasterpos_clip GL_NV_blend_square GL_NV_fog_distance GL_NV_light_max_exponent GL_NV_texgen_reflection GL_SGIS_generate_mipmap GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_SGI_color_matrix pyglet.gl.glu_info ------------------------------------------------------------------------------ glu_info.get_version(): 1.3 MacOSX glu_info.get_extensions(): pyglet.gl.glx_info ------------------------------------------------------------------------------ GLX not available. pyglet.media ------------------------------------------------------------------------------ driver: pyglet.media.drivers.openal pyglet.media.avbin ------------------------------------------------------------------------------ Library: <CDLL '/usr/local/lib/libavbin.dylib', handle 491ae20 at 1e5b6b0> AVbin version: 5 FFmpeg revision: 13661 pyglet.media.drivers.openal ------------------------------------------------------------------------------ Library: <CDLL '/System/Library/Frameworks/OpenAL.framework/OpenAL', handle 86a860 at 1e676f0> Version: (1, 1) Extensions: ALC_EXT_CAPTURE ALC_ENUMERATION_EXT ALC_EXT_MAC_OSX ALC_EXT_ASA ALC_EXT_ASA_DISTORTION ALC_EXT_ASA_ROGER_BEEP Also included and useful is the output of tools/gl_info.py (included in source distro): Omitted for now unless requested for comparison. If there are any Pygame diagnostic utilities you want me to run let me know. Cheers, PN