How many AI before fps drop?

Discussion in 'General Discussion' started by Fleskebacon, Jun 11, 2019.

  1. fufsgfen

    fufsgfen Active Member

    Jan 9, 2019
    +28 / 0 / -0
    These days performance tends to be bit complex subject, graphics options so often affect also CPU load and to know what is affecting which is not always so easy as effect can be to GPU and CPU load, so for example with gtx1060 it is possible to add graphics options so that GPU becomes limiting factor, with faster GPU like gtx1080 that change causes CPU to hit limit.

    Takes bit of time and effort to figure out eventually, but yes, shaders can cause CPU load too, shadows and reflections can add to both CPU and GPU load, depends a bit how those are done, but only way to find out is to experiment and monitor load on each CPU core as well as GPU power usage and core load both.

    I don't know if AI and CPU graphics are fighting from same thread or if they are completely separate thread, in 1st case lowering CPU load on either graphics or AI would give boost in FPS, with 2nd, it still might be somewhat similar, I'm now sure if things can be completely separated, something waiting for other to finish etc.

    So it could be possible that lowering visible AI car count reduces CPU load from graphics and allows more room for AI physics, that is what makes it tricky to know for sure, I have found out with other games that testing vsync on and off might give some idea while monitoring each CPU thread, but with some games thread residency is low and pretty impossible to tell anything.

    You probably know much better how it is with Raceroom, but thought it is good to bring up that even with separated threads it might still be hard to tell which CPU load decrease made improvement to fps.
  2. Koly™

    Koly™ Active Member

    Feb 17, 2018
    +26 / 0 / -0
    Raceroom is DX9 and is mostly only CPU demanding, all the graphics effects and theAI number are pushing by the CPU.
    All my tests have been made with i5 9600K at 5ghz and 1080ti at 1440p 144hz (nvidia panel pushed at max with supersamplingx8, Ax16, high quality)

    A) With the graphics at the HIGH preset ACx8, blur complex/Ultra, Nordschleife track, last of the grid
    1) I have tested alone and of course i have 144fps, the GPU is maxed 99%
    3) with 5 AI, the frame rate decrease, the CPU limit is present. The GPU load decreases to 95%.
    4) with 25 AI, massive CPU bottleneck, but 75FPS (webhud is -15fps) The GPU is at 70%
    5) 47 AI (the max), the CPU bottleneck is very very massive, but 60FPS. The GPU is at 50%

    B) With the graphics at the LOW preset, Nordschleife track, last of the grid
    1) alone 144fps, the GPU is easy, and the CPU is easy.
    2) with 47 AI, 144fps, the CPU is easy, the GPU is easy.

    C)With MEDIUM preset,Nordschleife track, last of the grid
    1) 144fps alone
    2) 47 AI and 90fps at start, the GPU load is higher than with HIGH preset, but the CPU bottleneck is massive.

    I play with the graphics preset at HIGH, ACx8, complex blur at Ultra, Nvidia panel maxed, cause I'm very sensitive to the aliasing, and I really like the eye candy graphics and the complex ultra blur effect, and with CPU oc at 5ghz, it can maintain 60fps with 47 AI on the Nordschleife.
    The only setting i have puton the medium is the reflexion, High is too much demanding for any CPU.
    If you want to play at a high framerate, you have to make a good balance with graphics and AI number...

    I9 9900K, i5 9600K, i7 9700K or i7 8700K overclock at 5ghz have all the same result in Raceroom, and to push 144fps at 1440p ULTRA(ACx8, complex ultra blur) with 47 AI we need a 12ghz CPU, so yes Raceroom needs a big changement, it's frustrating to buy a good hardware and to play with a DX9 game which limits the performance.
    A good GPU is nice for triple screen in Raceroom, it will push the GPU usage.
    (all I wish is all the raceroom content ported to UE4)

    For example rFactor2:

    with 22 AI, 1440p ultra, postprocess ultra the GPU is used at 99% (probably only 60% for Raceroom), it's probably due to DX11 and a better 3D engine for the GPU.
    Raceroom needs really a solution (DX11 or new engine), cause the very low GPU usage and all the work done by the CPU is a waste.
    To push 60 AI visible with the settings i have said in rFactor 2 and to have the GPU used at 99% we need a 8ghz CPU.

    Before a CPU at 8ghz or 12ghz, we can play with a new 3d engine like the Madness or the UE4 (AMS2 and ACC) which use CPU and GPU far better.
    • Like Like x 2
    • Agree Agree x 1
    Last edited: Jun 20, 2019
  3. fufsgfen

    fufsgfen Active Member

    Jan 9, 2019
    +28 / 0 / -0
    Project cars 2 have one CPU core maxed out for me, not really sure why, can't remember there being any drop downs in fps though.

    What you describe though is pretty much what I have found with most sims or simcades (or pretty much most games having DX9-DX11), I doubt there will be 8ghz CPU based on silicon technology, so only logical route for any game in future is to start using all the cores or reduce amount of work done on CPU.

    4K, future VR, faster refreshrates, all that is challenging developers to find new ways to keep up with growing demands of visual quality while achieving desired performance levels. Things have gotten to this point as GPUs have improved so much more than single threaded performance of CPUs.

    In rF2 they did improve batching to my knowledge, also they are using threading capabilities of DX11.

    Good batching saves CPU cycles a lot, it can be 200% fps or even more even when using single thread for CPU. Problem comes with different cars, if having 50 cars that are completely different without shared UV maps, textures etc. you can't batch them very much.

    For example 50 000 3D trees can be very low CPU usage as long as they are same kind, but put 300 totally different trees with unique textures, shaders and no batching to scene and CPU maxes out.

    Then there is overhead and all that for each batch, which can actually be much higher than actual work in small batch.

    Way computer graphics works is that CPU makes batches that are sent for GPU, each batch can contain various number of triangles, UV mapping largely defines how much stuff single batch can contain, also different engines use different ways to group triangles to single batch.

    Having less than 1000 triangles in single batch was bad at 2003 or so, now we are at 2019 with insanely higher GPU performance and that 1000 triangles might be 10000 or something like that, having smaller batches chokes CPU.

    With Vulkan you can use all cores to process those batches, so it is not so important to have big batches, however there is more to it, memory bandwidth etc. With DX11 you can have only so much better performance than with DX9, that really is not giving insanely boost by threading alone, but saving amount of work CPU has to do by using bigger batches, that can help a lot.

    I might remember wrong, but my memory lies to me that Vulkan could achieve 10 times more drawcalls than dx11 single threaded in my system. With other stuff like shaders, AI, etc. running difference in practice might be even higher, if GPU power would not become limiting factor that would be something like 8-10 x of cars in DX11 or maybe even more?
    Yeah, GPU power and other CPU processing aspects 'may' limit number of max cars to 'slightly' lower number than 500 or so, but at least current bottleneck of games could be removed for many years to come.

    That is why people are bringing up Vulkan as an option and why DX11 is like beating a dead horse, it was great for it's time, but if looking 5 years to future which Raceroom probably wants to look, DX11 is really bad choice, it might work as stepping stone to UE4 for example, but I don't think that 5 years from now DX11 being any better than DX9 is today.

    My understanding is that developers are working on UE4 version, hopefully it will be Vulkan equipped variant, but I guess we see what wonders they will craft when enough time has passed.