XNA Creators Club Online
Page 1 of 1 (8 items)
Sort Posts: Previous Next

What is feature level?

Last post 6/23/2009 5:53 AM by Nirav Shah. 7 replies.
  • 6/16/2009 5:51 AM

    What is feature level?

    Hi,

    Please enlighten me regarding following questions.

    What is the interpretation for Feature Level?

    Does it mean the subset of functionalities available with that level?

    Given that I am using DirectX 11, I can create different devices, eg. D3D11Device, D3D10Device. I can have different type of the device, eg. Hardware, Reference, WARP. And I can have different feature level, eg. Feature_Level_10_0, Feature_Level_10_1, Feature_Level_11_0. What is the meaning of using these different combinations? I mean, how capabilities of devices will differ when i create devices using combinations of options I mentioned?
    eg. D3D11Device, Hardware, Feature_Level_10_0
    D3D11Device, Hardware, Feature_Level_11_0, etc.

    Thanks & Regards,
    Nirav Shah.

  • 6/16/2009 6:57 AM In reply to

    Re: What is feature level?

    I'm not an expert in DirectX (I'm more XNA oriented), but I'll try to answer your questions from what I know.


    Nirav Shah:
    What is the interpretation for Feature Level?
    Does it mean the subset of functionalities available with that level?

    If you remember, in pre-DirectX 10 versions there was the concept of capabilities. This means that two DirectX-9 compliant cards might have had different features, and all of these were identifiable by checking the caps of the device. Since DirectX 10, this model has changed, and replaced with the concept of feature level.
    If a card declared that it has Feature_Level_10_0, then it has all the functionalities specified by DX10, if it has Feature_Level_11_0, it has all the functionalities specified by DX11, and so on.

    Nirav Shah:
    Hardware, Reference, WARP

    I don't know what WARP means, but for the other two: Hardware means that the processing will happen on the hardware, if a hardware that suppports all features is available. Reference means that processing will be emulated in software by the driver. So even if you don't have a DirectX11 video card, you will be able to use DirectX11 features (though very slow), to see if your code works correctly.

    Nirav Shah:
    D3D11Device, Hardware, Feature_Level_10_0

    I would think this will create a D3D11Device, which will only expose the feature level of a Direct3D 10 video card, in order to simplify backwards compatibility of your code with older hardware. So even though you use the D3D11 API, you'll only be able to use D3D10 features, and your code will work without any problems when running on an older card.

    Nirav Shah:
    D3D11Device, Hardware, Feature_Level_11_0

    This will probably create a D3D11Device, which will expose the full features of Direct3D11, so you can take advantage of all new features.
  • 6/16/2009 7:26 AM In reply to

    Re: What is feature level?

    Thanks for this clarification.

    Now I am confused with details given in Tech Preview Documentation of November 2008 SDK. There is a table showing description about each feature level.

    Feature Level Description
    11.0 Supports the Direct3D 10.0 feature set, including shader model 5.
    10.1 Supports the Direct3D 10.1 feature set, including shader model 4.
    10.0 Supports the Direct3D 10.0 feature set, including shader model 4.
    9.3 Supports the Direct3D 9.2 feature set, including shader model 3.
    9.2 Supports the Direct3D 9.2 feature set, including shader model 2.
    9.1 Supports the Direct3D 9.1 feature set, including shader model 2.

    Both, feature level 10.0 and 11.0 say that it supports 10.0 feature set. Is there any typo over here?? Because if not, it would imply that feature level 10.0 and 11.0 will have same functionality, which is not true. Enhancement in Shader Model only doesnot change the functionalities provided by Direct3D. Am I right?

    Also, thinking through the concept of Feature Level, I am more and more confused over justification for it. What is real use of providing feature level? If I want functionalities of DX10, I will create a D3D10 device. If I want functionalities of DX11, I will create D3D11 Device. What can be the rationale behind creating a D3D11 device with feature level 10_0??

    Thanks & Regards,
    Nirav Shah.
  • 6/16/2009 7:43 AM In reply to

    Re: What is feature level?

    it's probably a typo

    Nirav Shah:
    What can be the rationale behind creating a D3D11 device with feature level 10_0??

    The Direct3D 11 device and API has a better support for multi-threaded rendering. As far as I know (see this and this), this happens at the API and driver level, not at the hardware level. So with a Direct3D11 device, you would be able to take advantage of this while running on older D3D10 hardware, and still make sure your code only uses feature level 10_0 with regard to the actual hardware capabilities.

    So not all D3D11 new stuff happens on the actual hardware. Some of it happens in the API and (an updated) driver, and these are why you'd want to use a D3D11Device with a 10_0 feature set.


  • 6/17/2009 7:16 AM In reply to

    Re: What is feature level?

    Hmm.. Now I got it. Thanks for the clarification.. :)

    Regards,
    Nirav Shah.
  • 6/19/2009 8:56 AM In reply to

    Re: What is feature level?

    Is there any documentation availabe which explicitly states what features are included or excluded from a perticular feature level? Actually, I am new to DirectX 11, and as I was supposed to work on DirectX 11 only, I had taken a very brief overview of DirectX 9 and 10. So, what I am not aware of, as of now is, what all features are available in each of these feature levels. Are they strict super sets of the once preceding it?

    Thanks & Regards,
    Nirav.
  • 6/19/2009 11:00 AM In reply to

    Re: What is feature level?

    Nirav Shah:
    Is there any documentation availabe which explicitly states what features are included or excluded from a perticular feature level?

    Try searching through the DirectX SDK documentation

    Nirav Shah:
    Are they strict super sets of the once preceding it?

    Yes.
  • 6/23/2009 5:53 AM In reply to

    Re: What is feature level?

    Catalin Zima:
    Try searching through the DirectX SDK documentation
    It doesnot say anything more than the table I have already given in this thread.

    Regards,
    Nirav Shah.
Page 1 of 1 (8 items) Previous Next