Page 1 of 1

Low frame rate when looking at Sun or Planets

Posted: Thu Jun 09, 2011 10:42 am
by hiddenengine
I'm trying to work out the reason for my low frame rates...
I'm running XP SP3 on an Intel Core2 Duo E8200 @ 2.66GHz with 3GB of RAM. I have two graphics cards fitted, an Nvidia 9500GT running two displays (1280x1024 + 1920x1280) and an Nvidia 210 (1280x1024). I'm running Oolite on the 9500GT on the 1280x1024 display (windowed, full screen doesn't work). I'm using the latest Nvidia drivers (275.33).

I'm running Oolite 1.75.2 with Dredgers, Fuel Tank, IronHide, RockHermit Locator and Kestrel&Falcon OXPs active although disabling the OXPs doesn't seem to make any difference.

Reduced Detail is OFF, Detailed Planets is ON, Shader Effects are showing as "Not available"...

If I am flying around looking at stars, I get about 23 FPS even with over 70 or 80 entities being tracked. The FurMark GPU probe shows the GPU running at about 2% load with the memory controller at about 6% load. One CPU is 100% loaded, the other is idle.

When I get into combat or look at planet or stars, however, the frame rate quickly drops - it may go as low as 4 FPS.

I would have thought that my equipment was more than reasonable, especially given the discussions on "minimal systems" that people are very proud about...

Anyone know where my bottleneck is and why shaders are not available (looking at the Nvidia card specs, I though that they should be available)?

Thanks in advance for all suggestions...

Re: Low frame rate when looking at Sun or Planets

Posted: Thu Jun 09, 2011 10:47 am
by DaddyHoggy
Can you post your latest.log here.

That's a way better spec machine than me and I get a better frame rate than that - it might be an issue with multiple gpus or even multiple screens (I recall there were some multiple screen issues discussed in the past) - it would be useful to see from the log what Oolite has actually detected from a graphics point of view and what version of OpenGL it thinks its using...

Re: Low frame rate when looking at Sun or Planets

Posted: Thu Jun 09, 2011 10:51 am
by hiddenengine
Hi DaddyHoggy,

The latest.log is below. There is more in the file at the end but it is all JavaScript warnings...

Cheers!

10:59:09.796 [log.header]: Opening log for Oolite version 1.75.2 (x86-32 test release) under Windows at 2011-06-09 10:59:09 +0100.
2 processors detected.
Build options: spoken messages, mass/fuel pricing, JavaScript console support, OXP verifier, localization tools, debug GraphViz support, JavaScript profiling.

Note that the contents of the log file can be adjusted by editing logcontrol.plist.

10:59:09.968 [display.mode.list.native]: Windows native resolution detected: 1280 x 1024
10:59:10.656 [joystick.init]: Number of joysticks detected: 1
10:59:10.687 [dataCache.rebuild.pathsChanged]: Cache is stale (search paths have changed). Rebuilding from scratch.
10:59:10.687 [searchPaths.dumpAll]: Unrestricted mode - resource paths:
Resources
../AddOns
../AddOns/Constrictor_morehints.oxp
../AddOns/Dredgers 2.4.5.oxp
../AddOns/Fuel Tank v2.2.oxp
../AddOns/IronHide 2.00.oxp
../AddOns/Kestrel&Falcon.oxp
../AddOns/Rock_Hermit_Locator1.3.3.oxp
10:59:10.687 [rendering.opengl.version]: OpenGL renderer version: 1.1.0 ("1.1.0"). Vendor: "Microsoft Corporation". Renderer: "GDI Generic".
10:59:10.687 [rendering.opengl.extensions]: OpenGL extensions (3):
GL_EXT_paletted_texture, GL_EXT_bgra, GL_WIN_swap_hint
10:59:10.703 [rendering.opengl.shader.support]: Shaders will not be used (OpenGL extension GL_ARB_shading_language_100 is not available).
10:59:10.828 [shipData.load.begin]: Loading ship data.
10:59:11.062 [script.load.world.listAll]: Loaded 9 world scripts:
deep_space_dredger 2.4.5
IronHide Armour Script 2.00
oolite-cloaking-device 1.75.2
oolite-constrictor-hunt 1.75.2
oolite-constrictor-more-hints 2.0
oolite-nova 1.75.2
oolite-thargoid-plans 1.75.2
oolite-trumbles 1.75.2
rockHermit_Locator 1.3.3
10:59:12.078 [loading.complete]: ========== Loading complete. ==========
10:59:16.812 [script.load.world.listAll]: Loaded 9 world scripts:
deep_space_dredger 2.4.5
IronHide Armour Script 2.00
oolite-cloaking-device 1.75.2
oolite-constrictor-hunt 1.75.2
oolite-constrictor-more-hints 2.0
oolite-nova 1.75.2
oolite-thargoid-plans 1.75.2
oolite-trumbles 1.75.2
rockHermit_Locator 1.3.3
11:02:56.140 [script.javaScript.exception.notDefined]: ***** JavaScript exception (oolite-constrictor-more-hints 2.0): ReferenceError: yes is not defined

Re: Low frame rate when looking at Sun or Planets

Posted: Thu Jun 09, 2011 10:54 am
by DaddyHoggy
10:59:10.687 [rendering.opengl.version]: OpenGL renderer version: 1.1.0 ("1.1.0"). Vendor: "Microsoft Corporation". Renderer: "GDI Generic".
Check your graphics card driver - Oolite is only using the inbuilt and complete crap Microsoft one, and not the Nvidia one you think you're running...

This could be a bug in Oolite though (multiple graphics card issues perhaps?)

Somebody more clever than I will be along shortly!

Re: Low frame rate when looking at Sun or Planets

Posted: Thu Jun 09, 2011 11:05 am
by Svengali
Yes, falling back to the software renderer is bad for every application.

Maybe the -nosplash start option (or the splash-screen = NO; in GNUStepDefaults) can help.

Re: Low frame rate when looking at Sun or Planets

Posted: Thu Jun 09, 2011 11:12 am
by hiddenengine
Your suspicions are correct.

I disabled both displays on the 9500GT so I'm only using the G210 now. When I restarted Oolite the latest.log shows as below. More importantly, I get a rock solid 60 frames per second, which is the display rate for the monitor, even when looking at a planet! GPU load is up at about 55%.

That's a massive improvement.

Now, anyone know why it doesn't like starting up with the second graphics card enabled? Is this a Microsoft thing or an Oolite thing?

12:02:50.843 [rendering.opengl.version]: OpenGL renderer version: 3.3.0 ("3.3.0"). Vendor: "NVIDIA Corporation". Renderer: "GeForce 210/PCI/SSE2".
12:02:50.843 [rendering.opengl.extensions]: OpenGL extensions (232):
GL_ARB_draw_instanced, GL_NV_texture_lod_clamp, GL_NV_float_buffer, GL_ARB_occlusion_query, GL_EXT_texture_env_add, GL_ARB_texture_env_dot3, GL_ARB_sync, GL_EXTX_framebuffer_mixed_formats, GL_ARB_texture_multisample, GL_NV_texture_env_combine4, GL_ARB_point_parameters, GL_OES_depth24, GL_ARB_vertex_array_object, GL_NVX_gpu_memory_info, GL_ARB_blend_func_extended, GL_NV_explicit_multisample, GL_EXT_provoking_vertex, GL_NV_texture_shader2, GL_EXT_blend_equation_separate, GL_NV_texture_shader3, GL_ARB_texture_non_power_of_two, GL_ARB_texture_mirrored_repeat, GL_EXT_multi_draw_arrays, GL_NV_fence, GL_ARB_timer_query, GL_ARB_texture_buffer_object, GL_OES_packed_depth_stencil, GL_NV_occlusion_query, GL_EXT_abgr, GL_ARB_vertex_program, GL_ATI_texture_float, GL_ARB_draw_buffers_blend, GL_ARB_viewport_array, GL_KTX_buffer_region, GL_ARB_shadow, GL_NV_light_max_exponent, GL_EXT_texture_cube_map, GL_EXT_texture_compression_dxt1, GL_NV_texture_multisample, GL_NV_primitive_restart, GL_EXT_framebuffer_object, GL_EXT_texture_sRGB, GL_ARB_get_program_binary, GL_ARB_multitexture, GL_NV_half_float, GL_NV_copy_image, GL_NV_path_rendering, GL_OES_depth32, GL_NV_register_combiners, GL_EXT_texture_compression_rgtc, GL_ARB_shader_objects, GL_EXT_blend_func_separate, GL_EXT_bgra, GL_ARB_pixel_buffer_object, GL_NV_fragment_program2, GL_EXT_Cg_shader, GL_ARB_draw_buffers, GL_EXT_separate_shader_objects, GL_NV_texgen_reflection, GL_ARB_texture_env_crossbar, GL_ARB_fragment_shader, GL_EXT_texture_swizzle, GL_EXT_fog_coord, GL_EXT_vertex_array_bgra, GL_EXT_framebuffer_blit, GL_NV_copy_depth_to_color, GL_ARB_texture_compression_rgtc, GL_ARB_sample_shading, GL_NV_vertex_program1_1, GL_ARB_seamless_cube_map, GL_WIN_swap_hint, GL_EXT_texture_shared_exponent, GL_EXT_texture_format_BGRA8888, GL_EXT_geometry_shader4, GL_EXT_direct_state_access, GL_EXT_compiled_vertex_array, GL_NV_parameter_buffer_object2, GL_NV_vertex_array_range2, GL_ARB_shading_language_include, GL_EXT_separate_specular_color, GL_ARB_vertex_type_2_10_10_10_rev, GL_EXT_vertex_array, GL_ARB_shading_language_100, GL_OES_texture_float, GL_EXT_rescale_normal, GL_ARB_texture_float, GL_EXT_packed_depth_stencil, GL_EXT_bindable_uniform, GL_ARB_texture_swizzle, GL_ARB_half_float_pixel, GL_EXT_texture_compression_s3tc, GL_EXT_draw_instanced, GL_ARB_occlusion_query2, GL_NV_transform_feedback, GL_NV_texture_compression_vtc, GL_ARB_texture_rgb10_a2ui, GL_SGIS_texture_lod, WGL_EXT_swap_control, GL_ARB_geometry_shader4, GL_NV_point_sprite, GL_ARB_framebuffer_object, GL_NV_conditional_render, GL_EXT_stencil_two_side, GL_ARB_texture_rg, GL_OES_get_program_binary, GL_NV_texture_expand_normal, GL_EXT_texture_type_2_10_10_10_REV, GL_ARB_color_buffer_float, GL_NV_gpu_program4_1, GL_NV_framebuffer_multisample_coverage, GL_EXT_blend_color, GL_NV_packed_depth_stencil, GL_NV_geometry_shader4, GL_NV_texture_rectangle, GL_ARB_vertex_array_bgra, GL_EXT_texture_integer, GL_EXT_texture_array, GL_ARB_fragment_program_shadow, GL_NV_gpu_program4, GL_NV_fragdepth, GL_EXT_texture_buffer_object, GL_OES_standard_derivatives, GL_NV_vertex_program2_option, GL_ARB_map_buffer_range, GL_ARB_fragment_program, GL_ARB_copy_buffer, GL_NV_blend_minmax, GL_S3_s3tc, GL_NV_depth_clamp, GL_EXT_texture_lod_bias, GL_EXT_texture_filter_anisotropic, GL_EXT_draw_buffers2, GL_OES_texture_3D, GL_NV_fragment_program, GL_EXT_secondary_color, GL_ARB_transform_feedback2, GL_EXT_framebuffer_multisample, GL_ARB_window_pos, GL_IBM_rasterpos_clip, GL_EXT_texture_env_combine, GL_ARB_vertex_shader, GL_SGIS_generate_mipmap, GL_ARB_compatibility, GL_ATI_texture_mirror_once, GL_EXT_packed_float, GL_ARB_texture_border_clamp, GL_ARB_explicit_attrib_location, GL_NV_blend_square, GL_EXT_texture3D, GL_SUN_slice_accum, GL_NV_vertex_array_range, GL_ARB_ES2_compatibility, GL_NV_vertex_program, GL_ARB_texture_query_lod, GL_NV_multisample_filter_hint, GL_EXT_texture_mirror_clamp, GL_ARB_texture_compression, GL_NV_vertex_program2, GL_NV_multisample_coverage, GL_ARB_texture_env_add, GL_ARB_imaging, GL_NV_vertex_program3, GL_ARB_provoking_vertex, GL_EXT_gpu_shader4, GL_ARB_texture_rectangle, GL_EXT_texture_edge_clamp, GL_NV_transform_feedback2, GL_OES_texture_half_float_linear, GL_ARB_draw_elements_base_vertex, GL_ARB_fragment_coord_conventions, GL_OES_texture_half_float, GL_ARB_separate_shader_objects, GL_SGIX_shadow, GL_ARB_texture_cube_map, GL_EXT_transform_feedback2, GL_NV_alpha_test, GL_OES_vertex_array_object, GL_EXT_framebuffer_sRGB, GL_NV_fragment_program_option, GL_EXT_texture_compression_latc, GL_ARB_robustness, GL_ARB_point_sprite, GL_ARB_texture_gather, GL_OES_depth_texture, GL_NV_depth_buffer_float, GL_ARB_depth_texture, GL_EXT_texture_object, GL_EXT_depth_bounds_test, GL_NV_fog_distance, GL_ARB_instanced_arrays, GL_EXT_blend_minmax, GL_SGIX_depth_texture, GL_ATI_draw_buffers, GL_ARB_framebuffer_sRGB, GL_NV_fbo_color_attachments, GL_EXT_blend_subtract, GL_NV_register_combiners2, GL_EXT_packed_pixels, GL_IBM_texture_mirrored_repeat, GL_NV_texture_shader, GL_EXT_draw_range_elements, GL_ARB_texture_cube_map_array, GL_ARB_sampler_objects, GL_ARB_half_float_vertex, GL_OES_mapbuffer, GL_OES_rgb8_rgba8, GL_ARB_depth_clamp, GL_ARB_transpose_matrix, GL_NV_parameter_buffer_object, GL_ARB_vertex_buffer_object, GL_EXT_pixel_buffer_object, GL_OES_texture_npot, GL_NVX_conditional_render, GL_ARB_texture_env_combine, GL_OES_vertex_half_float, GL_ARB_shader_bit_encoding, GL_EXT_timer_query, GL_EXT_gpu_program_parameters, GL_ARB_uniform_buffer_object, GL_ARB_multisample, GL_EXT_texture_env_dot3, GL_OES_texture_float_linear, GL_EXT_shadow_funcs, GL_EXT_texture_lod, GL_ARB_depth_buffer_float, GL_NV_pixel_data_range, GL_EXT_stencil_wrap, GL_OES_fbo_render_mipmap, GL_EXT_point_parameters, GL_OES_element_index_uint, GL_NV_texture_barrier, GL_NV_complex_primitives
12:02:50.859 [rendering.opengl.shader.support]: Shaders are supported.

Re: Low frame rate when looking at Sun or Planets

Posted: Thu Jun 09, 2011 11:19 am
by hiddenengine
Svengali - you are my HERO!

I added the option
"splash-screen" = NO;

just before the "window_height" option in C:\Oolite\oolite.app\GNUstep\Defaults\.GNUstepDefaults

It now works beautifully. 60 FPS at 1920x1080 on my big monitor :D

Thank you both.

It seems that disabling the splash screen should be the first thing people try when trying to resolve graphics issues...

This is definitely the friendliest BB this side of somewhere...

Re: Low frame rate when looking at Sun or Planets

Posted: Thu Jun 09, 2011 12:31 pm
by Svengali
:D DaddyHoggys pointer was the key - and I'd say now - happy hunting and have fun with Oolite .-)

Re: Low frame rate when looking at Sun or Planets

Posted: Thu Jun 09, 2011 1:40 pm
by drew
hiddenengine wrote:
This is definitely the friendliest BB this side of somewhere...
That would be Riedquat... 8) <Three!>

However, I thought that the -nosplash switch was no longer required in v1.75.2? :?

I used to have to use it myself on previous version of Oolite, as it bugged out on my 8600GT NVidia card, but I don't have to anymore...

Glad it worked for you though!

Cheers,

Drew.

Re: Low frame rate when looking at Sun or Planets

Posted: Thu Jun 09, 2011 1:46 pm
by another_commander
drew wrote:
However, I thought that the -nosplash switch was no longer required in v1.75.2? :?
Well, it was not really required in 1.74.2 either, it's just that some driver implementations seem to have issues with the way the Oolite game window is resized when going from splash screen to actual game view. It is difficult to tell if it's us doing it wrong or certain gfx drivers doing it wrong, since it seems to work fine without the -nosplash switch on all implementations we have had a chance to physically test.

DaddyHoggy's mention of multiple graphics cards possibly confusing Oolite is an interesting one. Unfortunately, it will be very tricky to test that without a multi-graphics card machine. *cough*donationswelcome*cough*