SciChart WPF 2D Charts > Troubleshooting > Troubleshooting Visual Xccelerator Issues on low-end Graphics Adapter
Troubleshooting Visual Xccelerator Issues on low-end Graphics Adapter

The Visual Xccelerator Engine is a proprietary 3D engine, used in SciChart for leveraging the power of the latest GPUs resulting in fast and feature-rich data visualization. Apart from the 3D Engine, Graphics Acceleration involves usage of such Operation System components as (DirectX) Graphics Library. The last layer in this technology stack is Graphics Adapter Drivers. The Visual Xccelerator Engine relies on those components in terms of its sustainable work. When a target PC runs SciChart on low-quality hardware or graphics drivers with bugs or issues (e.g. Graphics Adapter Drivers), it might face various visual errors or even crashes of the application.

Checking your Video Adapter with DXDiag

If you experience problems with the Visual Xccelerator Engine in Scichart then the first thing to check is your video adapter with DXDiag.exe.

Start DXDiag.exe from the start menu in Windows 10 and go to Display adapters. Send a screenshot of the display adapters specifications to support. In particular, the Graphics Card model number, the Video Memory and the Feature Levels are needed.

SciChart WPF's Visual Xccelerator engine has a minimum requirement of 256MB of Video Memory (VRAM). Less than this, and you may experience problems. There is a workaround listed below for PCs which do not meet the minimum requirement ...

 

Checking Visual Xccelerator Compatibility

If you experience issues with the Visual Xccelerator Engine in SciChart WPF, such as failure to load charts or a crash, please check whether your running environment supports hardware acceleration. This can be done by looking at a report generated by the built-in GPU Compatibility Tester tool.

Built-in Compatibility Checking Tool

When the Visual Xccelerator Engine is enabled in your code, it automatically runs the GPU Compatibility Test tool which examines available graphics adapters. Enable the Visual Xccelerator Engine in your WPF application, run the application in Debug mode and open the Output window in Visual Studio. The GPU Compatibility Test tool produces a report that is printed in this window.

For correct operation you should see a success message when creating both DirectX 9 and 11 graphics devices for at least one of the reported GPUs:

Please report any error messages or problems shown here to SciChart Support, together with info collected from DXDiag.exe.

Stand-alone Compatibility Checking Tool

Alternatively the GPU Compatibility Tester tool can be downloaded from our Github repository. It is located at github.com/ABTSoftware/SciChart.GpuCapabilityTest

Download and run the application (requires Visual C++ tools 142) and check the output window. For correct operation you will see a success message when creating both DirectX 9 and 11 graphics devices.

 

If Video Memory is too small, or failed to create a device

We have noticed some problems with the Visual Xccelerator engine and Intel HD 4000 series and sometimes Intel HD 5000 graphics adapters. On these cards you can get crashes, or corruption of the visual image. 

These video cards have a very small amount of video RAM (graphics memory). SciChart's Visual Xccelerator Engine requires a graphics card with at least 128MB of Video RAM, and 256MB or more is desirable.

We have a workaround when experiencing some of these problems, and that is to force DirectX9 mode, which uses less memory than DirectX11 mode in SciChart. To specifically enable DirectX9, use this code:

    /// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
    public partial class App : Application
    {
        public App()
        {
            InitializeComponent();
          
            // Restart 2D engine with D3D9   
            VisualXcceleratorRenderSurface.RestartEngineWith(DirectXMode.DirectX9c);
           
            // For 3D Charts only: Restart 3D engine with D3D9
            Viewport3D.Restart3DEngineWith(DirectXMode.DirectX9c, FullScreenAntiAliasingMode.None, true);
        }
    }

 

This code should be called before any chart is shown. This will ensure that the chart starts up in DirectX9 mode and can solve compatibility issues on some hardware.

AutoDetecting Video RAM and downgrading to DirectX9

We are planning to add the feature to autodetect Video RAM and downgrade to DirectX9 in the next release of SciChart WPF: v6.2.0.

Once this has been added you will be able to run your applications without any code like the example above and SciChart will automatically downgrade to DirectX9 mode if you don't have enough Video RAM to run the DirectX11 version.  

GPU Blacklist

If some GPU models are not working properly it’s possible to add them to blacklist.

The blacklist must be filled once on application startup and GPU names must match those displayed in DXDiag tool and in SciChart GPU detection trace.

public App()
{
    // Add GPU to blacklist
    Charting2D3D.GpuBlacklist.Names.Add("NVIDIA GeForce RTX 2080 Ti");

    InitializeComponent();
}

 

See Also