V-Sync and Animation Smoothness Test

For test results, bug reports, announcements of new builds etc.

Moderators: winston, another_commander, Getafix

User avatar
Tricky
---- E L I T E ----
---- E L I T E ----
Posts: 821
Joined: Sun May 13, 2012 11:12 pm
Location: Bradford, UK. (Anarchic)

Re: V-Sync and Animation Smoothness Test

Post by Tricky »

Just did a test with deployment, snapshot and vsync versions. As you can see I am running under Vista 32 bit with 2Gb of RAM using a nVidia Geforce 8600M GPU.

I get tearing on all versions except when I set Adaptive (half refresh rate) in the control panel for the GPU. Even with just the regular Adaptive setting.

The one thing that puzzles me is the error in the deployement and snaphot logs about the WGL_EXT_swap_control extension which is in the OpenGL list.

Also the Vsync version caps the FPS to 60 no matter what setting I use, except for the adaptive half refresh rate which is capped by the GPU to 30.

Deployment executable.

Code: Select all

Opening log for Oolite version 1.81 (x86-32) under Windows 6.0.6002 Service Pack 2 32-bit at 2014-08-01 17:54:45 +0100.
2 processors detected.
Build options: OpenAL, new planets.

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

17:54:47.922 [dataCache.rebuild.explicitFlush]: Cache explicitly flushed with always-flush-cache preference. Rebuilding from scratch.
17:54:48.985 [display.initGL]: V-Sync requested.
17:54:48.986 [display.initGL]: ----- WARNING: Could not enable V-Sync. Please check that your graphics driver supports the WGL_EXT_swap_control extension.
17:54:48.986 [display.mode.list.native]: Windows native resolution detected: 1440 x 900
17:54:48.986 [display.initGL]: Trying 32-bit depth buffer
17:54:49.728 [display.initGL]: Requested a new surface of 1024 x 640, windowed.
17:54:49.832 [display.initGL]: Created a new surface of 1024 x 640, windowed.
17:54:49.837 [joystick.init]: Number of joysticks detected: 0
17:54:49.838 [rendering.opengl.version]: OpenGL renderer version: 3.3.0 ("3.3.0"). Vendor: "NVIDIA Corporation". Renderer: "GeForce 8600M GS/PCIe/SSE2".
17:54:49.839 [rendering.opengl.extensions]: OpenGL extensions (238):
GL_ARB_draw_instanced, GL_NV_float_buffer, GL_ARB_occlusion_query, GL_EXT_texture_env_add, GL_ARB_texture_storage, GL_ARB_texture_env_dot3, GL_ARB_sync, GL_EXTX_framebuffer_mixed_formats, GL_ARB_texture_multisample, GL_ARB_explicit_uniform_location, GL_NV_texture_env_combine4, GL_ARB_point_parameters, GL_ARB_vertex_array_object, GL_NVX_gpu_memory_info, GL_NV_vertex_buffer_unified_memory, GL_ARB_blend_func_extended, GL_NV_explicit_multisample, GL_EXT_provoking_vertex, GL_NV_texture_shader2, GL_EXT_blend_equation_separate, GL_ARB_compressed_texture_pixel_storage, GL_NV_texture_shader3, GL_ARB_texture_stencil8, GL_ARB_texture_non_power_of_two, GL_ARB_texture_mirrored_repeat, GL_ARB_debug_output, GL_EXT_multi_draw_arrays, GL_NV_fence, GL_ARB_timer_query, GL_ARB_texture_buffer_object, GL_ARB_texture_buffer_range, GL_NV_occlusion_query, GL_EXT_abgr, GL_ARB_vertex_program, GL_NV_shader_buffer_load, GL_ATI_texture_float, 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_conservative_depth, GL_ARB_get_program_binary, GL_ARB_multitexture, GL_NV_half_float, GL_NV_copy_image, GL_NV_path_rendering, 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_NV_vertex_program1_1, GL_ARB_seamless_cube_map, GL_WIN_swap_hint, GL_EXT_texture_shared_exponent, GL_ARB_shading_language_420pack, GL_EXT_geometry_shader4, GL_EXT_direct_state_access, GL_EXT_compiled_vertex_array, GL_NV_parameter_buffer_object2, GL_KHR_debug, GL_ARB_copy_image, GL_NV_vertex_array_range2, GL_ARB_shading_language_include, GL_EXT_texture_storage, GL_EXT_separate_specular_color, GL_ARB_vertex_type_2_10_10_10_rev, GL_EXT_vertex_array, GL_ARB_shading_language_100, GL_EXT_framebuffer_multisample_blit_scaled, 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_NV_texture_expand_normal, GL_ARB_color_buffer_float, 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_base_instance, GL_EXT_import_sync_object, GL_ARB_shading_language_packing, GL_ARB_fragment_program_shadow, GL_ARB_fragment_layer_viewport, GL_NV_gpu_program4, GL_EXT_texture_buffer_object, GL_NV_vertex_program2_option, GL_ARB_map_buffer_range, GL_ARB_fragment_program, GL_ARB_copy_buffer, GL_S3_s3tc, GL_NV_depth_clamp, GL_EXT_texture_lod_bias, GL_EXT_texture_filter_anisotropic, GL_EXT_draw_buffers2, GL_NV_fragment_program, GL_EXT_secondary_color, GL_ARB_ES3_compatibility, 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_ARB_internalformat_query, GL_EXT_texture3D, GL_ARB_arrays_of_arrays, GL_SUN_slice_accum, GL_ARB_robust_buffer_access_behavior, GL_NV_vertex_array_range, GL_ARB_ES2_compatibility, GL_NV_vertex_program, GL_NV_multisample_filter_hint, GL_ARB_invalidate_subdata, GL_EXT_texture_mirror_clamp, GL_EXT_texture_sRGB_decode, 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_ARB_framebuffer_no_attachments, GL_EXT_gpu_shader4, GL_ARB_texture_rectangle, GL_EXT_texture_edge_clamp, GL_ARB_draw_elements_base_vertex, GL_ARB_fragment_coord_conventions, GL_ARB_separate_shader_objects, GL_SGIX_shadow, GL_ARB_texture_cube_map, GL_NV_ES1_1_compatibility, GL_ARB_vertex_attrib_binding, GL_EXT_framebuffer_sRGB, GL_ARB_clear_buffer_object, GL_NV_fragment_program_option, GL_EXT_texture_compression_latc, GL_ARB_vertex_type_10f_11f_11f_rev, GL_ARB_robustness, GL_ARB_point_sprite, GL_ARB_internalformat_query2, 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_enhanced_layouts, GL_ARB_multi_bind, GL_ARB_framebuffer_sRGB, GL_EXT_shader_integer_mix, 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_mirror_clamp_to_edge, GL_ARB_sampler_objects, GL_ARB_half_float_vertex, GL_ARB_depth_clamp, GL_ARB_texture_storage_multisample, GL_ARB_transpose_matrix, GL_NV_parameter_buffer_object, GL_ARB_vertex_buffer_object, GL_ARB_texture_query_levels, GL_EXT_pixel_buffer_object, GL_ARB_texture_view, GL_NVX_conditional_render, GL_ARB_texture_env_combine, GL_ARB_shader_bit_encoding, GL_EXT_timer_query, GL_EXT_gpu_program_parameters, GL_ARB_shader_texture_lod, GL_ARB_program_interface_query, GL_ARB_uniform_buffer_object, GL_ARB_multisample, GL_EXT_texture_env_dot3, GL_EXT_shadow_funcs, GL_ARB_stencil_texturing, GL_EXT_texture_lod, GL_ARB_depth_buffer_float, GL_NV_pixel_data_range, GL_ARB_map_buffer_alignment, GL_EXT_stencil_wrap, GL_EXT_point_parameters, GL_NV_texture_barrier
17:54:50.302 [rendering.opengl.shader.support]: Shaders are supported.
Snapshot executable.

