DirectX 12: The future of it within the console gaming space (specifically the XB1)

Discussion in 'Console Technology' started by Shortbread, Mar 7, 2014.

  1. iroboto

    iroboto Daft Funk
    Legend Subscriber

    Joined:
    Mar 6, 2014
    Messages:
    14,834
    Likes Received:
    18,634
    Location:
    The North
    I've thought about this, hence as being one of my counter points to my own arguments earlier. As of this moment, no one knows the state of GNM/GNMX. That's fine, Sony doesn't owe anyone an explanation. Our understanding is actually quite limited on its behaviour with the hardware, and what types of characteristics and features the API has.

    That being said if Mantle/PC and Xbox are 'catching' up to the programming paradigm for PS4, I would need to find proof of it. So this one comes up in mind as _not being proof of it_. I pulled these slides from Ubisofts GDC presentation on compute performance. Before they eventually get to where they want it to be in terms of performance, they attempted to run massive compute using a lot of compute shaders.

    And you can see from the results, they are immediately CPU bottlenecked due to the number of calls to the system. This behaviour, that what we know so far, is not characteristic of Mantle/Vulkan and DX12. This characteristic is more in line in how we view APIs today. Low overhead will only get you so far, you need to allow for multithreaded submission to make it work as well. So it's in my opinion that GNM today does not support multithreaded submission in the way Vulkan and DX12 do. So already, 1 major paradigm is missing. The 2nd major paradigm is of course fine grained async compute performance. But that builds upon paradigm 1. So as you can see here, it would fail at paradigm 2 as well. That leaves paradigm 3, which still no one knows what it is.

    That being said, likely with or without, PS4 is still be a good console. I'd like to see it adopt those 3 pillars in the future, but they don't necessarily have to; as least for a while, there's no rush for them to do it.

    [​IMG] [​IMG]

    edit: I think also, if they had DX12, they could have written an ExecuteIndirect version of this shader. I believe that would have removed the need to insert sync points in there extremely long shader.
     
    #1301 iroboto, Mar 29, 2015
    Last edited: Mar 29, 2015
  2. chris1515

    Legend

    Joined:
    Jul 24, 2005
    Messages:
    7,158
    Likes Received:
    7,966
    Location:
    Barcelona Spain
    It has nothing to do with API. You need few point of synchronisation for GPUGPU task not graphic related.
     
    #1302 chris1515, Mar 29, 2015
    Last edited: Mar 29, 2015
    Rikimaru likes this.
  3. DSoup

    DSoup Series Soup
    Legend Subscriber

    Joined:
    Nov 23, 2007
    Messages:
    16,785
    Likes Received:
    12,697
    Location:
    London, UK
    The state of GNM seems pretty clear thanks to the Deep Silver interview where Oles Shishkovstov stated:

    On PS4, most GPU commands are just a few DWORDs written into the command buffer, let's say just a few CPU clock cycles. On Xbox One it easily could be one million times slower because of all the bookkeeping the API does.
    That barely even qualifies as an API as you're just punching values directly into the GPU. Ever 'poke' address 53810 on a C64? You're directly instructing the graphics chip to change the background colour directly. Same with $DFF180 on an Amiga. You don't get any closer to the metal than this.
     
    iroboto likes this.
  4. iroboto

    iroboto Daft Funk
    Legend Subscriber

    Joined:
    Mar 6, 2014
    Messages:
    14,834
    Likes Received:
    18,634
    Location:
    The North
    Thanks for the update, I'm going to keep this one in mind.
    That's as low level as it gets. I appreciate that aspect of it, understanding it and having to code it are two different things though. This really actually only solidifies my argument that GNMX, and DX11 are still going to be used more than the lower variants. At least in the initial phases.

    Granted - you can write anything you want when you are that low level and have direct access to memory, but you'd have to write it.
     
    #1304 iroboto, Mar 29, 2015
    Last edited: Mar 29, 2015
  5. DSoup

    DSoup Series Soup
    Legend Subscriber

    Joined:
    Nov 23, 2007
    Messages:
    16,785
    Likes Received:
    12,697
    Location:
    London, UK
    I think we're probably out of the "initial phases". We're 18 months in from launch and developers probably had final production hardware six months prior to launch so that's two years.

    High level APIs have their place and smaller teams, teams not using an existing cross-platform engine that itself uses low-level APIs or teams that lack a dedicated graphics guy will probably really appreciate them. But I can't see many AA or AAA productions going that route. Even The Crew, which is hardly AAA, they started with GNMX just to get it working them dropped into GNM.

    And it may be you don't have to make a holistic choice, i.e. like writing code in C with inline assembly for the performance critical parts, you may you have to use higher-level APIs for some things and use GNM for the critical code.
     
  6. iroboto

    iroboto Daft Funk
    Legend Subscriber

    Joined:
    Mar 6, 2014
    Messages:
    14,834
    Likes Received:
    18,634
    Location:
    The North
    lol yea, it would be good to get an idea of where most companies are at with what they are using. Obviously the smaller shops/indie developers will likely not being heading that route except on the whim of passion. I don't know if we're officially out of launch yet. Games can take longer than 2 years to build, so we're still looking at titles that have been in development prior to launch. I imagine that collective learnings from previous titles as an industry only get realized after the game ships and then they share their information - otherwise they're only sharing it in house. I guess GDC is a good place for that type of thing.
     
  7. Shifty Geezer

    Shifty Geezer uber-Troll!
    Moderator Legend

    Joined:
    Dec 7, 2004
    Messages:
    44,106
    Likes Received:
    16,898
    Location:
    Under my bridge
    The low overhead of GNMX is well documented now. I guess it's more a matter of how many folk use GNM and how efficient that is. As DSoup has said though, this likely won't affect A grade titles. Anyone needing the highest level of performance will go the GNMX route, while middlewares should all be going that route to justify their worth to the platform.

    Which does leave us in a curious question about whether PS4 is currently being limited by cross-platform designs? A game intended for PC that is spec'd for DX11 is going to have to be crafted quite differently from what PS4 could enable. But then all the draw-calls in the world don't matter when your GPU is limited in what it can draw. ;) I think that's the take-home point really. The API's may or may not be wonderfully efficient, but the real-world impact of inefficiencies are likely quite low. Have trouble with draw-calls? Design around them, batching and whatnot.

    So for me the question isn't one of performance, but difference. What will be different if draw calls become a non-issue? Will we have more diversity in in-game content? Or will we have the option of alternative rendering methods based on flexible drawing?

    TBH I'm not really expecting much different at all and I can see the whole DX12 thing being a bit of a let down. Games are still going to look very much the same overall and the effect of DX12 quite possibly won't be noticeable save as improvements in shadows or a bit of framerate on some CPU bound games. Best outcome is maybe some very CPU limited games getting significant improvements on PC, which consoles won't benefit from.
     
  8. chris1515

    Legend

    Joined:
    Jul 24, 2005
    Messages:
    7,158
    Likes Received:
    7,966
    Location:
    Barcelona Spain
    From DF article about the Crew. GNMX is for indie title and not for having good performance on AAA title.

    GNM is the low level API. GNMX and GNM are twi different API.
     
    #1308 chris1515, Mar 29, 2015
    Last edited: Mar 29, 2015
  9. iroboto

    iroboto Daft Funk
    Legend Subscriber

    Joined:
    Mar 6, 2014
    Messages:
    14,834
    Likes Received:
    18,634
    Location:
    The North
    =P But are we really GPU limited yet ? Furmark was about GPU limited, no rest allowed for the GPU. It caused power draw and heat like no other causing many cards to die under its own lack of cooling. Drivers were modified to detect Furmark and throttle down to ensure the card doesn't kill itself. Those days are over now, but I doubt that game code has gotten anywhere close to that point of saturation.
     
  10. iroboto

    iroboto Daft Funk
    Legend Subscriber

    Joined:
    Mar 6, 2014
    Messages:
    14,834
    Likes Received:
    18,634
    Location:
    The North
    Calling a lot of compute shaders is part of the API. And that is exactly where it failed to do it. A multithreaded command buffer would have filled it. That task was only accomplished in the same way batch jobs are done today. Same materials, same shader code, with synchronization points.
     
  11. chris1515

    Legend

    Joined:
    Jul 24, 2005
    Messages:
    7,158
    Likes Received:
    7,966
    Location:
    Barcelona Spain
    Many synchronisation point is to be avoided for GPGPU task like cloth physics. Direct X 12 or Mantle or GNM it is the same things. They were CPU bound with many synchronisation point.

    Synchronisation is not CPU free.
     
    #1311 chris1515, Mar 29, 2015
    Last edited: Mar 29, 2015
  12. mpg1

    Veteran

    Joined:
    Mar 5, 2015
    Messages:
    2,250
    Likes Received:
    1,996
    Triple A game development has become so complex and expensive relative to amount of money being made that I wouldn't be surprised if companies are not spending time on getting the most out of the hardware or refining the graphics performance. Getting the game completed, relatively bug free and shipped are main priorities. The only developers/publishers that will really have the resources and willingness to polish a game graphically are first party studios which themselves are making less and less games these days. The only triple A 3rd party games that I can think of that are an exception to this are GTA and Call of Duty...maybe one or two others.
     
  13. chris1515

    Legend

    Joined:
    Jul 24, 2005
    Messages:
    7,158
    Likes Received:
    7,966
    Location:
    Barcelona Spain
    And for non graphic task you need to synchronise with CPU. Because the CPU needs to know you update physics simulation for example.
     
    #1313 chris1515, Mar 29, 2015
    Last edited: Mar 29, 2015
  14. iroboto

    iroboto Daft Funk
    Legend Subscriber

    Joined:
    Mar 6, 2014
    Messages:
    14,834
    Likes Received:
    18,634
    Location:
    The North
    Yea, Bungie comes to mind as well. But I agree, but I think having to deal with so many different code bases is a likely culprit as to what caused this year to be exceptionally bad in terms of optimization. Once cross gen games are out of the picture, I expect quality to improve.
     
  15. mpg1

    Veteran

    Joined:
    Mar 5, 2015
    Messages:
    2,250
    Likes Received:
    1,996
    I think iRoboto is correct. The question isn't really about how low level the api's are. The GNM api is probably as low level as you can get since it is specific to that device. The question I'm curious about is..is the GNM api currently capable of all of the features that we are seeing in DirectX 12 and Vulkun. The main one being the ability to utilize multiple CPU cores efficiently to feed the GPU.

    Hard to say because Sony doesn't really talk about it. But I would suspect if it did have all these type of features now we would be seeing a much more of difference between PS4 and Xbox One right now in terms of graphics. Right now it just feels like the raw hardware is the difference maker.

    I would suspect that Sony is probably looking at mantle/vulkun and implementing/improving features into GNM that aren't there. Question is how far along are they on that?
     
  16. chris1515

    Legend

    Joined:
    Jul 24, 2005
    Messages:
    7,158
    Likes Received:
    7,966
    Location:
    Barcelona Spain
    Mantle has this possibility too and it is not needed on PS4 because GNM has this possibility too.

    Draw Calls limit and multithreading limit command buffer are a PC problem comong from Direct X implementation before DX12 not a console problem not on PS3 not on 360 and not on PS4 and maybe low level API of Xbox One .
     
    #1317 chris1515, Mar 29, 2015
    Last edited: Mar 30, 2015
  17. chris1515

    Legend

    Joined:
    Jul 24, 2005
    Messages:
    7,158
    Likes Received:
    7,966
    Location:
    Barcelona Spain
    The drawcall limit on PS3 and Xbox 360 comes from limited power, same things for new consoles with good mow level API...
     
    #1318 chris1515, Mar 29, 2015
    Last edited: Mar 30, 2015
  18. oldschoolnerd

    Newcomer

    Joined:
    Sep 13, 2013
    Messages:
    65
    Likes Received:
    8
    So xb1 will see zero benefit from parallel draw call submission?
     
  19. chris1515

    Legend

    Joined:
    Jul 24, 2005
    Messages:
    7,158
    Likes Received:
    7,966
    Location:
    Barcelona Spain
    Maybe it was in the low level API If not yes it will bring improvement... Because if it will come with Direct X12 the case Xbox One API was a simple port of Direct X11.

    But it is not new on consoles.
     
    #1320 chris1515, Mar 29, 2015
    Last edited: Mar 30, 2015
Loading...

Share This Page

  • About Us

    Beyond3D has been around for over a decade and prides itself on being the best place on the web for in-depth, technically-driven discussion and analysis of 3D graphics hardware. If you love pixels and transistors, you've come to the right place!

    Beyond3D is proudly published by GPU Tools Ltd.
Loading...