AMD Mantle API [updating]

The problem with Microsoft and any plans they have for DirectX (whether or not they come to fruition) is that they will tie it to a future Windows version to force upgrading.
I do want to point out that there are legitimate technical issues with trying to backport changes that involve WDDM/DDI modification. The assumption that this is just (or even primarily) some business agenda to "get people to upgrade" is at best naive.

I do agree with wanting more effort put into back-porting though, but it's not really as simple as people want to think, especially now that the OS itself uses the 3D API for compositing, rendering the web, etc. It's a legitimate problem, it's just not a simple case of "business being jerks" as most people want to characterize it.

(As an aside, I also don't get why Microsoft seems to be held to a different standard for stuff like this. Apple never back-ports *anything*, breaks crap all over the place and never provides "options" when they introduce new "features"/UI and yet folks just drink it up. Hell they *remove features* from their applications for no apparent reason and yet they are still the good guys? Blows my mind.)

AMD don't need to (or would want to) do this.
It's just a matter of degrees - why doesn't Mantle support XP (or does it even support Vista?)? You can be sure that game developers want that support more than ever due to China, so why is AMD trying to force people to upgrade? Obviously tongue in cheek but you get my point I hope. :)
 
(As an aside, I also don't get why Microsoft seems to be held to a different standard for stuff like this. Apple never back-ports *anything*, breaks crap all over the place and never provides "options" when they introduce new "features"/UI and yet folks just drink it up. Hell they *remove features* from their applications for no apparent reason and yet they are still the good guys? Blows my mind.)
IMHO, it's because a different demographic uses Macs.

They are completely absent from desktop/laptop gaming, for instance.``
 
I don't think these Direct3D improvements were really driven by Mantle - they are rather a side-product of Xbox One development.

Quote from an October 2013 blog post by Kam VedBrat (former Direct3D/Direct2D/DirectWrite developer and currently a Group Program Manager for Games and Graphics Platform): http://blogs.windows.com/windows/b/appbuilder/archive/2013/10/14/raising-the-bar-with-direct3d.aspx:

with the launch of Xbox One, we can now bring the latest generation of Direct3D 11 to console. The Xbox One graphics API is “Direct3D 11.x” and the Xbox One hardware provides a superset of Direct3D 11.2 functionality. Other graphics APIs such as OpenGL and AMD’s Mantle are not available on Xbox One.

Developers creating content for the Xbox One are able to use the same programing constructs across Windows and Xbox, and benefit from all the improvements that have been introduced on Windows.

With Xbox One we have also made significant enhancements to the implementation of Direct3D 11, especially in the area of runtime overhead. The result is a very streamlined, “close to metal” level of runtime performance...

We’re also working with our ISV and IHV partners on future efforts, including bringing the lightweight runtime and tooling capabilities of the Xbox One Direct3D implementation to Windows, and identifying the next generation of advanced 3D graphics technologies.

Everything we learn from these activities will continue to flow into future iterations of Direct3D for Windows, Xbox, and Windows Phone.

So it's just a "lightweight runtime", which probably means a new "pure hardware" device type in D3D11CreateDevice, which bypasses the HAL (hardware abstraction level) of the plain "hardware" device, or some other way to select a "lightweight" version. The basic concepts of the Direct3D 11.x API do not change.
 
Last edited by a moderator:
Any more entry-point into the DX-tables is the opposite of light-weight. A problem of DX is that it's monolithic, monstrous, and a failure as a software architecture.
In my book it should consists of layers of management. The lowest layer manages the least, and every higher layer has increasing contracts about data and more specific functionality working on that data, until the upper layer which is totally managed in every aspect. Onion-type.
A new DX12 with a "parallel" layer of low level functionality, which itself is not used to implement the "old" managed kind of DX11, but competes with it on the driver level, will be an error.
I'm so happy C++ AMP is implemented _through_ DX, not alternatively/besides/parallel/... It allows me to hack below the layer of AMP itself if I need more performance, or less constraints, or things AMP itself simply doesn't have. I expect(ed) the same from DX, having access to lower layers than the one I'm working on. And then, below the most basic layer, you just find the silicon (figuratively).
 
I do want to point out that there are legitimate technical issues with trying to backport changes that involve WDDM/DDI modification. The assumption that this is just (or even primarily) some business agenda to "get people to upgrade" is at best naive.

I do agree with wanting more effort put into back-porting though, but it's not really as simple as people want to think, especially now that the OS itself uses the 3D API for compositing, rendering the web, etc. It's a legitimate problem, it's just not a simple case of "business being jerks" as most people want to characterize it.

(As an aside, I also don't get why Microsoft seems to be held to a different standard for stuff like this. Apple never back-ports *anything*, breaks crap all over the place and never provides "options" when they introduce new "features"/UI and yet folks just drink it up. Hell they *remove features* from their applications for no apparent reason and yet they are still the good guys? Blows my mind.)


It's just a matter of degrees - why doesn't Mantle support XP (or does it even support Vista?)? You can be sure that game developers want that support more than ever due to China, so why is AMD trying to force people to upgrade? Obviously tongue in cheek but you get my point I hope. :)

Yeah I'm fully aware of the WDDM issues with back-porting and my comment was not completely fair on Microsoft of course, but yes as you stated they could put at least some effort in backporting. They seem to not care at all from a more public point of view.

I do get your point indeed, but I believe Mantle shows that some effort can really pay off even for "legacy" (win 7 ffs?) operating systems.
 
Yeah I'm fully aware of the WDDM issues with back-porting and my comment was not completely fair on Microsoft of course, but yes as you stated they could put at least some effort in backporting. They seem to not care at all from a more public point of view.

I do get your point indeed, but I believe Mantle shows that some effort can really pay off even for "legacy" (win 7 ffs?) operating systems.

Exactly, when low level API like Mantle can work under Win 7, what technical excuse does Microsoft have that 11.1 and 11.2 are Win 8 only.

Depending on how far their PowerPoint slides go and judging from their history, we'll probably see next major evolution of DX in Win 9 only.

There is an excellent comment on techreport.com about Microsoft plays the gatekeeper in PC gaming. Do we really want that. I'd rather to see OpenGL being the only cross platform standard API and each vendor does their own API (if they want to) with total freedom and agility to give the "standard" a jolt in the rear end if things becomes stagnated than playing by whatever conflict of interest Microsoft is having.

There is self-interest motive, but AMD deserves a lot of respect to take the risk that other didn't want to. The pioneers aren't necessary the richest, live the longest, but without them, there is no hope, no change. I hope the works of Mantle becomes the important framework of future OGL or D3D.
 
I don't think these Direct3D improvements were really driven by Mantle - they are rather a side-product of Xbox One development.

Quote from an October 2013 blog post by Kam VedBrat (former Direct3D/Direct2D/DirectWrite developer and currently a Group Program Manager for Games and Graphics Platform): http://blogs.windows.com/windows/b/appbuilder/archive/2013/10/14/raising-the-bar-with-direct3d.aspx
I regarded that statement (done shortly after the Mantle presentation) as the first reaction to Mantle reassuring PC gamers that DX continues to evolve and will bring a reduction of the overhead in the future. How MS spins this, shouldn't matter.
 
Exactly, when low level API like Mantle can work under Win 7, what technical excuse does Microsoft have that 11.1 and 11.2 are Win 8 only.


OpenGL gives even Windows XP features similar to Direct3D 11 doesn't it? RAGE supports XP and it requires Direct3D 10-level cards at least.
 
A new DX12 with a "parallel" layer of low level functionality, which itself is not used to implement the "old" managed kind of DX11, but competes with it on the driver level, will be an error.
Ideally, sure. But it's not totally clear that such a layer could be as efficient as it is today if written in a "portable" way on top of the "low-level" API. To put it another way: while there are many similarities, there are differences in how UMDs work between vendors today.

Mostly I'm not sure such a layer is even very useful though. I can see the value of a lower-level interface (a la. Mantle) and the value of engine-level stuff (Unreal, Unity, etc), but the value of something sort of in the middle like classic GL or even DX in this context is not really proven. DX's goals lately have been to be as low level as possible while remaining portable, with an explicit non-goal being to make the API "easy to use". Engine vendors - or really anyone - can write the "easy to use" layer - there is no reason OS or hardware folks need to be involved there.

Exactly, when low level API like Mantle can work under Win 7, what technical excuse does Microsoft have that 11.1 and 11.2 are Win 8 only.
The fact that Mantle isn't used for anything critical. DX (or at least the internal runtime/driver layer) now has a requirement to remain a lot more compatible and "stable" due to it being a basic building block of the OS/Internet rendering implementation. It's not okay to push an update that breaks the OS itself, even for obscure or old hardware that is never going to get new drivers (there's the rub with the DDI changes in 11.1 and 11.2).

Look at Apple, it's *exactly* the same situation. They use OpenGL for their core rendering implementation and guess what? It's massively out of date, driver updates are few and far between (basically not allowed), etc. There is a trade-off between stability and being bleeding edge and quite frankly targeting a very narrow band of hardware in a very narrow application (gaming) makes the problem a lot simpler. (And let's not pretend that the Mantle drivers haven't caused stability problems that would have been completely unacceptable in general Windows as well.)

I'd rather to see OpenGL being the only cross platform standard API and each vendor does their own API (if they want to) with total freedom and agility to give the "standard" a jolt in the rear end if things becomes stagnated than playing by whatever conflict of interest Microsoft is having.
There's nothing that prevents any of that today. The reason people use DX is because it's a lot more solid, stable and frankly cleaner than OpenGL. The design by committee setup has its own problems and IMO they are just as serious as the "benevolent dictator" DX problems.

There is self-interest motive, but AMD deserves a lot of respect to take the risk that other didn't want to.
Absolutely, I don't think anyone would disagree with that. Even if Mantle itself doesn't go anywhere its value as a proof of concept kick in the ass to the rest of the industry is indisputable.
 
I do want to point out that there are legitimate technical issues with trying to backport changes that involve WDDM/DDI modification. The assumption that this is just (or even primarily) some business agenda to "get people to upgrade" is at best naive.

I do agree with wanting more effort put into back-porting though, but it's not really as simple as people want to think, especially now that the OS itself uses the 3D API for compositing, rendering the web, etc. It's a legitimate problem, it's just not a simple case of "business being jerks" as most people want to characterize it.

(As an aside, I also don't get why Microsoft seems to be held to a different standard for stuff like this. Apple never back-ports *anything*, breaks crap all over the place and never provides "options" when they introduce new "features"/UI and yet folks just drink it up. Hell they *remove features* from their applications for no apparent reason and yet they are still the good guys? Blows my mind.)

We do have a precedent of Microsoft backporting a WDDM version, from 7 to Vista. It mostly can be done, unless maybe some kernel features would be needed which complicates things and makes them much less possible.


The fact that Mantle isn't used for anything critical. DX (or at least the internal runtime/driver layer) now has a requirement to remain a lot more compatible and "stable" due to it being a basic building block of the OS/Internet rendering implementation. It's not okay to push an update that breaks the OS itself, even for obscure or old hardware that is never going to get new drivers (there's the rub with the DDI changes in 11.1 and 11.2).

And there, Windows 7 has to support really ancient hardware and software. Any regression would be met with lots of flame. I've seen it on a computer from 2002 and I bet some people run it on older hardware (though in these cases, no WDDM is involved and legacy software graphics is used. Old D3D or OpenGL games still work with an XP driver!)
If you have unsupported D3D 10 hardware (e.g. Radeon 4850) it will be a mess.
You could scan the hardware and give clearance to the new WDDM if it has Win 8.x driver, but this will fail if you change the graphics card to a wrong one again or move the hard drive to another computer.

Microsoft has sort of taken an Apple approach now anyway, but not so bad as they care about Windows 7 staying useful for a long time. It's up to game developers to support "plain old" DirectX 11 for a while, and they will do, just as with DX 9.
Now for the next-gen D3D there could be several outcomes :
- no new WDDM needed, it's released for Windows 8.1
- new WDDM, no backport but there's a Windows 8.2 you can upgrade to for no charge
- new WDDM, released with Windows 9, suck it up
- new WDDM, released with Windows 9, but this time maybe they backport it to Windows 8.1 just like they did with Vista and 7.
 
We do have a precedent of Microsoft backporting a WDDM version, from 7 to Vista. It mostly can be done, unless maybe some kernel features would be needed which complicates things and makes them much less possible.
Sure, and let me reiterate that personally I think that more effort should be made to this end. My point was just that there are *technical* issues at play; it's not just a money grab to force upgrades on the business side as (ignorant) folks want to think. I don't really have a ton of sympathy for folks with really old hardware/software trying to run new games, but I agree that back to Win7/DX10 should be reasonable. It saddens me that we still have DX9 feature level for the ARM stuff, but hopefully that goes away soon.

From the article Dave linked:
First, there’s the fact that DirectX 12 is almost certainly 12-18 months away. Second — and equally important — there’s the fact that Microsoft has been locking DirectX releases to Windows versions.
That's fine and all, but assuming AMD continues to not release Mantle to the general public I'm not sure the first point is that relevant to me. And TBH the argument that Mantle could serve customers with GCN GPUs on Win7 in some subset of games is even less compelling than the current one. And if you buy the argument that you can do something similar in GL, both of these points become irrelevant.

And if Mantle is ultimately subsumed by DirectX — so what? When I first talked to AMD about the next-generation API at APU13, the developers candidly told me that the long-term goal was to get Microsoft and the Khronos Group in charge of OpenGL to adopt a Mantle-like architecture.
This is the crux of the matter. I don't see why anyone - even AMD - would not just be happily saying "mission accomplished!" if the capabilities and features of Mantle make it into the standard APIs. I refuse to believe that any of the technical folks involved here actually prefer vendor lock-in.
 
I regarded that statement (done shortly after the Mantle presentation) as the first reaction to Mantle

This is a classical "post hoc" logical fallacy. Xbox One has been in active development for the last 2.5 years, long before the Mantle announcement.

We do have a precedent of Microsoft backporting a WDDM version, from 7 to Vista.
Actually it was one of the publicized goals of the new DXGI/WDDM model if you remember - to make a stable device driver interface to the OS that would only be updated for major versions of Direct3D.

Unfortunately something has gone wrong with this straightforward model, as each and every new D3D revision starting with 10.1 turned out to be major and required a new version of WDDM.

Now for the next-gen D3D there could be several outcomes
Microsoft has less than one year to "fix" whatever is wrong with Windows, given April 2015 RTM for Windows 9/Threshold... why would they waste their time backporting to Windows 8/8.1/8.1u1, which is almost universally panned and does not sell even with a free version update?

Remember what happened when Nvidia abandoned Windows XP and moved to WDDM/Vista model for new driver releases, for the very same reason of spending the limited developer resources more effectively. Somehow they have survived the backlash.


So there will be Direct3D 12.

I still hope Microsoft would be able to [post=1830629]backport their "close to the metal" Direct3D runtime from the Xbox One[/post] to benefit existing D3D11 applications.
 
Unfortunately something has gone wrong with this straightforward model, as each and every new D3D revision starting with 10.1 turned out to be major and required a new version of WDDM.
The thing that went wrong is that a lot of the performance problems that need fixing are inherent to the WDDM/DDI interface.

I still hope Microsoft would be able to [post=1830629]backport their "close to the metal" Direct3D runtime from the Xbox One[/post] to benefit existing D3D11 applications.
I think it's pretty clear that's not possible. As AMD has said for Mantle, applications must be written differently to perform better. If there was a way to just "optimize" the current driver/runtime stack you better believe it would have been done by now :)
 
The thing that went wrong is that a lot of the performance problems that need fixing are inherent to the WDDM/DDI interface.
If you look up device driver documentation, they were mostly expanding the feature set. Compare D3D10.0 (SM4.0 with 3 shader stages, no caps) with D3D11.2 (SM5.0 with 3+2 shader stages, feature levels and DX9 hardware, lots of optional features in D3D10.x/11.x feature levels...)

The final result is clearly beyond their original vision of a simple streamlined API with no capability bits or optional features...

If there was a way to just "optimize" the current driver/runtime stack you better believe it would have been done by now :)
If they did significantly improve the Direct3D 11.2 runtime on the Xbox One, they have a whole year to figure out a new driver model for Windows 9/D3D12 to realize these improvements.
 
If they did significantly improve the Direct3D 11.2 runtime on the Xbox One, they have a whole year to figure out a new driver model for Windows 9/D3D12 to realize these improvements.
Meh, I wouldn't believe any claims that any significantly improved Xbone API is directly compatible with the Windows one. I'm sure there are differences that trend more towards stuff like owning your own memory, doing your own synchronization and so on.

And again, the problem on PCs where you need to actually share the GPU (with hardware that is of very little help to that end) is legitimately harder. But I still wouldn't believe the claim that a magically faster runtime on Xbone makes the same code go way faster without proof.
 
This is the crux of the matter. I don't see why anyone - even AMD - would not just be happily saying "mission accomplished!" if the capabilities and features of Mantle make it into the standard APIs. I refuse to believe that any of the technical folks involved here actually prefer vendor lock-in.

Isn't that a given? You say like somebody here was defending vendor lock-in and we definitely aren't. I never saw any comment defending differently and even AMD, OXIDE and DICE repeatedly defended, expressed or hinted this intention.

Happy to see the industry moving.
 
Look at Apple, it's *exactly* the same situation. They use OpenGL for their core rendering implementation and guess what? It's massively out of date, driver updates are few and far between (basically not allowed), etc. There is a trade-off between stability and being bleeding edge and quite frankly targeting a very narrow band of hardware in a very narrow application (gaming) makes the problem a lot simpler. (And let's not pretend that the Mantle drivers haven't caused stability problems that would have been completely unacceptable in general Windows as well.)
afaik, os x 10.9 has opengl 4.1
 
Isn't that a given? You say like somebody here was defending vendor lock-in and we definitely aren't. I never saw any comment defending differently ...
The first half of the article that I was responding too came off as particularly "defensive" about Mantle's long-term utility. Perhaps I misinterpreted the tone.

I'm glad to here everyone here is on the same page though!

afaik, os x 10.9 has opengl 4.1
And you had to upgrade your OS to get it! The horror! :p (Aside: aren't we on 4.3/4.4 now on other platforms?) Anyways you get my point.
 
Back
Top