Lagging or Inconsistent Gauge Movement in Helios Control Center - HeliosVirtualCockpit/Helios GitHub Wiki
Introduction
The data sent from DCS to Helios Control Center is based on DCS calling the exporting functions at the beginning or end of a video frame (or a multiple of this). DCS World will also detect when the exporting code is using too much resource and will throttle or disable exporting of information to Helios or other add-ins which obtain information via the export.lua mechanism. If information does not arrive into Helios Control Center at a consistent rate, or if Helios Control Center's performance is throttled by the operating system for some reason, then gauges and other controls can appear to lag or perform erratically.
Remedies
GPU Constraints
In situations where the load on the GPU is too high (even if load is not shown at 100%), Helios will be deprioritized by your graphics card if DCS is demanding too much resource. One possible wat to address this problem without making any compromises on graphical settings or modifying things like monitor config, is to pin Helios Control Center to use a different GPU from the one DCS is using, and for CPUs containing an integrated GPU (iGPU), the iGPU is the obvious choice.
Some users have reported a UCEERR_RENDERTHREADFAILURE (0x88980406)
exception in Helios Control Center which might be one extreme indication of GPU constraints, however the advice which follows is applicable whether the exception is seen or not.
The following steps show how to tell windows to pin Helios Control Center to use an integrated GPU.
- Verify that your integrated GPU (if your processor has one) is recognized by your computer. Open device manager and verify that it is listed under Display Adapters.
- If you only see your graphics card and no entry for your iGPU, try the following: First, download and install the appropriate graphics drivers from your CPU manufacturer's website. Follow the instructions and then check the device manager again. If you still do not see the iGPU in display adapters, you may need to reboot your PC and go into the BIOS. Some motherboards will disable your iGPU by default and you will need to find the option to enable it in the BIOS. This will look different depending on your motherboard manufacturer and type, but information on how to do this can be found online.
- Once you have verified that your iGPU is recognized by windows, in your windows search bar type "Graphcis Settings" and open it. This is a default windows setting (on windows 11 at least), not an external program.
- In graphics settings, you will need to add Helios Control Center (you do not need to do this for Profile Editor) to the list of apps. Under "Custom Options for Apps" you will see an option to "add an app". Click browse, and find Helios Control Center. Its location may vary depending on your install path, but it will likely be in C: Program Files/Helios Virtual Cockpit/Helios. Once you find the root install, click add.
- In the list of available apps to customize in the Graphics Settings page, select the newly added Helios Control Center (It may appear simply as
Control Center
), and then click Options. You should see a pop up named "Graphics preference" open up. - In graphics preference, you should see 3 options: "Let Windows Decide", "Power Saving", and "High Performance". If your iGPU is active you should see it as the option available under "Power saving". Select this option and hit OK, now Helios will run on your iGPU and receive maximum priority there, without requiring you to make any changes to settings, display refresh rates, DCS graphics, etc.
Notes
You do NOT need to have your monitor plugged into the video output ports on your motherboard. It is perfectly fine to have your Helios monitors plugged into your dedicated graphics card.
Alternative things to try if you don't have an iGPU.
- Ensure Monitor refresh rates are equal or multiples of each other in Windows Display Settings.
- Both screens set at 60Hz.
- Main screen at 120 Hz, Helios screen at 60Hz
- Issue seems more prevalent when using mismatched (multiples) refresh rates ie. 144hz main and 60 Hz Helios.
- In this case, see if you can force the 144hz down to 120hz.
- Try turning on V-sync.
- Try turning on G-sync (if applicable).
- Limit FPS in DCS to 60, 90, 120 etc. Multiples of 30 seem to work best.
Although it doesn't seem like these should have an effect, they do. And most of the one or more will help. As explained above, the input/output flow to/from DCS is complex and on some systems it doesn't take much to hinder that. The key is synchronization. It's important to try to get setting matched and limit your overhead on GPU and CPU to give DCS a little breathing room to communicate efficiently with Helios.