Code: Select all

Opening log for Oolite development version 1.81.0.5932-140731-eee1cab (x86-32 test release) under Windows 6.0.6002 Service Pack 2 32-bit at 2014-08-01 17:20:19 +0100.
2 processors detected.
Build options: OpenAL, new planets, 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.

17:20:20.722 [dataCache.rebuild.explicitFlush]: Cache explicitly flushed with always-flush-cache preference. Rebuilding from scratch.
17:20:21.317 [display.initGL]: V-Sync requested.
17:20:21.317 [display.initGL]: ----- WARNING: Could not enable V-Sync. Please check that your graphics driver supports the WGL_EXT_swap_control extension.
Vsync executable.

Code: Select all

Opening log for Oolite development version 1.81.0.5930-140731-1783979 (x86-32 test release) under Windows 6.0.6002 Service Pack 2 32-bit at 2014-08-01 17:34:59 +0100.
2 processors detected.
Build options: OpenAL, new planets, 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.

17:35:00.926 [dataCache.rebuild.explicitFlush]: Cache explicitly flushed with always-flush-cache preference. Rebuilding from scratch.
17:35:01.513 [display.initGL]: V-sync requested. Display refresh rate: 60 Hz.
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6683
Joined: Wed Feb 28, 2007 7:54 am

