DirectX 9 CPU Benchmark Thread

Discussion in 'General Discussion' started by Thomas Jansen, Jul 22, 2019.

  1. Kackvogel

    Kackvogel New Member

    Joined:
    Aug 4, 2019
    Ratings:
    +1 / 0 / -0
    i wrote some more text, but while writing i tought about my radeon chill that i set to 180 fps ..... so i will redo without that :)

    Updated my old Post :)
     
    • Funny Funny x 1
    Last edited: Aug 8, 2019
  2. Sebastien Brunier

    Sebastien Brunier Active Member Beta tester

    Joined:
    Dec 17, 2017
    Ratings:
    +38 / 0 / -0
    Ok makes more sense now
     
  3. Master_of_the_house

    Master_of_the_house New Member

    Joined:
    Feb 23, 2019
    Ratings:
    +1 / 0 / -0
    Raceroom is not bottlenecked. It uses 64 bit dirextx9 and can use all the cores available on the system.

    Proof :
     
    • Disagree Disagree x 4
    • Informative Informative x 1
  4. Sebastien Brunier

    Sebastien Brunier Active Member Beta tester

    Joined:
    Dec 17, 2017
    Ratings:
    +38 / 0 / -0
    The fact you have CPU activity on a lot of threads isn't a proof imo.
    Neither the fact you have CPU headroom.
    For monitor usage, there is virtually no bottleneck as you can achieve way higher fps than available monitor refresh rates...
    Going VR is a differrent story though, although only aiming for 90fps on most HMD, generating stereoscopic rendering is way harder on CPU and despite having GPU and CPU headroom we are limited anyway. Reducing the thread affinity down to 4 threads on my 2700X for RRE64.exe showed no performance degradation... Bellow there is a massive performance hit. So I don't believe your statement is right. Furthermore we conducted some tests with Thomas Jansen mesuring frametime performance between his former i7 4770K and R5 3600 it showed massive improvements, so single thread performance is really important at least in VR.
     
    • Like Like x 1
    • Agree Agree x 1
  5. Thomas Jansen

    Thomas Jansen KW Studios Developer Beta tester

    Joined:
    Apr 5, 2018
    Ratings:
    +563 / 0 / -0
    It may use a lot of threads, though even that is questionable, as it is most likely just hopping around different threads to even the load. But even if it did use all of them, it is still bottlenecked by the single fastest thread, as there is just a lot of stuff that can not be done in parallel
     
    • Agree Agree x 2
    • Informative Informative x 1
  6. Sebastien Brunier

    Sebastien Brunier Active Member Beta tester

    Joined:
    Dec 17, 2017
    Ratings:
    +38 / 0 / -0
    Exactly, distributed load is a windows scheduler behavior, not game engine behavior.
     
    • Agree Agree x 2
    • Disagree Disagree x 1
    • Informative Informative x 1
  7. Case

    Case Well-Known Member

    Joined:
    Apr 7, 2017
    Ratings:
    +104 / 0 / -0
    I really wish people stopped thinking the fact they see a lot of individual core activity means the application/game they're running is very well multithreaded. For some reason, even people passing as experts do this quite frequently, and it's really frustrating to see in such cases, because they also support the spread of this misinformation by doing so.

    Individual CPU core usage is virtually useless on any modern multi-core system, because, as already explained above, what you see is simply the result of the CPU and OS distributing load around and switching it between the logical cores very quickly - because it can often be more efficient than keeping a single thread locked on a single core. You should rarely see a single threaded app locked to a single "core" - it does happen, more so with AMD CPUs than with Intel CPUs in my experience (possibly due to how the PBO on Ryzen CPUs works), but that's generally not what normally happens.

    If you want to see what actually happens and how well multi-threaded the application is, use something like the Process Explorer and look for the CPU usage of individual threads of that specific process. A single thread can not use more than 100/x percent of CPU, where x is the number of logical cores your CPU has (though in practice, you will reach a CPU bottleneck even a bit sooner than that) . So in case of my Ryzen 2600, that number is 8.3 % CPU per a single thread.
    And in case of Raceroom, you will see the game uses two threads (and a third one for some GPU driver stuff).
     
    • Agree Agree x 5
    • Disagree Disagree x 2
    • Like Like x 1
    Last edited: Aug 9, 2019
  8. Master_of_the_house

    Master_of_the_house New Member

    Joined:
    Feb 23, 2019
    Ratings:
    +1 / 0 / -0
    Well I should have recorded the handles monitor as well. But RR3 experience utilize all the power the CPU can get. If my machine is idle there is virtually no process sucking CPU power
    I would be happy to get a detailed activity report if you still don't believe me.

    Sector 3 studio devs know exactly what they are doing and their game is well optimized for a dx9 game.
     
  9. Sebastien Brunier

    Sebastien Brunier Active Member Beta tester

    Joined:
    Dec 17, 2017
    Ratings:
    +38 / 0 / -0
    Well no offence but you disagreed one of them earlier in this post... I can only tell he has the necessary insights to talk about it...
     
    • Like Like x 1
  10. Case

    Case Well-Known Member

    Joined:
    Apr 7, 2017
    Ratings:
    +104 / 0 / -0
    CPU usage for the individual threads of RRRE64.exe in a 25 AI GT3 race at Spa on Ryzen 2600. Again, in this case, 8.3 percent is the absolute maximum a single thread can get.

    [​IMG]
     
    • Like Like x 2
    • Agree Agree x 2
    • Informative Informative x 1
  11. Thomas Jansen

    Thomas Jansen KW Studios Developer Beta tester

    Joined:
    Apr 5, 2018
    Ratings:
    +563 / 0 / -0
    not to say that the game is poorly optimised, you can achieve high framerates really easily with any settings in 2D, but for those of us in VR it is clear that the engine is totally not made with VR in mind, causing the huge CPU bottleneck which eventually brought us to this thread :D
     
    • Agree Agree x 2
    • Informative Informative x 1
  12. Bull Shark

    Bull Shark Well-Known Member

    Joined:
    Mar 14, 2019
    Ratings:
    +162 / 0 / -0
    In VR I set all to max and turn on ASW. This way I have good GFX through the Oculus. RaceRoom is one off the few which does looks good with ASW on. I can perfectly drive this way.
    In Pcars it is very uncomfortable for me. Although I can drive with fairly high settings and still maintain a steady 90fps so no need for ASW turned on. It is set off by default.
     
    • Agree Agree x 1
    • Informative Informative x 1
  13. Kackvogel

    Kackvogel New Member

    Joined:
    Aug 4, 2019
    Ratings:
    +1 / 0 / -0
    tried this with Haven Benchmark to get a clue over thread usage
    when jou think it should be 100% and it isn´t :)
    modern CPU´s are hard to understand.
     

    Attached Files:

  14. Sebastien Brunier

    Sebastien Brunier Active Member Beta tester

    Joined:
    Dec 17, 2017
    Ratings:
    +38 / 0 / -0
    It differs from app to app depending on how the thread usage is programed so it can be hard to compare, and if your PC is running another program on a concurrent thread (with SMT/HT 1c=2t) then you can loose a lot of performance too as SMT/HT gives you something like 10% additionnal performance only over non SMT/HT counterparts...
    For maximum performance on high core count CPUs (8c16t) you want to select affinities on primary threads (pair 0,2,4,6,8,10,12,14) and leave as unused as possible secondary threads (impair 1,3,5,7,9,11,13,15).
    On my 2700X I achieve best results in both Heaven and R3E in VR setting process affinities to 8,10,12,14 (in VR I do the same for Occulus server x64 as well)
    Don't set less than 4 threads (select them on the same CCX for AMD), and on lower than 8c16t CPU it seems there is no benefit setting affinities, Windows scheduler handles it better.
     
    • Informative Informative x 1
  15. Case

    Case Well-Known Member

    Joined:
    Apr 7, 2017
    Ratings:
    +104 / 0 / -0
    I'm not sure I understand where you expect to see 100 % in that image...?
     
  16. Kackvogel

    Kackvogel New Member

    Joined:
    Aug 4, 2019
    Ratings:
    +1 / 0 / -0
    In usage but it is only gets 40% and 60% idle time. So I don't know when is CPU under 100%load in real-time use case. Is this even possible?
     
    • Winner Winner x 1
  17. Sebastien Brunier

    Sebastien Brunier Active Member Beta tester

    Joined:
    Dec 17, 2017
    Ratings:
    +38 / 0 / -0
    In single threaded apps you'll get a maximum of 100/nT % usage of overall CPU power and so on.
    In some application it can be "all you can eat" CineBench is a good example in the multi-threaded test. It's all related to the application developpers and if your app can take advantage of parallel tasking, the idea of doing it is easy, but writing code that does it isn't.
     
  18. Case

    Case Well-Known Member

    Joined:
    Apr 7, 2017
    Ratings:
    +104 / 0 / -0
    When you run a task that loads up all of the available logical cores. The more logical cores you have, the harder it is to do in real-life scenarios, outside of benchmarks or stress tests.

    In your case, with the (apparently) 4 core CPU, it shouldn't be too hard to achieve. Try running ACC with enough AI cars, for example, and you should be pretty close ;)
     
    • Like Like x 1
  19. pixeljetstream

    pixeljetstream Well-Known Member Beta tester

    Joined:
    Jan 29, 2015
    Ratings:
    +412 / 0 / -0
    It's really unfortunate that some people ignore the detailed explanations from others, for example what @Case wrote about thread migration managed by OS.

    Accepting advice and learning is a strength.
     
    • Like Like x 1
    • Agree Agree x 1
  20. doclucio

    doclucio Active Member

    Joined:
    Nov 21, 2018
    Ratings:
    +26 / 0 / -0
    so correct me if i am wrong...the fact that in vr with open vr i see the cpu overloaded and quite nothing the gpu is normal and related to dx9?!?
    i have a i7 8700 with 1080ti and run a valve index
     
    • Agree Agree x 3