Google-apps
Hoofdmenu

Post a Comment On: C0DE517E

"On Mantle"

9 Comments -

1 – 9 of 9
Anonymous Anonymous said...

Hi. codedivine from twitter here. Some other people think that Mantle won't matter at all on top-end cards such as the 7870+, but one configuration where Mantle *may* provide a better experience is on weaker hardware such as AMD APUs. Do you think so too?

December 1, 2013 at 3:53 PM

Anonymous Frogblast said...

From AMD's APU presentations, the takeaway I got is that the degree of alignment with the PS4 API varies depending on the part of the API:

(I'm reading between the lines, as I do not have access to libGNM).

- resource allocation: probably very closely related to the PS4 API, where the user performs their own suballocation out of larger resources. This allows framebuffer aliasing, but also keeps the number of WDDM resource binds to a minimum (at the likely cost of much coarser VRAM paging?). I suspect they also both expose GCN's resource descriptors.

- explicit command buffer management: probably similar to PS4, allowing parallel encode and explicit submission of command buffers to a particular hardware queue.

- 3D state setting: probably very dissimilar to PS4. I suspect that libGNM expresses something very close to GCN's command buffer format (directly exposing the orthoginality/nonorthoginality in GCN), where Mantle has a single coarse 'state object' for most 3D pipeline state to avoid requiring that a handle non-orthoginal state by deferring work to Draw time. This is where AMD is reserving the most ability to make HW changes in the future, including moving the balance between fixed function units and shaders.

December 1, 2013 at 4:44 PM

Blogger DEADC0DE said...

Codedivine: I'm not sure. In general I agree that it might be a move towards low-power configurations, but even there I'm not entirely sure because we tend to put relatively high resolution screens everywhere and so the GPU might be a bottleneck as soon as the CPU is.
In theory it's actually better for very high end configurations where it's easy for the GPU to be much, much more powerful than a single thread on CPU (remember that the drivers are still running on one thread nowadays), SLI stuff even "better". But on the other hand I guess to CPU bottleneck these you still have to push your engine a lot which might be not "easy" once the assets are made a given way... Of course you can ignore LODs (material ones...) and push view distances and manage, but I don't know at which point you hit diminishing returns really...

Honestly I'm quite far from PC development, I've done some games that also shipped on PC and even supervised their performance, but the overall amount of time allocated to the PC version has to be small enough not to make me in anyways an expert. Mostly cared about making sure it ran, first, then on some very specific minimum requirement configurations we would see what to do to make it faster...

December 1, 2013 at 6:32 PM

Blogger DEADC0DE said...

Frogblast: I agree totally. I expect it to be higher level in a lot of ways (as you mention, state is one of such) but still easy to drop-in, as most of the "hard" stuff (namely, manual management of memory and lifetimes) would still work with the logic we already did and tested on PS4.

If they really want to push it they could even have a PS4 layer that sits on top of libGNM, I honestly don't know/didn't ask if that was the case and I can see reasons for them not to (namely, that most devs would still prefer the native PS4 stuff on PS4).

December 1, 2013 at 6:37 PM

Anonymous eXile said...

Interesting thoughts. However, in my opinion the whole Mantle discussion has a dire lack of facts -- which is not really surprising, because the "official" information about Mantle consist of two AMD presentations by Johan Andersson.

So here are some more "facts" ... well ... actually they are twitter messages and blog posts. Apparently the best kind of facts you can get in the clandestine world of GPUs.

1. PC/Windows: OpenGL should get all Mantle features exposed as OpenGL extension, and apparently with the same performance. https://twitter.com/grahamsellers/status/383002166329237504 (Please read all tweets in that thread.)
2. PC/Linux: In the second AMD presentation, Johan said only Windows 7 and 8/8.1 are currently supported (probably because of the WDDM), but Linux might possibly follow in the future.
3. XBox One: No Mantle. Via Microsoft decree. http://blogs.windows.com/windows/b/appbuilder/archive/2013/10/14/raising-the-bar-with-direct3d.aspx
4. PlayStation 4: No Mantle. https://twitter.com/AMDRadeon/statuses/389889549016391680

So either I got something wrong (or, more precisely, one of the sources above is wrong), or it seems that Mantle might be substitutable by OpenGL, feature- and performance-wise. I personally doubt the latter, but that is only my opinion.

December 2, 2013 at 2:17 PM

Blogger DEADC0DE said...

1) I don't think that makes a big difference but it's nice to have

2) I don't think porting to Linux would be hard. On the other hand I don't think linux matters

3) Well, that's for sure

4) If gamedevs really want to use Mantle and if they'll find it too different from ps4, they might push for it to be on ps4 and if gamedevs push, things will happen. But I suspect that if it's too different simply it will fail and most games won't be using it.

December 2, 2013 at 3:24 PM

Anonymous Anonymous said...

I've lost you on the "hardware state" bits. Modern GPUs don't have any "state" whatsoever. Unless by "state" you are referring to the values stored in register file.
This is why DX9/10/11/12... are bad: they cling to "state" that just does not exist anymore.
And then the issue of draw calls, it's the same problem: modern games do not use many draw calls, because it is prohibitively expensive in D3D, and not because they "don't need it".
Proper geometry LODs, animations or any dynamic objects on screen: each of them produces draw calls.

December 7, 2013 at 4:36 PM

Blogger DEADC0DE said...

I agree that if we could universally use more draws we would find ways to employ them. But if it's only one platform, not.

December 8, 2013 at 4:54 PM

Blogger Arun said...

Great post. I learn useful information from your blog.


http://techhowdy.com/mp3-skull-download

July 3, 2014 at 7:15 AM

You can use some HTML tags, such as <b>, <i>, <a>

Comment moderation has been enabled. All comments must be approved by the blog author.

You will be asked to sign in after submitting your comment.
Please prove you're not a robot