D3PLOT 22.1

Improving Graphics Performance

Improving Graphics Performance


Any computer intended for CAE work will have a graphics card that is designed for high performance 3d graphics. Briefly this means that:

  • Most intensive graphics calculations are now performed on the Graphics Processing Unit (GPU) which has dedicated hardware for this purpose.
  • Increasingly the data used to generate images can also be stored on the graphics card, since this makes access to it faster.

D3PLOT exploits these capabilities, however not all hardware is the same, and there are sometimes multiple ways of performing an operation with no obvious "best" solution. The default graphics tuning options are set up for the typical CAE machine, but if your machine is not performing well then it may be worth trying some of the suggestions below in order to try to improve matters.

The default settings are tuned for the typical machine

When you first use the Tune button you will see this panel with all boxes unticked.

This means that none of the special hardware accelerations available in V10.0 are switched on, and graphics performance will be similar to that in V9.4. You will have to tune D3PLOT manually to obtain the best performance.

If some or all buttons are greyed out it means that your hardware does not support the feature in question, and you will not be able to use them. Therefore re-tuning is always advised if you move to a new machine, or upgrade your hardware; and it may also be worthwhile if you have upgraded your graphics driver software.

Why not "tune" automatically?

Given that D3PLOT can determine automatically the features available on the graphics card and supported by the graphics drivers why can it not also set these options automatically?

The unfortunate answer is that what a graphics hardware/software combination says it will do, and what it will actually do, are not always the same. Bitter experience has taught us that on some machines, typically slighter older ones and/or those with lower performance, blithely turning on all possible acceleration features can lead to corrupted images and/or crashes.

Therefore we prefer to default to something that we know will work on all machines, and let users determine what works best on their hardware using the process below.

Tuning D3PLOT on your machine

Assuming that your machine doesn't have all the tuning buttons greyed out, which means that it is too old to benefit, please follow the steps below to tune its performance.

Step 1:

Read in a sizeable model with some state data so that you can animate it. You just need one model in one window.

The model should be large enough to give animation rates well below the maximum your machine can support. Since the typical modern LCD display is limited to a 60Hz refresh rate there is little point in aiming for animation rates faster than 60 frames per second (fps), and you should aim for a model that is giving about 50 fps or slower, that is an elapsed time of 20ms/frame or longer.

Set the model animating in shaded mode and let it cycle through at least one pass of the full animation so that it has read in all data and settled down to its full animation rate.

Standard shaded settings should be used: perspective off, a single light source, flat shading, free-edge overlay and no "extra" graphics such as labels.

Step 2:

Use the Tune button to invoke the tuning panel, and turn on the following two options:

Show timing reports the time taken for each frame in the dialogue box. Three times are given:

  1. CPU time required to generate this frame
  2. Elapsed (wall-clock) time required to render this frame
  3. A rolling average over the last 30 frames of "elapsed time to render frame"

No delay turns off the default setting in D3PLOT that limits the maximum frame rate to about 60 fps.

This means that there are no artificial delays in the timing process, and the steps below will be measuring the true performance of your machine.


Observe and note the rolling average time per frame in the dialogue box. This should be a reasonably steady figure.

Don't be surprised if the " Av " figure is slightly different to both " cpu " and " elapsed " values. Timers on computers tend to have a limited resolution, for example Windows machines run at a "clock tick" of 60Hz, and only resolve time intervals down to roughly 16mS as a consequence. This is why the rolling average frame rate is required in order to smooth out variations in individual frame timings.

Step 3:

Turn on Use Vertex Arrays

This will make no difference to the current animation speed, but it is a necessary precursor to the steps below.

Step 4:

If the Use Shaders button is greyed out then please skip to step 5 below, otherwise:

Turn on Use Shaders.

You will hopefully see an immediate and significant reduction in the time taken to render frames, but otherwise the appearance of the image should not change. If this is the case leave this option selected and proceed to step 5.

On some machines the model may in fact animate more slowly with this setting. In this case it is worth persevering with step 5 below to see if adding the further settings does ultimately give better speed.

If the image goes "wrong" in any way, and we have observed everything from losing colours, through a totally corrupt image to an outright crash, don't despair. The first thing to do in this situation is to try updating the machine's graphics driver. This will require you to determine the type of card on the machine, then to visit the card manufacturer's website, download the appropriate driver and install it. If you are not sure how to do this please contact Oasys Ltd Support for help.

In about 90% of cases this will solve the problem, but if it doesn't then you will not be able to use hardware shaders and you need to turn this option off and proceed to step 5.

Step 5:

If the Use VBOs for Verts and for Coords buttons are not available available please skip to step 6 below, otherwise:

Firstly turn on the (Use VBOs...) for Coords button, leaving the for Verts one unselected for now.

You should hopefully see a further significant increase in speed, but in all other respects the image should look as before. If this is the case then...

Turn on Use VBOs for Verts .

The effect of this varies by hardware type and can range from a small but significant increase in speed, through not much change to a slight slowing down. If the effect is neutral or positive then it is worth leaving it selected, but otherwise it is better to turn it off.

As above, if the image goes "wrong" in any way with either of these settings then the first thing to do is to update the graphics driver. If this does not help, and only Use VBOs for Verts is causing problems, then you can leave it turned off without sacrificing much performance.

Step 6:

If all the steps above were successful then you have finished the D3PLOT tuning process. Hopefully you will have achieved a significant speed increase and the final step is to save these tuning settings in your oa_pref file for future sessions.

Save Tuning Settings will do this automatically, saving the relevant entries to your "home" oa_pref file.

If you want to copy these settings to the same file for other users the preferences in question are:

