This code pertains to setting performance-related configuration variables for the...

August 18, 2025 at 07:46 AM

This snippet of code comes from a recommended setting by the developers of Falcon BMS 4.38 flight simulator // Generic CPU and Multi threading Performance Config Variables suggested by Devs: set g_nObjListWorkSizeHint 280 // Default value: 1500 (a good balance) – Valid values are 100 - Maximum parallelism, 3000 - almost no parallelism set g_nAdditionalWorkers 2 // Default value: 0 a value of 2 will add threads, -8 to reduce HT cores. set g_nMinFrameTimeMs 4 // Default value: 4 which should promise no more than 250 FPS on Sim thread. 18 ms = 60 FPS 11 ms = 90 FPS Higher values may cause some problems. set g_fNewTerrainTessellationFactor 0.35 // Reduced terrain mesh Tessellation distance - Medium-High on Terrain only (was 0.1 set g_fAnisotropicLevel 1.000000 // Lower filtering for iGPU Here are some actual figures for what is happening with my AMD Ryzen 5 2500U with Radeon Vega Mobile Gfx, 2000 Mhz, 4 Core(s), 8 Logical Processor(s). g_nObjListWorkSizeHint set to 280 gives me 34.6 FPS on the ground, CPU 54%, Memory (16 GB) 70%, RX560 90%, Radeon Vega 8 9%. What setting do I use to improve this? I have Vertical Sync on which limits the max FPS to 60 because my monitor is a 28" Phillips 284E which has a resolution of HD 1920 x 1080 @ 60Hz. Falcon BMS 4.38 is also started with Priority High and Affinity set to 2-5 cores of 8 cores, the rest are set to Normal and for use with TrackIR5 and VoiceAttack Ok just tested it with the following settings and it seemed to fix a lot of the stutters, if any they are very small and not locking the screen view as before. // Generic CPU and Multi threading Performance Config Variables suggested by Devs: set g_nObjListWorkSizeHint 300 // Default value: 1500 (a good balance) – Valid values are 100 - Maximum parallelism, 3000 - almost no parallelism was 280. set g_nAdditionalWorkers 2 // Default value: 0 a value of 2 will add threads, -8 to reduce HT cores. was 2 set g_nMinFrameTimeMs 4 // Default value: 4 which should promise no more than 250 FPS on Sim thread. 16 caps the sim closer to 62.5 FPS due to VSync which is ON. set g_fNewTerrainTessellationFactor 0.25 // Reduced terrain mesh Tessellation distance - Medium-High on Terrain only (was 0.1 This config seemed to improve what I had at 280. CPU 42-49%, Memory (16 GB) 71%, RX560 84%, Radeon Vega 8 11%. Do you think I should go to 330?

This code pertains to setting performance-related configuration variables for the Falcon BMS 4.38 flight simulator, specifically designed to improve multi-threading performance and resource utilization for your CPU, GPU, and system memory. Here's what each configuration line does, along with their effects:


  1. set g_nObjListWorkSizeHint
    • Purpose: Adjusts the workload size for parallelism (the division of tasks among CPU threads for object processing).
    • Value Range: 100 (maximum parallelism, spreading tasks more aggressively across CPU threads) to 3000 (minimal parallelism, tasks handled more single-threadedly).
    • Impact:
      • Lower values (e.g., 100–300) prioritize multi-threading performance but may increase computational overhead.
      • Higher values (e.g., 1500–3000) reduce thread overhead at the cost of reduced parallelism.
      • In your case, moving from 280 to 300 helped reduce stuttering and slightly optimized performance, balancing your system's CPU capability. You could test 330 for further optimization.

  1. set g_nAdditionalWorkers
    • Purpose: Specifies the number of additional worker threads for processing simulation tasks.
    • Default Value: 0 (no additional threads).
    • Effect:
      • Adding 2 worker threads (set g_nAdditionalWorkers 2) improves CPU utilization by distributing workload more effectively on multi-core processors.
      • Negative values (e.g., -8) disable hyper-threaded logical cores to reduce thread contention.
    • For Your Hardware: Setting 2 aligns with your 4-core, 8-thread Ryzen CPU and was recommended by the devs.

  1. set g_nMinFrameTimeMs
    • Purpose: Sets the minimum frame time (in milliseconds) that the simulation thread must wait before rendering the next frame. This indirectly controls FPS (frames per second).
    • Effect:
      • Lowering this value (e.g., from 16ms to 4ms) allows the simulator to render more frames per second, up to 250 FPS. This is ideal if you are not GPU-bottlenecked.
      • A value of 16ms synchronizes with a 60 FPS cap (1000 / 16 = 62.5 FPS) when VSync is enabled, which matches your 60Hz monitor. Ensuring that g_nMinFrameTimeMs is not set too low avoids unnecessary strain on the CPU/GPU for little perceivable gain.
    • For Your Case: Keeping it at 4ms is fine since you reported no locking issues with stutters; however, with VSync ON, further lowering might not help unless you disable VSync or upgrade to a higher refresh rate monitor.

  1. set g_fNewTerrainTessellationFactor
    • Purpose: Adjusts the level of detail (tessellation distance) for the terrain mesh. Lower values reduce tessellation detail, especially at a distance, improving GPU performance.
    • Effect:
      • Lower values such as 0.25 reduce terrain mesh complexity, improving overall FPS and reducing GPU strain.
      • Higher values (closer to 1.0) provide higher detail terrain meshes but could overburden weaker GPUs.
    • For Your GPUs: With a primary RX560 and integrated Vega 8 GPU, the lowered 0.25 value balances performance and visual quality.

  1. set g_fAnisotropicLevel
    • Purpose: Controls the anisotropic filtering level for textures. Higher values result in sharper distant textures but consume more GPU power.
    • Default Value: 1.0 (minimal anisotropic filtering).
    • Effect: Keeping this value low as set (1.0) helps your performance, as anisotropic filtering can introduce computational strain for integrated or mid-range GPUs like the RX560 and Vega 8.

Summary of Observed Results:

  • Your changes improved stuttering and optimized workload distribution across the CPU's cores, resulting in slightly reduced CPU and GPU utilization while increasing stability and consistency in FPS.
  • Increasing g_nObjListWorkSizeHint from 280 to 300 improved efficiency on your system without further stuttering. Testing higher values like 330 may marginally improve performance due to reduced CPU thread contention.

Final Suggestion:

  • Feel free to experiment with g_nObjListWorkSizeHint set to 330 or slightly higher (but within the valid range).
  • Evaluate improvement using in-game metrics like average FPS, CPU/GPU usage, and stuttering prevalence.
  • Avoid increasing tessellation factor (g_fNewTerrainTessellationFactor) or anisotropic filtering, as these settings will negatively impact your RX560 GPU's performance.
Generate your own explanations
Download our vscode extension
Read other generated explanations

Built by @thebuilderjr
Sponsored by beam analytics
Read our terms and privacy policy
Forked from openai-quickstart-node