Infinite PC Settings CPU Scalability - Quick Test and Results, Community Participation

So, like many PC players, I’ve noticed that Infinite seems inordinately heavy in the campaign. The visuals are decent, but the performance on PC for the visuals produced is off balance. I decided to test if CPU or GPU seems to be the biggest culprit in creating low FPS at moderate resolutions, and I think the results are interesting (spoiler - probably CPU, but it’s tough on GPU too). My PC specs are below, for reference:

RTX 3090 FE - 114% power limit, no OC
i9 9900K - 5GHz all core clock - not the best anymore, but still good
64GB DDR4 3600 MHz RAM
Samsung 970 EVO Plus PCIe 3.0 SSD
All drivers are the latest available, Windows 11 with the latest updates is the OS

Methodology

My methodology was to lower desktop resolution to 1280x720 (the game struggles with a resolution this low, and instead renders at 1280x807) and test each preset for the settings with a restart between each preset change. I set the value for Max framerate to 360 for each test, and for the Low preset I added in 200 and Unlocked for giggles once I’d established a pattern. If this value is left at Unlocked FPS are lost at this low resolution as CPU utilization drastically increases, increasing CPU-boundedness. Minimum framerate is left off to ensure no dynamic resolution scaling is utilized, and the game is set to 100% render resolution. For Ultra, the Animation Quality setting was set to Max, all other presets were set to Auto. For Low, the game tried to leave Decal Quality at Medium, this was manually set to Low.

With each setting I loaded a save I have with a spawn point on a FOB with decent long range views near the Excavation Site. This way the views were repeatable and rough comparisons between settings could be established. This also presented a good chance for the game to be performant as all I was doing was looking around the FOB and the long views, with some Marines milling about. No combat, no memory-bandwidth intensive effects. Just wandering about on top of a FOB. The below is what was recorded at each setting level using this methodology:

Results

  1. Ultra - FPS range ~90-100 FPS, GPU utilization ~70%, CPU utilization ~60%
  2. High - FPS range ~120-130 FPS, GPU utilization ~75%, CPU utilization ~55%
  3. Medium - FPS range ~125-135 FPS, GPU utilization ~75%, CPU utilization ~50%
  4. Low - FPS range ~135-145 FPS, GPU utilization ~65%, CPU utilization ~50%
    a. Max FPS set to Unlocked, ~130-135 FPS
    b. Max FPS set to 200, ~150-160 FPS

Looking at the above, and utilizing the information learned from the GDC talk “One Frame in Halo Infinite”, it seems that Infinite is utilizing the Max FPS setting to moderate somewhat how many CPU cycles are being taken up to perform game simulation calculations, and it has an interesting impact on performance. Even at Low, with 16 threads at 5GHz (though, according to the GDC talk, the game will only use 9 of these) and a 3090, the game cannot reach 144 FPS at 1280x807 when Max FPS is left at Unlocked due to additional CPU-boundedness being created. It also seems that the game is definitely inordinately heavy, at least on my system. Ultra at roughly 720p isn’t even a 120 FPS experience with an FPS cap that’s set, but set higher than expected framerates.

Learnings

On PC, the FPS cap in-game is important to CPU performance, but there are no good indicators on where you should set this for you rig. My estimation is that you should set this by testing at the settings you want to play with, with the framerate unlocked, in the open world (or customs/training mode if MP) and gathering framerate data. Then, let’s say you get 45 FPS at your chosen resolution, set the cap to 60 if you’re OK with a 50ish FPS experience, or set to 30. If you’re playing on a VRR monitor and above 60FPS, set it to the closest multiple of 30 to your gathered FPS (60, 90, 120, etc).

Community Ask

I’d like to see what other community members are able to achieve with similar testing across various PC hardware. It’d be nice to be able to collate some data here so hopefully @343 can see it and pass feedback along to the PC team.

Remaining Questions and Curiosities

  1. The GDC talk mentions that the engine makes extensive use of the DMA (Direct Memory Access) on console, but this is not possible on PC, requiring PC to do extra memory shuttling of information. Will RAM with higher clocks/bandwidth be more performant?
  2. Since it was identified that Max FPS plays a large role in CPU performance, can the ~720p Ultra numbers be raised by fiddling with the Max FPS setting? I plan on testing this when I have time.
    a. Results below, 16-27% increase in FPS by adjusting Max FPS settings at 720p/Ultra. CPU savings seem significant at lower resolution.
  3. Since the game caps out at 9 threads, theoretically thread count shouldn’t make a difference once you’re on a 6 core (12 thread) CPU or better. Would love to see tests across multiple Ryzen 5000 or Intel 12000 series CPUs using these settings to see if thread count really makes no difference.
  4. Do similarly configured CPUs with IPC improvements generate different results across all 720p quality presets? Do we come closer to seeing proper high refresh rates?
4 Likes

Fiddling with Max FPS at 720p Ultra

Made some time during my lunch break to test the ~720p Ultra/Max FPS combo. I set the Max FPS setting to Unlocked, 720p (1280x807), and Ultra preset with Max Animation Quality. Again, the 90-100 FPS range was reproduced. However, more time was spent near 90 FPS than near 100 FPS with this exact configuration (Max FPS at 360 fluctuated more into the mid 90s and toward 100). Setting the Max FPS to 120, I was able to notice an increase in framerate to 105-115. That’s a 16% to 27% increase from 90 FPS, simply by modifying the Max FPS counter, even when I wasn’t actually near hitting it to begin with.

Now, at 720p(ish), any savings on the CPU greatly magnify performance impact, but that is a massive increase in framerate percentagewise.

I have an additional PC with an 11700k (no OC), 3090, 64GB of 3600 MHz RAM, and a PCIe 4.0 SSD that I am curious to see if these same results are validated on. The 11700k isn’t massively improved over the 9900k, but I’m wondering if the IPC improvements on the 11700k make a difference, and if so, how big of a difference.

11700K Surprising Results

So, this is very interesting. An 11700K without an OC in a very similar PC (same GPU, same RAM, but PCIe 4.0 based and a mildly updated CPU/mobo architecture) is well outperforming the other PC in terms of minimum FPS. At the 720p-ish resolution, Ultra, and Unlocked I’m seeing ~110-120 FPS. Significantly higher for the Unlocked-to-Unlocked comparison. With a Max FPS cap in place at 150 FPS, the game will output 130-145 FPS. An 11700K, on paper, is not that much faster than a 9900K.

This result suggests either memory subsystem (11700K does run up to 3200MHz natively) or IPC improvements drastically impact the Infinite processing experience. Quite interesting.

In no scenario is an 8 core/16 thread 5ghz turbo cpu just “still good”. It’s one of the best Intel CPU’s you can get your hands on. Don’t undersell your hardware my guy, your test is a very clean one on some of the best hardware out there.

Steam hardware survey puts biggest demographic of users around the 2.3ghz-2.69ghz (17.63%) range, 2.7ghz-2.99ghz (15.05%) and 3.3ghz-3.69ghz (15.30%). 3.7ghz and above make up about 4.35% of the population, you’re in the upper percentile here.

Sorry to get all bent out of shape about wording, I’ll run a similar experiment along the same guidelines and post the results.

I’m a hardware junkie, so I keep up with every new advancement and it makes what I’m currently running feel older and older with every article and benchmark, hah! Already thinking about a Raptor/Meteor Lake, DDR5, and a RTX 5000 build in '24 :wink:

Thanks for participating! I’m very interested to see if things seem to scale differently with different processors.

1 Like

I hope halo infinity can completely eat up my hardware performance. Don’t let them rest :neutral_face: