DX12 to be announced on March 20th

No need for DX12 to do that.

I wonder if DX12 would be more like software overhaul that targets DX11.2 cards instead of bringing new features that require new hardware. Could be both but it is interesting to see.
 
Three words

Physically based rendering.

Seriously.

Nothing really to do with DX and already on its way to becoming the current hotness. Needs artists to change as well, so not really a drop in thing.
 
I hope DirectX fails. We need to get out of this cage. Forcing people to buy windows only software along with stifling technology. They don't upgrade it enough to be a leader in 3d gaming and technology. They are holding everyone back. It wont be faster than mantle thats for sure. If anything it will be only be a feature upgrade with minor framerate increases. Mantle is the key to the Lamborghini. Mantle allows your videocard memory to be used as a whole in crossfire mode without copying the same stuff into all the cards as if its one. Can't argue with results and thats what mantle has proven. Crossfiring with mantle can give you over 200-400% fps increase compared to crossfiring in directx. Theres no comparison. Directx is dead tech.

Can Mantle works on nvidia graphic card? If not, then I don't see how it is better. Going out of OS specific cage, and right into vendor specific cage
 
A JIT would have even higher overhead than existing API's.

The advantage with a JIT is portability and not performance. There is no getting around that.
You make a good point and I forgot how poor of a performance JIT compilers can be, especially with Java.

So, basically, let's go back a bit. If Microsoft reveals on March 20th. a lower level (not baremetal) addition to the DirectX (namely Direct3D) API to compete against Mantle, and to reduce the costs and overhead on various computers, then the only way I see this working so as to not fall under the same problems that Glide itself fell into is this:

  1. Microsoft provides a common set of API and programming code like with Mantle that can be used universally across Windows-based devices.
  2. A driver that provides translation of that API to much lower level machine code is created by the GPU manufacturers themselves, but bypasses and lowers the overhead and costs of the API like what is currently being done with Mantle.
By going down this route, it puts control of the codebase back in Microsoft's hands, and is locked out by them. With Mantle, there is still the potential that this can be used on other platforms. However, when OpenGL gets involved in doing something similar, we'll be back to this again.

Most likely, if any of this sees fruition, we'll be back to the conundrum of what is the better low level API that provides the best performance on the PC-- DirectX, OpenGL, or Mantle?

We have to consider the fact that DirectX in its current implementation can only do no more than 3000 or 4000 draw calls, and when compared to Mantle, can go in the tens of thousands of draw calls depending on how many threads the CPU has and how powerful the GPU is.

If Microsoft can succeed in doing this-- reducing its overhead and increasing performance at the same time-- then they will have a popular API going forward on the PC given that it is used ad nauseum by game developers.

On the upside: It'll work across different GPU vendors-- Nvidia, Intel and AMD-- if they get on board and involved with this and create a compatible driver that can translate the lower level DX API code to their GPU's architecture that utilizes less overhead on the CPU, and increases DX's draw calls.

On the downside: It'll only work in Windows, and knowing Microsoft, you will need a specific operating system to use it. DirectX 11.2 requires Windows 8.1, and DirectX 12 will likely require Windows 8.1 Update 2 or something, or Windows 9.

The problem here: Will Microsoft be willing to give that much control and performance to PC users without it encroaching on their gaming consoles like the XONE?

If you think about how much overhead a PC has compared to a console, taking a PC to be as close to a console in terms of performance and playing a game ported to the PC using such tools, may mean less sales for the console counterpart.

I still see a potential behind Mantle, and if Nvidia is willing to get onboard given that the API is open source, and create a low level Mantle driver to use such an API for their own cards, then it will be a big challenge against Microsoft. And, if AMD gets this working for Linux and Mac, it'll be a bigger challenge against not only Microsoft's DirectX but the open source and less used in games, OpenGL.

We will see come March 20th., however, and what Microsoft has planned for DirectX.

If they come out with a lower level implementation of DirectX API, then we'll see how AMD responds to it.
 
Can Mantle works on nvidia graphic card? If not, then I don't see how it is better. Going out of OS specific cage, and right into vendor specific cage

Sure, but only AMD implements it so far. Most of the hardware support Mantle wants is probably there already on modern GPUs.
 
Maxwell can't support it. The engineering was finished on it a long time ago and DX12 would be too new to add it
Not necessarily. Microsoft works with IHVs on Direct3D over slow iteration periods, and current architectures may well support all or at least a subset of D3D12.

We don't know yet.
 