Re: V-Sync and Animation Smoothness Test

Post by another_commander »

Thanks for testing Tricky. The warning about v-sync not getting set in deployment and trunk comes from a generic failure to execute the SDL command that requests Windows for v-sync, the message about the extension missing is just the most probable reason for failure, but not necessarily the only reason. Something else causes the call to fail. Did you happen to have forced v-sync disabled from the gfx driver when you run the test?

Also a few questions:
1. The v-sync test exe reports capping FPS to 60. I guess your monitor runs indeed at 60Hz refresh rate?
2.What about microstutters? Does the v-sync test perform better, worse or the same as the others?
User avatar
Tricky
---- E L I T E ----
---- E L I T E ----
Posts: 821
Joined: Sun May 13, 2012 11:12 pm
Location: Bradford, UK. (Anarchic)

Re: V-Sync and Animation Smoothness Test

Post by Tricky »

another_commander wrote:
Thanks for testing Tricky. The warning about v-sync not getting set in deployment and trunk comes from a generic failure to execute the SDL command that requests Windows for v-sync, the message about the extension missing is just the most probable reason for failure, but not necessarily the only reason. Something else causes the call to fail. Did you happen to have forced v-sync disabled from the gfx driver when you run the test?
I used all the settings available under the nVidia Control Panel.
  • Application controlled
  • Off
  • On
  • Adaptive
  • Adaptive (half refresh)
another_commander wrote:
Also a few questions:
1. The v-sync test exe reports capping FPS to 60. I guess your monitor runs indeed at 60Hz refresh rate?
2.What about microstutters? Does the v-sync test perform better, worse or the same as the others?
The laptop screen is indeed 60Hz.
As for stutters... this is an old machine, about 7 years old, and with the idiosyncracies of Vista, slow IO, I am used to stutters. Saying that I didn't really notice anything different, maybe a little smoother for the Vsync version. I'll try it at a different graphic detail level later tonight. The above tests were using maximum setting in Oolite.
User avatar
Zieman
---- E L I T E ----
---- E L I T E ----
Posts: 680
Joined: Tue Sep 01, 2009 11:55 pm
Location: in maZe

Re: V-Sync and Animation Smoothness Test

Post by Zieman »

Did a couple of quick tests (= stared the smoothly spinning Lave Coriolis for about an hour, several 5-10 minute stints :) )
Results as follows.

Last nights trunk (7f90b5d)

1. Vsync ON (adaptive, NOT the half-framerate version, but the one that applies Vsync only when the GPU can indeed supply FPS equal or greater than monitor refresh rate) and Triple Bufferig ON:
smooth spinning Cobra, smooth spinning Coriolis, no tearing, Oolite reported FPS 59 (monitor 60 Hz)

2. Vsync OFF, Triple Buffering OFF:
smooth spinning Cobra, smooth spinning Coriolis, no tearing, Oolite reported FPS 199 (monitor 60 Hz)


A_C's testing .exe (42ab20b)

1. Vsync ON (adaptive, NOT the half-framerate version, but the one that applies Vsync only when the GPU can indeed supply FPS equal or greater than monitor refresh rate) and Triple Bufferig ON:
smooth spinning Cobra, smooth spinning Coriolis, no tearing, Oolite reported FPS 59 (monitor 60 Hz)

2. Vsync OFF, Triple Buffering OFF:
smooth spinning Cobra, smooth spinning Coriolis, bad tearing, Oolite reported FPS 59 (monitor 60 Hz)


Relevant(?) system specs:
i7 4770K @ stock clocks
GTX 780 (Asus) @ stock clocks
337.88 WHQL
Win7 Ultimate 64bit
16 GB RAM
...and keep it under lightspeed!

