TestInstanceNode: interpreting stats

I just ran the TestInstanceNode from the 3.1 master and tried toggling the INSTANCING field from “true” to “false” to see how it would affect performance. On my machine the FPS for both modes is at about 127. I was expecting to see better (higher) FPS when instancing was turned on. Is this a fair expectation when using this feature?

It depends what the bottleneck in your app actually is.

Ok so in the case of the TestInstanceNode there is no real optimizations to be done? I thought this test case would expose the benefits of InstancedNode in terms of performance gains. Perhaps it was simply setup to demonstrate how one would use this feature.

It depends on what the bottleneck is. Also of course it depends on your graphics systems support of instancing.

What would be the bottleneck in TestInstanceNode? I thought that the excessive number of objects (when not instancing) would result in lower FPS. Also, if instancing was not supported by my hardware would the app still run (and render) fine?

For reference I’m running on Win7 with the following NVIDIA NVS 5200M.

The bottleneck depends on your system - I don’t have data about every possible hardware combination. It should fallback when instancing isn’t supported, yes.

Is there any way to verify when it “falls back”? Output of some sort? Maybe a debug logger?

I’m getting this output from running the TestInstanceNode:

Aug 27, 2015 1:32:08 PM com.jme3.system.JmeDesktopSystem initialize
INFO: Running on jMonkeyEngine 3.1.0-UNKNOWN
 * Branch: unknown
 * Git Hash: 
 * Build Date: 1900-01-01
Aug 27, 2015 1:32:09 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: LWJGL 2.9.3 context running on thread jME3 Main
 * Graphics Adapter: igdumd64
 * Driver Version: 9.17.10.3040
 * Scaling Factor: 1
Aug 27, 2015 1:32:09 PM com.jme3.renderer.opengl.GLRenderer loadCapabilitiesCommon
INFO: OpenGL Renderer Information
 * Vendor: NVIDIA Corporation
 * Renderer: NVS 5200M/PCIe/SSE2
 * OpenGL Version: 4.4.0
 * GLSL Version: 4.40 NVIDIA via Cg compiler
 * Profile: Compatibility
Aug 27, 2015 1:32:09 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio Device: OpenAL Soft
Aug 27, 2015 1:32:09 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio Vendor: OpenAL Community
Aug 27, 2015 1:32:09 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio Renderer: OpenAL Soft
Aug 27, 2015 1:32:09 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio Version: 1.1 ALSOFT 1.15.1
Aug 27, 2015 1:32:09 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: ALC extensions: ALC_ENUMERATE_ALL_EXT ALC_ENUMERATION_EXT ALC_EXT_CAPTURE ALC_EXT_DEDICATED ALC_EXT_disconnect ALC_EXT_EFX ALC_EXT_thread_local_context ALC_SOFT_loopback
Aug 27, 2015 1:32:09 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: AL extensions: AL_EXT_ALAW AL_EXT_DOUBLE AL_EXT_EXPONENT_DISTANCE AL_EXT_FLOAT32 AL_EXT_IMA4 AL_EXT_LINEAR_DISTANCE AL_EXT_MCFORMATS AL_EXT_MULAW AL_EXT_MULAW_MCFORMATS AL_EXT_OFFSET AL_EXT_source_distance_model AL_LOKI_quadriphonic AL_SOFT_buffer_samples AL_SOFT_buffer_sub_data AL_SOFTX_deferred_updates AL_SOFT_direct_channels AL_SOFT_loop_points AL_SOFT_source_latency
Aug 27, 2015 1:32:09 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: AudioRenderer supports 64 channels
Aug 27, 2015 1:32:09 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
WARNING: Pausing audio device not supported.
Aug 27, 2015 1:32:09 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio effect extension version: 1.0
Aug 27, 2015 1:32:09 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio max auxilary sends: 4