They would've had to start years ago and MS would've had to have had DX12 either mostly or partially finished back then for that to be true. We know MS has been twiddling their thumbs with advancing DX up until just recently though.
 
Most likely, if any of this sees fruition, we'll be back to the conundrum of what is the better low level API that provides the best performance on the PC-- DirectX, OpenGL, or Mantle?
Unless MS does a GPU arch. specific (not just vendor specific) low-ish level API a la Mantle then something like Mantle will still perform better. A "fixed" and/or greatly improved DX that suits more modern GPU arch. but didn't offer quite the level of control and performance but worked as well as previous versions of DX across multiple GPU arch. would probably still be enough to make Mantle irrelevant to the market.

The problem here: Will Microsoft be willing to give that much control and performance to PC users without it encroaching on their gaming consoles like the XONE?
They're pretty different markets and many PC gamers aren't PC only gamers. That is usually just their main platform.
 
They would've had to start years ago and MS would've had to have had DX12 either mostly or partially finished back then for that to be true.
The coupling between hardware and Direct3D isn't that tight. Hardware and drivers are tightly coupled, but the coupling between D3D and hardware isn't so tight so as to negate the possibility of a subset of D3D12 features being supported by current architectures.

Direct3D is a set of specifications and interfaces that IHVs provide conformance to through their own implementations, not an implementation itself.
 
Unless MS does a GPU arch. specific (not just vendor specific) low-ish level API a la Mantle then something like Mantle will still perform better. A "fixed" and/or greatly improved DX that suits more modern GPU arch. but didn't offer quite the level of control and performance but worked as well as previous versions of DX across multiple GPU arch. would probably still be enough to make Mantle irrelevant to the market.


They're pretty different markets and many PC gamers aren't PC only gamers. That is usually just their main platform.
But, wouldn't that require that AMD, Intel and Nvidia support a common standard GPU arch across their models?

It's one thing to support a single arch because it makes it simple, but it'll take a lot of work for three different companies to agree to one standard GPU arch that would work with a multi-GPU supported lower-level DX API. An Iris-GCN-Maxwell hybrid GPU arch combined to support a single graphics API would make this work out, but how can one company make three different companies agree to one single arch given they are taking different approaches at doing the same thing-- address 3D rendering, computing graphics effects, vertex and pixel shaders, multi-GPU frame rendering, compute, and GPU-based physics, etc.
 
It would be more of all 3 deciding on a standard interface, then leaving it up to the individual companies how they implement it.

Implementation coming through the drivers.

Just like MS does now.
 
I just want smoke and fog effects that don't bog everything down.
 
I hope DirectX fails. We need to get out of this cage. Forcing people to buy windows only software along with stifling technology. They don't upgrade it enough to be a leader in 3d gaming and technology. They are holding everyone back. It wont be faster than mantle thats for sure. If anything it will be only be a feature upgrade with minor framerate increases. Mantle is the key to the Lamborghini. Mantle allows your videocard memory to be used as a whole in crossfire mode without copying the same stuff into all the cards as if its one. Can't argue with results and thats what mantle has proven. Crossfiring with mantle can give you over 200-400% fps increase compared to crossfiring in directx. Theres no comparison. Directx is dead tech.

So you want to move from DirectX which is Windows only to Mantle which is Windows and AMD GCN only? That makes no sense what so ever.
 
So you want to move from DirectX which is Windows only to Mantle which is Windows and AMD GCN only? That makes no sense what so ever.
Yeah, seems like he should be rooting for OpenGL to implement some additional hardware interfaces. Mantle doesn't remove any of DirectX's lock-in.
 
Direct3D is a set of specifications and interfaces that IHVs provide conformance to through their own implementations, not an implementation itself.
Technically so is a ISA.

The hardware has to meet those specs though. There are quite a few things that are flat out impossible to half ass in the firmware and once you start messing with the under lying hardware....well there goes your budget and time schedule.

If there was a quick and easy to add features to existing GPUs IHVs would've been using it a long time ago.
 
Maxwell can't support it. The engineering was finished on it a long time ago and DX12 would be too new to add it. They're going to have to re-design the GPU + drivers for DX12. And then the games supporting it have to come out.

You're assuming that DX12 will require hardware features beyond what's currently avaiable in Shader Model 5.0.

It's possible this will be a purely software update (kernel, drivers, and driver-model), built around Shader Model 5.0. In which case, no new hardware is needed.

Similarly, Mantle works on all GCN graphics processors, even those that came out long, long before Mantle was finished. The API was developed around existing hardware.
 
