This snippet of code contains performance-related configuration variables for optimizing...
This snippet of code contains performance-related configuration variables for optimizing Falcon BMS 4.38, a flight simulator. The code allows fine-tuning of various resource management and rendering settings to achieve better performance, reduce stuttering, and match the capabilities of your system. Here's an explanation of what each setting in the configuration does:
1. set g_nObjListWorkSizeHint <value>
This setting controls the "parallelism" used for handling object lists (e.g., rendering or processing game objects).
- Lower values increase multithreaded parallelism, utilizing more CPU threads for performance.
- Higher values reduce parallelism but can create more stable performance by emphasizing single-threaded processes.
- Original value: 280 → Adjusted to 300, slightly prioritizing stability while maintaining sufficient parallelism.
2. set g_nAdditionalWorkers <value>
This variable controls the number of additional worker threads allocated for parallel computation.
- Positive values (e.g.,
2
) add threads to leverage multi-core CPUs for cooperative processing. - Negative values reduce Hyper-Threading (useful for CPUs with logical cores from SMT/HT; reduces load if virtual cores perform poorly).
- Default value: 0 → Kept at 2, which allows the CPU to better utilize additional threads for smoother performance.
3. set g_nMinFrameTimeMs <value>
This setting specifies a minimum frame time in milliseconds (ms) to control the frame rendering interval.
- Lower values allow higher FPS (e.g., 250 FPS with
4 ms
, assuming the hardware permits). - Higher values are used to cap FPS and reduce stuttering or excessive GPU rendering.
- With VSync on, the value of
4 ms
equates to a theoretical maximum of 250 FPS, while16 ms
aligns closer to a 60 FPS cap (ideal for 60 Hz monitors). - Original value: 4 → Kept at 4 to ensure no more than 250 FPS but allowing VSync to align it closer to 60 FPS.
4. set g_fNewTerrainTessellationFactor <value>
This variable adjusts the terrain tessellation factor, which determines the level of detail in the terrain mesh generation.
- Lower values (e.g.,
0.25
or0.1
) reduce tessellation, improving performance but at the cost of lower terrain detail. - Higher values provide more detail but may cause performance drops due to increased GPU load.
- Original value: 0.35 → Adjusted to 0.25, providing a good balance between medium-high detail and performance on your system.
5. set g_fAnisotropicLevel <value>
This setting manages the anisotropic filtering level, which improves texture quality at oblique viewing angles.
- Lower values reduce filtering and lighten the GPU load, suitable for integrated GPUs or lower-end hardware.
- Original value: Remains unchanged at 1.0, already minimal filtering, helping your iGPU (Radeon Vega 8).
Resulting Changes and Analysis:
- The adjustments aim to address CPU and GPU utilization imbalances, stutters, and frame caps.
- After changing
g_nObjListWorkSizeHint
to 300 and reducing tessellation further (0.25
), the settings improve system-resource distribution:- Lower CPU usage (42-49% vs. 54%).
- Slight drop in GPU load (RX560 drops to 84% from 90%), indicating reduced strain.
- Memory usage remains consistent at ~71%, no significant bottlenecks here.
- Radeon Vega 8 sees an increase to 11% usage, indicating slightly better load balancing between GPU and iGPU.
Recommendations for Further FPS Gains:
- Monitor Refresh Rate: Your 28" Phillips monitor caps at 60 Hz, so enabling VSync is appropriate. No need to chase much higher FPS as the display cannot present it.
- Affinity Management:
- Setting Falcon BMS affinity to cores 2-5 spreads CPU work, allowing multitasking efficiency with TrackIR5 and VoiceAttack.
- Ensure no other unnecessary background processes are using the same cores.
- Test with Lower Terrain Detail:
- Consider lowering tessellation further (e.g.,
0.2
or0.1
) if GPU usage peaks again.
- Consider lowering tessellation further (e.g.,
- Reduce Anisotropic Filtering for GPU Relief:
- Test
g_fAnisotropicLevel
with lower values if the RX560 utilization continues to hover near 90%.
- Test
- Further Frame Time Tuning:
- Adjust
g_nMinFrameTimeMs
closer to 16 ms if FPS still exceeds monitor refresh rates, to avoid excess GPU overheating.
- Adjust
In conclusion, the revised settings reduce stuttering by balancing CPU and GPU utilization while respecting your system capabilities (AMD Ryzen 5 2500U and RX560). Further optimizations depend on trade-offs between detail and performance priorities.