locked
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/

    Friday, August 24, 2012 9:50 PM
    Moderator

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.aspx

    I hope this helps,

    James


    Windows Media SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/

    Saturday, August 18, 2012 12:12 AM
    Moderator
  • 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 PM
    Moderator
  • 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/

    Friday, August 24, 2012 9:50 PM
    Moderator
  • 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