Friendliest Meteor Police that side of Riedquat

[EliteWiki] Far Arm ships
[EliteWiki] Z-ships
[EliteWiki] Baakili Far Trader
[EliteWiki] Tin of SPAM
User avatar
Cody
Sharp Shooter Spam Assassin
Sharp Shooter Spam Assassin
Posts: 16081
Joined: Sat Jul 04, 2009 9:31 pm
Location: The Lizard's Claw
Contact:

Re: V-Sync and Animation Smoothness Test

Post by Cody »

Nothing so precise as the above - but I seem to get a slightly smoother run with V-Sync enabled in the nVidia CP rather than app-controlled (which delivers my native 75fps). <scratches head> It might be a long night, methinks - too many setting combinations for my poor old brain. Using the latest nVidia WHQL driver, btw.
I would advise stilts for the quagmires, and camels for the snowy hills
And any survivors, their debts I will certainly pay. There's always a way!
User avatar
Tricky
---- E L I T E ----
---- E L I T E ----
Posts: 821
Joined: Sun May 13, 2012 11:12 pm
Location: Bradford, UK. (Anarchic)

Re: V-Sync and Animation Smoothness Test

Post by Tricky »

Cody wrote:
Nothing so precise as the above - but I seem to get a slightly smoother run with V-Sync enabled in the nVidia CP rather than app-controlled (which delivers my native 75fps). <scratches head> It might be a long night, methinks - too many setting combinations for my poor old brain. Using the latest nVidia WHQL driver, btw.
Yeah! Too many settings. Need to upgrade the drivers myself minus the game experience thing.

Back from work now so I can carry on with the tests. I usually launch, pitch up 90 degrees and inject out to just outside station aegis, then come to a dead stop turn around and use the planet to check for tearing.
User avatar
Cody
Sharp Shooter Spam Assassin
Sharp Shooter Spam Assassin
Posts: 16081
Joined: Sat Jul 04, 2009 9:31 pm
Location: The Lizard's Claw
Contact:

Re: V-Sync and Animation Smoothness Test

Post by Cody »

Tricky wrote:
Need to upgrade the drivers myself minus the game experience thing.
Yeah, I always untick the Geforce Experience thingy too. Station/planet watching, hyperspacing, and torusing/injecting into squadrons of bandits/convoys.

Oh yeah, I have a question: does Oolite app-control anything else (such as pre-rendered frames)?
I would advise stilts for the quagmires, and camels for the snowy hills
And any survivors, their debts I will certainly pay. There's always a way!
User avatar
Tricky
---- E L I T E ----
---- E L I T E ----
Posts: 821
Joined: Sun May 13, 2012 11:12 pm
Location: Bradford, UK. (Anarchic)

Re: V-Sync and Animation Smoothness Test

Post by Tricky »

Turning the detail down from EXTRA DETAIL to SHADERS ENABLED stopped the tearing on all versions. Also noticed almost no more stuttering (probably due to the pagefile kicking in if their was any) with the Vsync branch. Turning the detail down also stopped the motion blur.
UK_Eliter
---- E L I T E ----
---- E L I T E ----
Posts: 1248
Joined: Sat Sep 12, 2009 11:58 pm
Location: Essex (mainly industrial and occasionally anarchic)

Re: V-Sync and Animation Smoothness Test

Post by UK_Eliter »

Here's what I found.

Oolite version

trunk oolite-trunk-1.81.0.a1229cc-dev.x64 [Windows]


Relevant system specifications

Windows 8.1 x64
Intel Core 2 Quad Q6700
AMD Radeon HD 5570, with 1GB RAM (and slightly overclocked, with no ill-effect) [Edit: AMD driver version: 14.4 = the latest]
4GB DDR2 RAM
SSD
60Hz monitor, and FPS for Elite 45-60 and most often 50-60.
Graphics card setting OpenGL tripple buffering: on


Results

My results varied greatly depending on the vertical refresh setting I set on my graphics card. When the setting was either 'On' or 'On, unless application specifies', all was good and play seemed smoother than with the normal version of Oolite. However, when the vsync setting was either 'Off' or 'Off, unless application specifies', things were considerably worse than with the normal version, in that there was tearing - in the rendering of (non-player) ships and, especially, in the witchdrive tunnel.

