Answered by:
What is "Feature Level Upgrade" ?

Question
-
On the DXCPL.EXE , what's the meaning of "Disable Feature Level Upgrade" ?
Thanks!
C++ DX11
Thursday, August 16, 2012 11:40 AM
Answers
-
Here ya go:
"Feature level upgrade means that the D3D runtime will use the highest version of the device driver available. For example if the app is only requesting Feature Level 10_1 but the underlying hardware supports Feature Level 11_1 then the runtime will use the DDI (Device Driver Interface) for 11_1. This is so libraries like D2D Image Effects can take advantage of the Feature Level 11_1 capabilities when they are available. Feature Level Upgrade does not cross the Feature Level 9 / Feature Level 10 boundary. Disabling Feature Level Upgrade ensures that no additional functionality will be available. This is particularly useful when validating that your app will run on different HW configurations."
-James
Windows Media SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/
- Marked as answer by James Dailey - MSFTMicrosoft employee, Moderator Friday, August 24, 2012 9:50 PM
Friday, August 24, 2012 9:50 PMModerator
All replies
-
Hello,
Does this article answer your question?
Developing for different Direct3D feature levels (DirectX and C++)
http://msdn.microsoft.com/en-us/library/windows/apps/Hh994923.aspxI hope this helps,
James
Windows Media SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/
- Proposed as answer by James Dailey - MSFTMicrosoft employee, Moderator Saturday, August 18, 2012 12:12 AM
Saturday, August 18, 2012 12:12 AMModerator -
Thanks for replying.
I didn't find any document about this option.
It relates to a crash issue here http://social.msdn.microsoft.com/Forums/en-US/wingameswithdirectx/thread/4d6611bd-eafc-4ac7-922a-db0b59add21e
So I want to know what does it mean.
C++ DX11
Saturday, August 18, 2012 2:35 AM -
Hello,
I have looked through the source code and I honestly can't tell exactly what this setting does. This setting is not documented externally. I am checking with the architects to see if they can offer any additional information.
Thanks,
James
Windows Media SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/
Monday, August 20, 2012 9:24 PMModerator -
Here ya go:
"Feature level upgrade means that the D3D runtime will use the highest version of the device driver available. For example if the app is only requesting Feature Level 10_1 but the underlying hardware supports Feature Level 11_1 then the runtime will use the DDI (Device Driver Interface) for 11_1. This is so libraries like D2D Image Effects can take advantage of the Feature Level 11_1 capabilities when they are available. Feature Level Upgrade does not cross the Feature Level 9 / Feature Level 10 boundary. Disabling Feature Level Upgrade ensures that no additional functionality will be available. This is particularly useful when validating that your app will run on different HW configurations."
-James
Windows Media SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/
- Marked as answer by James Dailey - MSFTMicrosoft employee, Moderator Friday, August 24, 2012 9:50 PM
Friday, August 24, 2012 9:50 PMModerator -
Thanks you.
So I should check it to test for dx9 device.
C++ DX11
Saturday, August 25, 2012 12:02 AM -
Typically for Direct3D 11.x you can validate different hardware by restricting the Feature Level's you include in the D3D11CreateDevice call as the pFeatureLevels array. This simulates some levels of hardware difference. This is not exactly the same thing as using different H/W. By combining this with "Feature Level Upgrade" disabled, you also cause the runtime to explictly use older versions of the driver interface to talk to the device. Between these two techniques, it gives you some some approximations to different hardware.
Now, that's not the same thing as actually testing on a varaiety of hardware so you should do that as well.
Saturday, August 25, 2012 4:57 AM