Jump to content
  • Advertisement
Sign in to follow this  
MattJack2000

DX11 DX11 and compatibility with "old" graphic cards

This topic is 2619 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello everybody,

I have a question about DX11.
Currently I have written a 3D engine in (managed) DirectX 9.0c.
I plan to migrate to DirectX 11 (using for example SlimDX) but I'm affraid about compatibility, in particular with customers using small graphic cards or intel chipset (Intel 965, etc.)
Today my 3D engine works well and fast even with such old graphic cards / chipset.

In theory, reading MSDN stuff, DirectX 11 is useable even with non-DirectX 11 graphic card, using "Feature level = 9".
Well, sounds great. But now, what about performance?

When I read MSDN articles, I understand that all functionalities that were working with hardware acceleration under DirectX9 will also work with hardware acceleration under DirectX 11.
But I don't verify this at all: For example, with a "[font=Calibri, sans-serif][size=2]Intel® Graphics MediaAccelerator 3150",[/font] the DX SDK sample "Basic HLSL" is runnning great, in HAL, with DirectX 9. When running the same sample compiled with DirectX 11, HAL driver is not available, but only WARP, and as a consequence the sample is running with the CPU, and as a consequence slowly.
I might misunderstand something!

So : Do you think that DirectX 11 is efficient with old, DX9, graphic cards ?

Thanks in advance for your comments !

Share this post


Link to post
Share on other sites
Advertisement
I think you answered your own question:

But I don't verify this at all: For example, with a "Intel® Graphics MediaAccelerator 3150", the DX SDK sample "Basic HLSL" is runnning great, in HAL, with DirectX 9. When running the same sample compiled with DirectX 11, HAL driver is not available[/quote]

Your best bet at maintaining compatibility with these old cards is to leave in the DX9 renderer.

Share this post


Link to post
Share on other sites
The Samples in the DirectX SDK don't specify the feature level 9, they use either 10, 10.1 or 11.

You should try to modify the sample so that it uses feature level 9. You can't simply change the 11 to a 9, you'll also have to modify some of the code, like the shader model of the loaded shaders.
Of course you can't use things like the shader model 4 or 5, or some other D3D10 or 11 features.

But if you use only the features available to D3D9 it should run just as fine as it ran with a D3D9-Card, even though you are using the D3D11 API.

Your best bet at maintaining compatibility with these old cards is to leave in the DX9 renderer.[/quote]

You only need to leave in the D3D9-Renderer when you want compatibility with Windows XP. For everything else you can use the feature-levels.

Share this post


Link to post
Share on other sites

The Samples in the DirectX SDK don't specify the feature level 9, they use either 10, 10.1 or 11.
You should try to modify the sample so that it uses feature level 9.



The sample BasicHLSL11 proposes Feature Level 9_2, 9_3, 10_0, ...
But no 9_0
so => I'll give a try = modify the code so that 9_0 is available, then see what happens.
I will tell you!

Share this post


Link to post
Share on other sites

You only need to leave in the D3D9-Renderer when you want compatibility with Windows XP. For everything else you can use the feature-levels.

The problem that he will run into is that Intel only exposes the lowest feature level (FEATURE_LEVEL_9_1), even if his hardware supports Direct 9.0c when running on XP. So he will run into problems if he uses features (from 9.0c) that aren't available to FEATURE_LEVEL_9_1. A list of limitations of FEATURE_LEVEL_9 can be found here.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!