I didn't test with different Oolite 'detail' settings (but I can if that is helpful). EDIT: Actually, what's the max setting there? 'Extra detail' or 'shaders enabled'? 'Extra detail' - right? Also: I've noticed, and not just in the trunk I use here but in an earlier trunk and perhaps in 1.8 vanilla, that some ships - namely, Cobra Mk Is and Worms - appear a kind of bleached red, and not just when they are near the sun. I don't know what's going on there - but I am going off-topic . .
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6683
Joined: Wed Feb 28, 2007 7:54 am

Re: V-Sync and Animation Smoothness Test

Post by another_commander »

Thanks to everyone who took the time to test and provide feedback. It looks like we are not quite where we should be yet. Based on the comments of those who tested, here is a new test file, that could be better or worse than before. Same test process as before applies.

This test executable is based on current trunk, tag e40fc68.
https://drive.google.com/file/d/0BwG6R5 ... sp=sharing

In order to try and keep things simple, nVidia users, please test using "Application controlled" in the v-sync CP settings. AMD users, please set to "Off unless application specified". Does it
- look smoother than trunk (i.e. no or very few microstutters compared to trunk)?
- demonstrate screen tearing?

If the answer to the first question is yes and to the second one is no, then we should be good.

Those of you who have the triple buffering option please set it to on if the test does not succeed on the initial settings and retry.

Thanks for your patience and willingness to participate in the testing. Hopefully the result will be an even better gameplay experience.
UK_Eliter
---- E L I T E ----
---- E L I T E ----
Posts: 1248
Joined: Sat Sep 12, 2009 11:58 pm
Location: Essex (mainly industrial and occasionally anarchic)

Re: V-Sync and Animation Smoothness Test

Post by UK_Eliter »

With that executable, and those settings, things seem good - no tearing. There were microglitches though, but turning on tripple buffering may have got rid of them.
User avatar
Cody
Sharp Shooter Spam Assassin
Sharp Shooter Spam Assassin
Posts: 16081
Joined: Sat Jul 04, 2009 9:31 pm
Location: The Lizard's Claw
Contact:

Re: V-Sync and Animation Smoothness Test

Post by Cody »

That new executable is weird when firing at something - the laser beam hits okay, but it doesn't display inside the reticle.
I'm using the most recent trunk nightly (r7f90b5d), which seems fine without that executable.

As an aside, the ships' shields glow a little too brightly when hit (in my opinion, that is).
I would advise stilts for the quagmires, and camels for the snowy hills
And any survivors, their debts I will certainly pay. There's always a way!
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6683
Joined: Wed Feb 28, 2007 7:54 am

Re: V-Sync and Animation Smoothness Test

Post by another_commander »

Cody wrote:
That new executable is weird when firing at something - the laser beam hits okay, but it doesn't display inside the reticle.
I'm using the most recent trunk nightly (r7f90b5d), which seems fine without that executable.
Don't worry about the laser - it's a known issue in trunk at the moment (and I see btw that the latest nightly is quite a few commits behind master, hmmm... <looks at Getafix over glasses>). Just concentrate on the motion fluidity and tearing for now and ignore everything else.

UK_Eliter, what about the standard trunk? If you set triple buffering for it and all other settings as beofre, does that rid you of the microstutters there too?
UK_Eliter
---- E L I T E ----
---- E L I T E ----
Posts: 1248
Joined: Sat Sep 12, 2009 11:58 pm
Location: Essex (mainly industrial and occasionally anarchic)

Re: V-Sync and Animation Smoothness Test

Post by UK_Eliter »

Cody: no, with the standard trunk, and those settings, there seems to be a little bit of stutter.
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6683
Joined: Wed Feb 28, 2007 7:54 am

Re: V-Sync and Animation Smoothness Test

Post by another_commander »

UK_Eliter wrote:
Codya_c: no, with the standard trunk, and those settings, there seems to be a little bit of stutter.
Fixed that for you. Thanks for the quick reply. If you can, please repeat the test with the Test2 executable a few more times, just to be sure. And, just to be perfectly sure that there are no misconceptions, your settings that give best performance and most fluid, stutterless animation are:
- Vsync setting in AMD control panel: Off unless application specifies
- Triple buffering: On
- V-Sync Test2 executable

Am I correct?
Post Reply