You're assuming that DX12 will require hardware features beyond what's currently avaiable in Shader Model 5.0.

It's possible this will be a purely software update (kernel, drivers, and driver-model), built around Shader Model 5.0. In which case, no new hardware is needed.

Similarly, Mantle works on all GCN graphics processors, even those that came out long, long before Mantle was finished. The API was developed around existing hardware.

This would be my immediate assumption as well, it does appear to be their angle based on the initial press release. SM5.0 is extremely flexible and the shader space is where all the fun rendering development is happening and if Mantle is anything to go buy then the hardware vendors would seem to agree that actual hardware features isn't where the innovation needs to happen at this point.
 
Technically so is a ISA.
We're talking about relatively loosely-defined API calls into a hardware driver, not an ISA. These are entirely different things. Just because my rough description fits other models doesn't mean those other models are identical.
 
We're talking about relatively loosely-defined API calls into a hardware driver, not an ISA.
The sort of specifications a new version of DX typically requires need hardware to back them up though. Otherwise AMD, Intel, or Nvidia would have just taken MS's "relatively loosely defined API calls into the driver" and tweaked their drivers and firmware as necessary to make their DX9 GPU's into DX10 GPU's, DX10 GPU's into DX11 GPU's, and so on and so forth.

Software changes aren't enough to add new features to these GPU's since they still use and require huge amounts of fixed function hardware in order to process huge amounts of information at a high enough rate.

The alternative to doing things in fixed function hardware and using nothing but software to do the rendering is something like Larrabee but modern GPU's are nothing like that and may never go that route anyways.
 
It's possible this will be a purely software update (kernel, drivers, and driver-model), built around Shader Model 5.0. In which case, no new hardware is needed.
Its possible but unlikely I think. There are still lots of things developers want to do or want to do in a easier fashion and API tweaks only go so far.

If they're going to do a whole new version of DX I'd be surprised if they'd try and only go half way by focusing on efficiency.
 
Last edited:
But, wouldn't that require that AMD, Intel and Nvidia support a common standard GPU arch across their models?
Not if MS supports each IHV's arch. They probably would do a cut off much like AMD did with Mantle only being for GCN GPU's. So older arch. wouldn't be supported due to their age and lack of hardware features making support difficult or even impossible.

It'd be a lot of work but MS has the resources to do it easily.

A common GPU ISA would make more sense and would be the ideal IMO but getting AMD, Intel, and Nvidia to work together is impossible. Its a business leadership issue not a technical one.
 
Software changes aren't enough to add new features to these GPU's since they still use and require huge amounts of fixed function hardware in order to process huge amounts of information at a high enough rate.
Again, you're assuming they need new hardware features...

AMD had no trouble adding Mantle support to everything in their lineup based on GCN (a GPU centered around Shader Model 5.0)

Why couldn't DX do the same?
 
They didn't add Mantle support, they made Mantle support everything GCN. They explicitly said this was possible due to certain hardware feature support across all generations of GCN.

That is also why they're not supporting older VLIW arch. AMD GPU with Mantle. They don't have the necessary hardware to work with it.

Mantle also isn't an attempt to add new functions or features to GCN GPUs. Its just a lower-level-than-DX vendor specific API that uses existing hardware in a more efficient fashion.
 
Otherwise AMD, Intel, or Nvidia would have just taken MS's "relatively loosely defined API calls into the driver" and tweaked their drivers and firmware as necessary to make their DX9 GPU's into DX10 GPU's, DX10 GPU's into DX11 GPU's, and so on and so forth.
Considering DX10 required some pretty substantial changes to shader addressing, no, they couldn't have done that. DX10 was as close to a clean break for Direct3D as we're likely to ever see from Microsoft. Whether it couldn't have been done in the DX10->DX11 jump I don't know. Too much of the API may have changed to allow for any acceptable baseline level of conformance in existing DX10 hardware.

There are more aspects at play than just the hardware. There are market forces, economics, conformance issues, etc. You assume past history is indicative of future inability, which is a completely unreasonable assumption. I'm simply assuming nothing beyond "it's not necessarily infeasible".

Not if MS supports each IHV's arch.
Microsoft doesn't "support" any architectures. Direct3D is not an implementation.
 
They didn't add Mantle support, they made Mantle support everything GCN. They explicitly said this was possible due to certain hardware feature support across all generations of GCN.

That is also why they're not supporting older VLIW arch. AMD GPU with Mantle. They don't have the necessary hardware to work with it.

