Vizard 7 » Reference » Basic Concepts » Real-Time Performance Concerns
7.6

Performance

The frame rate and additional render stats can be toggled in both Vizard and Inspector:

Frame Rate

For the smoothest visual experience the frame rate should match the refresh rate of the display. When the frame rate is consistently lower or drops periodically the result is stutter. If this is the case, other system information can point to the cause of the slow down. A high update time indicates issues with code execution while high cull, draw, and GPU times are related to the number of objects and object complexity.

 

The update, cull, and draw operations are run in sequence on the CPU. To avoid frame rate drops the sum of these three values should be less than one frame period (i.e. 16 ms at 60 fps or 8 ms at 120 fps). The GPU draw operation runs in parallel to update, cull, and draw. The GPU time is acceptable as long as it's less than one frame period. The exception to this is when glFinish is enabled and the CPU and GPU operations are forced to run in serial.

 

A frame rate higher than the refresh rate indicates vertical sync (vsync) is disabled. By default, vsync is enabled in Vizard. It can be disabled in the graphics card's settings or the Vizard script using the viz.vsync command. With vsync disabled the graphics card can send updates to the display memory faster than the refresh rate. The result is often screen tearing, which is information from two or more frames showing at the same time.

Update

The update time is the number of milliseconds spent on updating the scene. This can include animations, physics, loading models and any code executed by your script. It is not related to model complexity (i.e. geometry, textures) and the time it takes to draw the scene.

Cull

The cull time is the number of milliseconds spent processing the scene graph and deciding which objects to draw based on the current viewpoint. The cull time increases as more geometry objects (drawables) are added to the scene.

Draw

The draw time is the number of milliseconds spent sending the draw commands to the graphics driver. This value is related to the number of objects, textures, and shaders.

GPU

This is the number of milliseconds spent on the GPU drawing the scene.

Note: This statistic is only available on OpenGL drivers that support the "GL_EXT_timer_query" extension.

Primitives

The number of OpenGL primitives (triangles, quads, lines, points, etc...) rendered this frame.

Drawables

The number of drawables (i.e. individual meshes) rendered this frame. The cull time is directly related to the number of drawables. A number of several thousand or more is considered high and may affect performance. The drawable count can be reduced by grouping objects that share the same geometry and materials in the modeling software. For example, one hundred identical boxes grouped together make one drawable. The downside of grouping is that transformations can only be applied to the group as a whole in Vizard.

Effect Compose

The Effect Compose time is displayed when shader effects are enabled. This is the time it takes to generate and apply shader effects from all the effect and effect composer objects in the scene. Effect composition occurs during the draw phase, so this time is a subset of the draw time.

Sys Mem

The amount of system memory (in megabytes) used by the current process out of the total available.

GPU Mem

The amount of GPU memory (in megabytes) currently in use by all processes out of the total available. When GPU memory is exhausted, data must be exchanged with system memory at runtime. The result is an increase in GPU time and sometimes also draw time.

Note: This statistic is only available on OpenGL drivers that support the "GL_NVX_gpu_memory_info" extension.

Load Times

The initial loading of graphical objects from hard disk to memory can take significant time. To avoid delays while operating the program, most objects should be loaded before user interaction begins or at an appropriate point in the program where freezing the screen for a few seconds is acceptable. If loading a resource during runtime is required, asynchronous loading can help prevent frame rate drops.

Desktop Window Manager (DWM)

Windows DWM composition is used to perform advanced window effects. DWM composition can be disabled in the Vizard Options window for Windows Vista and Windows 7. Depending on the graphics drivers this setting can either have a positive or negative impact on the performance of 3D applications.

Memory Limitations

The amount of memory available to Vizard is limited by one of three factors; system memory, GPU memory, and Vizard version (32/64 bit). Programs running on 32-bit versions of Windows by default are limited to 2 GB of memory. This means that even if you have more memory installed in your host computer, Vizard 32-bit will not be able to access it. With Vizard 64-bit the memory bottleneck is determined by whichever is less, system or GPU memory.

Note: If you add "/3GB" to your boot.ini file, then Windows 32-bit will allow you to access up to 3 GB of memory for a single application (1 GB is always set aside for the OS)