When shopping or looking at specs for graphics card you will see the DirectX version that it supports (in my specific case the card supports 10). What I want to know is that when Microsoft released their new version 11, what would be stopping this card from performing at DX11 standards?

I would theorize that it is a matter of firmware on the actual graphics card itself, could this not be flashed to support the latest version? Or will this DX10 card support and run DX11 just fine, it is just the fact that Nvidia couldn't label it as such since DX11 wasn't out yet?

Anyone that has some good insight to this, let me know!

Edit: alright, if you downvote this thread or vote to have it closed... would you please explain why you think it is a 'stupid question'. I seriously am curious as to how or what the difference is between DX versions that would require a complete hardware change. GPU instruction sets are the same, the only difference in hardware is that the newer ones have faster VRAM, more stream processors, etc. So why can't a DX10 card be upgraded to support DX11?? Give me a reason.

  • 1
    Oh, if that was only the case. . .
    – surfasb
    Jul 29, 2011 at 3:17
  • From a conceptual standpoint, what would anybody that views this thread suggest would be required for hardware modifications to transition from a DX10 to DX11? The GPU and stream processors all have had the same or very similar instruction sets. And most expensive graphics cards these days have plenty of horse power that it would at least act as a mid-grade graphics card if updated to the next step up of DX versions Jul 29, 2011 at 16:06
  • Note also, that historically games are behind the curve when it comes to DX versions. When a DX version is new (even up to a year after) the majority of software out there will not fully support/implement the new standards. When shopping, this is something to consider, since one often pays a premium for the cards that support the new standard. You should also look at performance of the cards in question, since some DX n cards are going to be crappier than dx n-1 cards
    – horatio
    Jul 29, 2011 at 18:32

4 Answers 4


The reason why DirectX 10 cards cannot be upgraded to DirectX 11 would most likely be to do with DirectX 11 mandating particular features such as a particular level of precision in mathematical operations, that kind of thing is difficult and a bit annoying to back-port onto hardware that was not designed to work with it.

This would be the same as a particular CPU not supporting new features introduced by a newer CPU, sure the new features could be emulated (and may run not too much slower than a native implementation) but the CPU itself still will not truly support the required features. A similar idea might be the possibility of emulating SSE instructions on a non-SSE processor, sure you could do it, but it's a lot of mangling and would be a lot slower than a full hardware implementation.

You may well, with custom software, get a DirectX 10 card to look as good as a DirectX 11 card and to do almost everything in a similar fashion, but all the native features or extra precision that DirectX 11 mandates would be missing and in general I think the software/emulation layer would be quite a bit slower than a full hardware approach.

  • The card wouldn't be doing the DX11 emulation, though. Any emulation would have to be general purpose programming, which means software, which means it'd run on the CPU, not the GPU. That's why it'd be slower--because the CPU is general purpose and therefore has to be optimized to do general purpose code execution. The functions of the GPU are optimized for graphics work. If the graphics work can't go on the hardware that is particularly optimized for it, then it will run slower on the general purpose processor. Jul 29, 2011 at 17:57
  • @Mokubai Thank you! now these are the type of answers I was looking for. Your argument shines light on aspects that I wasn't considering prior. Jul 29, 2011 at 18:14

After (and including) DirectX 10, Microsoft decided to just scrap the whole "compatibility bits" thing and just set a minimum DirectX level in the card. If your card is DX11 compatible, it supports all DX11 features. This makes it easier for developers (you don't have to check for a feature's availability before using it), and ensures a more consistent experience.

From a conceptual standpoint, what would anybody that views this thread suggest would be required for hardware modifications to transition from a DX10 to DX11? The GPU and stream processors all have had the same or very similar instruction sets.

Actually, that's not the case. Again, note what I said above - for a card to be hardware DX11 compatible, it must support all DX11 features. In the past, changes between DirectX versions have changed aspects of the GPU hardware itself, including pipeline architecture, the shader model (and supported languages/shaders), floating point precision, and instruction set expansions.

While not all of these have been changed from the DX10 to DX11 transition, there are additional features that have been implemented on both the hardware and software side (most of these changes are closed-source, so I cannot comment on specific changes).

That being said, you can run DirectX 11 software using DirectX 9/10 hardware, albeit without the additions to DirectX 11 (namely tessellation, multithreaded rendering, and compute shaders), and assuming the developer has properly implemented the application. I don't see this ever being a problem, since it literally costs nothing to implement - which is why I mentioned the "compatibility bits" thing before.

If you want to add the new features in the latest and greatest DX level, you query the hardware to see if it supports the latest DX level. If so, enable them, otherwise fall back to the next DX level (as opposed to checking the availability of specific hardware features). This is why applications compiled using the Direct3D 11 libraries will be able to run on Direct3D 9/10 compatible hardware.


"Updating the firmware" is not the solution to every problem. The DirectX requirements for each version will involve hardware as well as firmware solutions.

  • I realize this, and it is not like I am a naive person asking a 'stupid question'... I am a computer programmer with a degree, working in-industry for the past two years. The way I am looking at it is that ALL DirectX is, is a fancy high powered abstraction layer the optimizes routines and procedures to control Graphics (among other things) Jul 29, 2011 at 15:16
  • So what hardware kind of hardware solutions do you suggest a new version would need?? When it boils down to it the GPU has only so many instruction sets that it can perform on digital numbers... It is just how it handles these instructions that varies (the firmware) Jul 29, 2011 at 16:15

It is because when a graphics card is made, the GPU is only designed to operate within the DirectX standard that you see it certified for. Usually DirectX is backwards compatible with previous versions, so all that has to be done is to increase precision here and there for some mathematical calculations. But with new DX versions there are also sometimes new features introduced (like DX11 added tessellation) that require new hardware support. The actual internals of a graphics card aren't programmable (aside from the shaders, which again, are specified in the DX spec). Firmware is a type of software that resides on some internal memory that a general purpose logic chip would run. The power of a GPU is that it is actually specifically designed not to be general purpose, but to do specific tasks very efficiently. These specific tasks are precisely the tasks that the DX spec outlines. So, when a new DX version comes out, new hardware updates need to be made, which require a new GPU. Yes, board makers can add faster memory and the like, but once the GPU is fabricated, the logic inside it cannot be changed.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.