Mantle also isn't an attempt to add new functions or features to GCN GPUs. Its just a lower-level-than-DX vendor specific API that uses existing hardware in a more efficient fashion.
Or they just can't be bothered to make Mantle driver for different, old architecture because it would obviously be lots of work.
 
no, they they actually said dynamic shader allocation is required in hardware for mantle to function, It didnt exsist prior to GCN.
 
They didn't add Mantle support, they made Mantle support everything GCN. They explicitly said this was possible due to certain hardware feature support across all generations of GCN.
Not sure what you're trying to say here...

The GCN architecture came first (Development started mid-2011).
Mantle came later (Development started mid-2013), designed around the already-existing and finalized GCN architecture.

They were able to build Mantle around an existing GPU architecture and shader model, I still see no reason DirectX couldn't do the same.
 
im pretty sure he was talking about architerchtures prior to gcn.
 
Considering DX10 required some pretty substantial changes to shader addressing, no, they couldn't have done that....Whether it couldn't have been done in the DX10->DX11 jump I don't know.
The IHV's aren't in the business of throwing away money and so none of them would ever do hardware redesigns unless they were forced to for major reasons. Hell just look how they keep rebadging old GPU's for instance. They're perfectly willing to straight up scam customers out of money by duping them with marketing.

Even if you wish to ignore the issue of some how "reprogramming" fixed function hardware into supporting new standards via new drivers/firmware you know that to be true.

There are more aspects at play than just the hardware.
Sure but I'm not disputing them. Why muddy the issue further by bringing that stuff up?

Microsoft doesn't "support" any architectures. Direct3D is not an implementation.
Didn't say they did or that DX currently does. Re-read the post(s) I was replying to there.
 
I suspect what we'll see is some new direct memory management functionality and maybe better multidraw calls. Basically stuff to bridge the gap with OpenGL which isn't much of a step from Mantle. I doubt it'll be worthy of a version bump to 12, but marketing is a prominent consideration these days.
 
I don't know of a simpler way to put it, sorry.
Put what? You're not actually saying anything... more specifically, you're providing no evidence.

Mantle was built for a pre-existing architecture and saw major gains. I see no reason Microsoft can't do the same with DirectX and existing Shader Model 5.0 graphics chips.

You seem to disagree with that assessment, but you haven't actually listed any evidence as to WHY you take that stance.
 
The IHV's aren't in the business of throwing away money and so none of them would ever do hardware redesigns unless they were forced to for major reasons.
I'm not suggesting they do any hardware redesigns. I'm actually suggesting exactly the opposite: that conformance to a subset or to the entirety of D3D12 may not require new hardware. Note the extreme emphasis on "may not".

Even if you wish to ignore the issue of some how "reprogramming" fixed function hardware into supporting new standards via new drivers/firmware you know that to be true.
I'm not suggesting any changes would need to be made to fixed-function hardware. You're suggesting it is absolutely, unequivocally necessary for conformance to an API we know nothing about beyond its version number. That, to me, is astoundingly nonsensical.

Didn't say they did or that DX currently does.
Your entire post was an implication of precisely that.
 
I'm not suggesting any changes would need to be made to fixed-function hardware. You're suggesting it is absolutely, unequivocally necessary for conformance to an API we know nothing about beyond its version number. That, to me, is astoundingly nonsensical.
Agreed, especially when DirectX is now being designed with down-level hardware support in mind. For example, DirectX 11.2 will run on the following graphics hardware (with features made available as specified by the associated feature level): http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876(v=vs.85).aspx

Microsoft has effectively designed it so you can ALWAYS target the very-latest version of DirectX, and your application will work on all down-level hardware. Even if you use features only available on later hardware, that condition is automatically handled (either an alternative is swapped-in, or the feature is made unavailable).

It's effectively guaranteed that DirectX 12 will continue with this design, meaning it WILL RUN on current Shader Model 5.0 hardware. The question is if current SM 5.0 hardware supports the necessary features to implement the CPU-overhead-reducing bits.
 
Last edited:
Acting appropriately for a given feature level is on you. Calls will probably just fail if you don't meet the requirements.
 
Acting appropriately for a given feature level is on you. Calls will probably just fail if you don't meet the requirements.
Sure, and you can even lock-out down-level feature levels entirely if you like.

Point was that you're still able to target the latest version of the API without a forced break in hardware compatibility (Because DX11.2 will run on all of that hardware)... and there's no reason for that to change with 12
 
Back
Top