d3plot*gtune_varray
d3plot*gtune_shader
d3plot*gtune_vbo_verts
d3plot*gtune_vbo_coords

If things went wrong above, or some options are not available on your machine, then you may still benefit from using the settings that are available and seem to work. If you need further advice please contact Oasys Ltd Support for help.

Updating and configuring your graphics driver

This section gives instructions for updating graphics cards on Windows and Linux machines. It covers the most common configurations, but if your machine is different then it is possible that we may still be able to help you, please contact us for advice.

The vast majority of graphics-related support requests that we receive are solved by upgrading the graphics driver.

Our general advice is as follows:

  • Assuming that your graphics card is reasonably modern (typically a machine less than 5 years old) you should check that you have the most recent graphics driver, and update it if you haven't.

    Manufacturer's websites all have pages that allow you to enter details of your machine and operating system, and they will then recommend the best driver.

    For NVidia cards see http://www.nvidia.com and use the "drivers" tab
    For AMD (ATI) cards see https://www.amd.com/en/support
    For Intel cards see https://downloadcenter.intel.com/product/80939/Graphics-Drivers

    You can also visit the computer manufacturer's website to find the driver they recommend. However it is our experience that the computer manufacturer's recommendation is usually out of date, and that you are better off using what the graphics card manufacturer recommends. They made the hardware, they write the drivers and they generally know best!


  • For an older machine, say 5 or more years old, you will probably find that the manufacturer will recommend their latest driver, but this may not perform as well with an older card. Graphics drivers tend to be optimised for recent hardware, and old hardware may actually run more slowly - albeit reliably - on newer drivers.

    In this situation it is worth investigating when your graphics card first appeared, then visiting the manuafacturer's driver archive and trying to find a version that is about 1 to 2 years newer than the card. This should have the bugs ironed out, but should not have suffered too much from changes aimed at newer hardware that degrade its performance.


  • It is almost universally the case that the "out of the box" graphics driver which comes with a new machine will be out of date. If your machine comes with a very recent latest and greatest graphics card then the driver will be an early one and will probably be bug-ridden. By the time the machine reaches your desk things should have moved on a bit, and it is worth checking for a newer version - it can save a lot of grief.

    This is usually also the case with corporate builds of Windows where your organisation gets a customised version of the Windows operating system that is blindly loaded onto all machines by the computer manufacturer. Such builds are usually even more out of date than the "out of the box" ones above and quite often contain poorly performing generic graphics drivers rather than the specific ones that high performance GPUs require.

Finding out what graphics card and driver you have installed

The following instructions should enable you to determine the type of graphics card you have installed and the revision number of its driver.

Windows 10
  • Right click anywhere on the desktop background, and select Display Settings
  • Near the bottom of that panel select Advanced display settings . This will give you a summary.
  • Select Display Adapter properties
  • Select Properties within this section, followed by the Driver tab
  • This will list the driver date and version

    Alternatively:

  • Launch the Control Panel and search for " Device Manager "
  • Click on that, expand the tree and then expand the Display Adapters branch
  • Right click on your graphics card's row and select Properties
  • Select the Driver tab. This will list the driver date and version

    Alternatively:

  • Your graphics card manufacturer may well have an icon in the icons region at the bottom right of the taskbar, or a right click anywhere on the desktop background may show a vendor-specific entry in the popup menu.
Windows 7
  • Right click anywhere on the desktop background, and select Screen Resolution
  • Select Advanced settings
  • This takes you to the Adapter window, listing card name and manufacturer
  • Select Properties within this section, followed by the Driver tab
  • This will list the driver date and version
Linux
  • type glxinfo | grep -i string which should give the card manufacturer and name

For example on a machine with an ATI card this produces:

OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI FirePro V7750 (FireGL)
OpenGL version string: 3.3.10225 Compatibility Profile Context FireGL

And on a machine with an NVidia card this produces:

OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: Quadro FX 3800/PCI/SSE2
OpenGL version string: 3.3.0 NVIDIA 256.35

  • Knowing the make of card you can then look in file /var/log/Xorg.0.log for more details. For example in the 2nd example above
    grep -i nvidia /var/log/Xorg.0.log | grep -i driver
    gives:

(II) Loading /usr/lib64/xorg/modules/drivers/nvidia_drv.so
(II) NVIDIA dlloader X Driver 256.35 Wed Jun 16 18:45:02 PDT 2010
(II) NVIDIA Unified Driver for all Supported NVIDIA GPUs

So this 2nd machine has an NVidia Quadro FX3800 card using driver release 256.35 dated June 16th 2010

Configuring NVidia cards on Windows

Recent installations
  • Right click anywhere on desktop background, and select NVIDIA Control Panel:

    Select Manage 3D settings from the tree on the left hand side. The example below is from a Quadro FX card on a Windows 7 machine, but others should be very similar.


  • You must then decide whether you want to configure the graphics driver for all applications on your machine or just for a limited range of executables.

    Our recommendation is to configure for all applications, using Global settings as shown above. The configuration used should work well for any CAE package - and certainly better than NVidia's default " 3D App -Default Global Settings ", since these are tuned for benchmark tests and not real life applications.

    If you want to apply settings only to D3PLOT you will need to swap to the Program Settings tab, add D3PLOT to the list, and then proceed as below.

  • If your driver is recent (early 2011 onwards) you will find an Oasys Ltd. LS-DYNA environment setting as shown above, and you should select that. If your driver is older we would recommend using Dassault Systemes CATIA - compatible .

    Either of these settings turns off attempts in the driver to cache coordinate data, and will result in smooth animation. Using the default settings may lead to jerky animation, or long pauses.

Configuring NVidia cards on Linux

No configuration is necessary.