1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

High DX11 CPU overhead, very low performance.

Discussion in 'Videocards - AMD Radeon Drivers Section' started by PrMinisterGR, May 4, 2015.

  1. Spartan

    Spartan Master Guru

    Messages:
    678
    Likes Received:
    2
    GPU:
    R9 290 PCS+
    In this case, that 5-10 fps was placebo, and the integrated benchmark is terrifying :confused:

    above ultra/maxed out settings:
    mantle av44.8 mi38.8
    dx11 av44.9 mi36.4

    high settings:
    mantle av84.0 mi72.9
    dx11 av86.1 mi75.2
     
  2. OneB1t

    OneB1t Master Guru

    Messages:
    262
    Likes Received:
    0
    GPU:
    R9 290X@R9 390X 1050/1325
    there are places in dragon age which works really good on FX for example
    [​IMG]
    in this spot is also huge difference between mantle and DX11 (like 57vs 30 fps)

    my results R9 290X 1100/1450 in integrated benchmark
    Mantle:
    no MSAA
    min 59
    avg 70

    2x MSAA
    min 50.7
    avg 60.5

    4x MSAA
    min 44.9
    avg 52.4

    DX11
    no MSAA
    min 55.5
    avg 68.7
    these was on release drivers now it can be little better :)

    i done alot of tests under mantle and fx-8xxx perform very close to i7-3xxx
    main problem is DX11 singlethread or DX9 engines
    also from 3dmark DX12 overhead test it seems like fx can feed my card just fine (its with old driver now it is maybe even better result)
    [​IMG]
     
    Last edited: Jul 8, 2015
  3. Spartan

    Spartan Master Guru

    Messages:
    678
    Likes Received:
    2
    GPU:
    R9 290 PCS+
    Thank you! This means my cpu still has some hope :)
     
  4. Ryu5uzaku

    Ryu5uzaku Ancient Guru

    Messages:
    6,748
    Likes Received:
    88
    GPU:
    Vega 64 1500/1075
    Alot can be said about game engines. World of Tanks is using old poorly optimized engine my gpu usage is around 50-60% and fps correlates 40-80 fps depending on scene. And in World of Warships my fps is solid 60 since I have v-sync on and that game uses 100% of my gpu all the frikkin time.
     

  5. DiceAir

    DiceAir Maha Guru

    Messages:
    1,350
    Likes Received:
    13
    GPU:
    Galax 980 ti HOF
    Remember one thing. That driver or whatever was designed for one specific hardware (cpu, gpu memory etc etc) so better to optimize. That's the reason why developers rather design for console and then pc. What is easier to do. console that has 1 type of hardware and that's it or pc where you have 100mil different configuration with many apps installed and so on? dx12 will make things much easier I suppose but we would have to wait and see. in about 2 years we will see much better dx12 games. The first dx12 games I think won't see the full benefit of dx12
     
  6. janos666

    janos666 Master Guru

    Messages:
    646
    Likes Received:
    41
    GPU:
    MSI GTX1070 SH EK X 8Gb
    If DX12's low-level part could really make the game developer's work so much easier on PC then DirectX would have never been "evolving" the way it has been and 12.x's high-level part (remember, this new low-level part will be added as a separate path alongside the high-level part which will probably continue to "evolve" through and beyond the 12.x version).

    Note that I use the "evolve" word in a more literal manner here than how it's usually applied nowadays. Evolving isn't about getting bigger, stronger, smarter or just more advanced and/or complex in general. It means "adapting to the environment". Microsoft (while it should, of course, be noted that they might had their own agendas and tried to manipulate the environment around them according to their will) tried to adapt to it's environment: the game developers.

    Back in the days, developers wished for high-level APIs for simple hardwares, so their work gets even more easier. Microsoft reacted to those needs with more and more advanced and complex high-level DirectX API versions as the hardware became more advanced and complex.

    Now developers realized that DirectX became way too complex and thus lost it's charm of being an easy to program for high level API.
    Also, let's not miss a fact that in the mean time, hardware became much more advanced and the whole gaming industry grew a lot bigger. So, these new developers today see a lot of potential in programming directly for the advanced hardware and they do have the budgets to do so. Thus, they want low-level APIs now.

    But let's not forget developers are all lazy. They always are. They were lazy to do low-level programming for simple hardware. They will remain lazy to do advanced low-level programming. The only case when they can't afford to be lazy is when the market forces them to do "proper" work and their studios pay them enough to work harder. Just look at how many developers use copy-paste code parts like TressFX and GameWorks. They are too lazy to write their own high-level code. Imagine how lazy they will probably be to write their own low-level code.

    What is the conclusion and/or my point here I am trying to make?
    Only the biggest game studios who can afford to employ talented developers and motivate them to do proper work may use a low-level API to it's full potential because it's a lot more work than doing high-level programming with a bunch of copy-paste job. Small studios with low budgets are better off with high-level APIs.

    So, all in all, it's not simple equation. It all depends on what you are trying to achieve and how much can you afford to invest into the development:
    - if you want a really advanced game engine and you have the $$$$$$$ then it's probably easier to achieve your goal through a low-level API (your statement above is thus true in this case)
    - if you want "a good bang for the buck" game engine from a low budget, you will (and should) probably favor a high-level API (this case is not that clear as the one above but I think it's the "smarter investments" in risk/reward)

    But... again. You should consider how lazy those high-budget developers are today. And you might also want to factor in things like a probable collapse of most huge gaming studios (like EA :infinity:) during the next global economic throw-over...

    I don't think this low-level programming thing is really "the ultimate future". On the contrary! It's more like a swing between the cycles, constantly going back and forth between low and high-level programming while trending towards high-level on the longer run (when it simply won't be economical but way too hard to do optimal low-level programming for such things like "stupid" video games).
     
    Last edited: Jul 8, 2015
  7. MatrixNetrunner

    MatrixNetrunner Member Guru

    Messages:
    125
    Likes Received:
    0
    GPU:
    Powercolor PCS+ R9 270X
    In articles on the genesis of DX12, it's usually mentioned that MS was developing an evolved version of DX11 (now known as DX11.3) for the new OS, before AMD forced their hand with Mantle to make a significant paradigm shift.
     
  8. DiceAir

    DiceAir Maha Guru

    Messages:
    1,350
    Likes Received:
    13
    GPU:
    Galax 980 ti HOF
    So i'm wondering if I should give windows 10 latest build a try. Will it work with my crossfire setup? What I mean is will it detect crossfire. I really want to see the performance but don't want to go through all the effort to install it for now if crossfire doesn't work. I have build 10162. I''m also going to install it on a separate drive and test
     
  9. janos666

    janos666 Master Guru

    Messages:
    646
    Likes Received:
    41
    GPU:
    MSI GTX1070 SH EK X 8Gb
    Well, OK, I forgot to add that low-level APIs always make the work of the VGA driver developers a lot easier. That's true. Go AMD! :banana:
     
  10. theoneofgod

    theoneofgod Ancient Guru

    Messages:
    4,056
    Likes Received:
    41
    GPU:
    RX 580 8GB
    960/1500 Single GPU:

    12.6 (2012)
    [​IMG]
    15.6
    [​IMG]
    1040
    [​IMG]
    1023.7
    [​IMG]
    1023.10
    [​IMG]
     

  11. PrMinisterGR

    PrMinisterGR Ancient Guru

    Messages:
    6,972
    Likes Received:
    120
    GPU:
    Sapphire 7970 Quadrobake
    It is not as different as you might believe. In the end, it is a driver that interfaces a Windows 8.1/10 kernel with GCN and an 8-core x86-64 CPU. A driver that interprets DX11 calls, no different than the ones on PC, as far as I understand. There aren't a hundred million configs. You can adjust both for core numbers and for the width of the GPU, but in the end it is again Windows, DX11, GCN and x86. I really want to know if it is Microsoft or AMD who wrote that driver, and how feasible it would be to port it.
     
  12. SMS PC Lead

    SMS PC Lead Member

    Messages:
    22
    Likes Received:
    0
    GPU:
    Titan X SLI
    There's a pretty straight-forward answer to this - Project Cars uses a light pre-pass (aka deferred lighting) renderer ... First invented by WolfGang Engel I think - http://diaryofagraphicsprogrammer.blogspot.co.uk/2008/03/light-pre-pass-renderer.html).

    This rendering method gives us the great flexibility that our game has in it's lighting - for example the night lighting (with many ights) and dynamic time of day are "easily" implemented when using this method. The method is not without disadvantages - the first is that MSAA doesn't work particularly well with it, and the second is that it increases the volume of draw-calls by 2x that are needed to render a scene. The increase in draw-calls is what causes the increased pressure on the driver thread. (There's a list of games that use deferred lighting over at https://en.wikipedia.org/wiki/Deferred_shading)

    It is possible to write a tool to exactly display the driver thread usage - but equally using a Process Monitor like someone else mentioned on this thread or Very Sleepy with some instructions, would enable some analysis of driver thread bottlenecks. I'm still a bit busy with Oculus Work at the moment - getting the shadows correct is giving me a headache today.

    It's probably 3 months work to get something running - maybe 5 to get an optimised implementation that has rendering feature parity with DX11. (It's quite a large engine)

    I'm unfortunately bound by 1st Party NDA's to be able go into any real detail about the Xbox One/DX11 :(

    It's not really a 'driver' though in the PC sense, but I can say that a significant proportion of console efficiency is the fact there is no need for a Hardware Abstraction Layer like in normal Windows and also that there is only a single hardware target. There's a huge amount of management that a DX11 PC driver needs to do - for example you can run multiple applications at the same time and it has to work and co-exist the Windows GDI/GUI.. all of this adds complexity in comparison to what is needed for a light-weight console implementation.
     
    Last edited: Jul 8, 2015
  13. SMS PC Lead

    SMS PC Lead Member

    Messages:
    22
    Likes Received:
    0
    GPU:
    Titan X SLI
    From what I recall, during development the 337.xx driver series was the one where NVIDIA hugely optimised their driver thread. It gained us up-to 25%, which was quite the "holy ****" moment when some WMD users posted back to back benchmarks.
     
  14. The Mac

    The Mac Ancient Guru

    Messages:
    4,409
    Likes Received:
    0
    GPU:
    Sapphire R9-290 Vapor-X
    just out of curiousity, 3-6 months worth of work for how many people? (context for resource usage)
     
  15. theoneofgod

    theoneofgod Ancient Guru

    Messages:
    4,056
    Likes Received:
    41
    GPU:
    RX 580 8GB
    960/1500 Single GPU:

    12.6 (2012)
    [​IMG]
    15.6
    [​IMG]
    1040
    [​IMG]
    1023.7
    [​IMG]
    1023.10
    [​IMG]
    15.7
    [​IMG]
     

  16. PrMinisterGR

    PrMinisterGR Ancient Guru

    Messages:
    6,972
    Likes Received:
    120
    GPU:
    Sapphire 7970 Quadrobake
    It looks like a magic list of games that AMD cards underperform. Now I understand why. I'll give a look at the renderer.

    Hm, that explains a lot of things about your game, and the games on the list in Wikipedia. SC2 (still) has impressive lighting, and (still) runs badly on AMD hardware. My friend's 560Ti has comparable framerates at 1080p, with my 7970, and that should never have happened.

    Well, I understand you have a lot of stuff to do. Before you mentioned it, I hadn't known of Very Sleepy, so that's something on its own. As for the Occulus revolusion, I know why people get so excited, but I hold my horses still. The 90fps target is probably the hardest part of all this, because it is 90fps minimum. That sounds almost impossible with today's hardware.

    That's for your own customized engine. That's more time than I believed it would take, and I guess that these are minimum crew times.

    That's a pity. NDA's are the death of geekdom. :D

    My completely uninformed guess is that WDDM 2.0 helps a lot with removing some of the cruft from HAL, and at the same time it would be possible to use parts of the "console" DX11 driver for full screen apps at least? Have something like a "daemon" in the driver, and switch codepaths when something is alt-tabbed or leaves full screen?
     
  17. Dygaza

    Dygaza Master Guru

    Messages:
    535
    Likes Received:
    0
    GPU:
    Fury X 4GB
    My test results confirms yours :)

    3dmark API

    1040.0

    DX11 MT 1 203 383
    DX11 ST 1 252 605

    1023.10

    DX11 MT 1 216 165
    DX11 ST 1 290 934

    15.7

    DX11 MT 1 223 682
    DX11 ST 1 284 336

    Can say these drivers have latest optimisations they have made for overhead. Good job :)
     
  18. DiceAir

    DiceAir Maha Guru

    Messages:
    1,350
    Likes Received:
    13
    GPU:
    Galax 980 ti HOF

    It's scary. here we drool over 1.2- 1.3mil where nvidia sits at over 2 mil...lol
     
  19. Dygaza

    Dygaza Master Guru

    Messages:
    535
    Likes Received:
    0
    GPU:
    Fury X 4GB
    True, but in real you never compare what others have. You compare what you previously had.

    I've said it earlier, AMD doesn't need to get where Nvidia is. They need to get up to the point where thir overhead don't limit their fps anymore.

    Of course lower overhead has other benefits aswell if you're gpu bound. You use less power for cpu if it needs to calculate less extra stuff.
     
  20. Noisiv

    Noisiv Ancient Guru

    Messages:
    6,607
    Likes Received:
    461
    GPU:
    RTX 2070 Strix
    you cant reliably and fully meaningfully compare overhead test across architectures...I think.
     

Share This Page