![DCS Control: TALL CLAIM: app for engine CPU optimizations for every pilot (~+60% FPS in my CPU-bound tests). [LF Testers]](https://external-preview.redd.it/E8SUOrb5PHvBRoU9WgdoBqfpx2VpdXnr36jNb59RcgA.png?width=140&height=70&auto=webp&s=03659cb0cfce7e20e6534a5d7afadd1f64a351be)
DCS Control: TALL CLAIM: app for engine CPU optimizations for every pilot (~+60% FPS in my CPU-bound tests). [LF Testers]
Hi all,
I've been working on a small free Windows app, DCS Control (formerly DCS VR Control, now supporting 2D and other headsets so anyone can try the optimizations), and I'd love some testers to tell me whether the performance gain holds on PCs other than mine.
DISCLAIMER: This is all AI picking and profiling the shit out of DCS for a couple of days. Bugs could be expected. But all seems in working order during my limited testing.
What it does, for every pilot (monitor, Quest, Varjo, Reverb, Pimax…)
- Engine Optimizations: a small module DCS loads by itself from Saved Games. It takes CPU work off DCS's render thread and leaves the image exactly the same.
- CPU Boost (optional): DCS gets priority and its fastest cores, plus a fix for a terrain loop that wastes CPU.
- Once applied, the engine optimizations stay on every time DCS starts, also from Steam. Back to stock DCS removes everything in one click.
Not on a Pimax? Pick Optimizations only: DCS runs exactly as you set it up and only the optimizations are added.
Extras for Pimax headsets: Quad Views foveated rendering, DLSS 5 on the area you look at, frame generation, all set up with one button.
ADDENDUM: Shader optimizations might be specific to NVIDIA hardware and gain on AMD could be less.
The main optimizations (gain of each one on its own, same test scene)
- Multi-threaded G-buffer: DCS draws every model into its G-buffer one at a time on the render thread. The module records those draws on worker threads in DCS's exact order and DCS replays them. +22–24%.
- Multi-threaded shadows: the same for the shadow cascades. +3–5%, p95 −4 to −7%.
- Model allocator per thread: the threads that prepare models no longer queue on one shared allocator. +6%.
- Streaming timer cache: DCS reads a high-resolution clock on every texture bind (tens of thousands of times a frame) just to timestamp streaming; it now gets a value refreshed every millisecond. +5–6%.
- Culling tuned to real cost: the visible-object search is split into more, evenly sized tasks, so DCS doesn't wait for the slowest one. +2–3%.
- Less redundant work: constant buffers and graphics state that DCS sets again although they are already set are skipped (~200k calls a frame). Repeated texture-streaming requests are deduplicated, and a statistics counter no longer makes threads wait on each other.
- Terrain prefetch fix (CPU Boost): two terrain threads call a Windows prefetch function ~840k times a second on the same memory ranges, about 1.7 CPU cores of kernel time. Repeats are dropped (it's only a hint to Windows).
How it was measured
- Built-in A/B test: the in-flight switch (Alt+Shift+F11) turns every optimization off (stock DCS) and on in alternating blocks, 24 blocks per run, with 95% confidence intervals.
- Same scene, same view: busy airfield, external view held still.
- The number of rendered objects is identical in OFF and ON blocks, so it's not drawing less. The multi-threaded paths were also compared to stock pixel by pixel in the same frame: 0 differences.
- After a DCS update each optimization checks DCS's code first and turns itself off if it isn't what it expects.
My numbers (Ryzen 7 9800X3D + RTX 5090, Pimax Crystal Super, VR): 37 → 59 FPS (about +60%, ±3.6%), p95 frame time −39%. With everything on, my GPU became the limit. If you're GPU-bound, expect much less. That's exactly what I'd like to find out.
How to test (5 minutes)
- Download the win-x64 ZIP: Releases · NIGos/dcs-control
- Run it, choose Optimizations only (or Pimax), tick Engine Optimizations, press Launch DCS.
- In a busy scene, press Alt+Shift+F11 to switch the optimizations off and on, and compare your FPS.
- Please post your CPU, GPU, headset or monitor, resolution, the scene, and FPS off vs on.
Please note
- Early beta, single player only so far (multiplayer and integrity checks untested). Use Back to stock DCS before joining a server or updating DCS.
- Everything it changes is backed up and listed before it's applied.
- Built with a lot of help from an AI coding assistant; the source is on GitHub.
Thanks! Any result is useful, including "no difference on my PC".
Edit: Just fyi, I discovered that in some situations (apparently many - aircraft/something on some maps) the optimizations get disabled if the hook encounter certain conditions , limiting the performance gain greatly. I am already improving this so please make sure to try latest releases to hopefully make a more meaningful test.
Screen Capture from dekstop viewport of VR with QuadViews on (Speed&Angels Mission 02)