locked
App Certification - Direct3D feature levels - DXGI_FORMAT_R32_FLOAT

    Question

  • Hi,

    My application is restricted to D3D_FEATURE_LEVEL_9_1.
    A first shader renders a depth map (for a deferred lighting renderer) on a texture 2D using DXGI_FORMAT_R32_FLOAT.
    Then I sample this texture with an other pixel shader.
    My application runs fine in both Debug and Release mode and fully achieves success with Windows App Certification Kit.

    However in Debug mode I have the following output in Visual Studio :
    D3D11 ERROR: ID3D11DeviceContext::DrawIndexed: The Shader Resource View in slot 0 of the Pixel Shader unit is using the Format (R32_FLOAT). This format does not support 'Sample', 'SampleLevel', 'SampleBias' or 'SampleGrad', at least one of which may being used on the Resource by the shader. This mismatch is invalid if the shader actually uses the view (e.g. it is not skipped due to shader code branching). [ EXECUTION ERROR #371: DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_UNSUPPORTED]

    I have to raise to D3D_FEATURE_LEVEL_10_0 to remove this error, and this seems almost ok with the restrictions found on MSDN :
    Texture2D resources: DXGI_FORMAT_R32_FLOAT -> 9_2 and higher (no error raised at D3D_FEATURE_LEVEL_9_1 ?)
    Render Targets : DXGI_FORMAT_R32_FLOAT -> 9_2 and higher (no error raised at D3D_FEATURE_LEVEL_9_1 ?)
    Direct3D 10 hardware optionally supports these formats for shader samples with any filter type : DXGI_FORMAT_R32_FLOAT (Ok)

    And now I don't understand : I can puslish this app on Windows Store while MSDN says it requires D3D_FEATURE_LEVEL_10_0 ?
    I'm missing something ? Any help ?

    Thanks


    Monday, October 22, 2012 3:40 PM

Answers

  • When you upload your app you can flag it as requiring D3D feature level 10 on the dashboard. It will be available only on systems which meet that requirement.

    Alternately you can write the app to limit itself to lower level features by default and upgrade to better graphics when available. See          Developing for different Direct3D feature levels for a discussion on this.

    --Rob

    • Marked as answer by Léna Oliveros Monday, October 22, 2012 10:24 PM
    Monday, October 22, 2012 7:19 PM
    Moderator

All replies

  • When you upload your app you can flag it as requiring D3D feature level 10 on the dashboard. It will be available only on systems which meet that requirement.

    Alternately you can write the app to limit itself to lower level features by default and upgrade to better graphics when available. See          Developing for different Direct3D feature levels for a discussion on this.

    --Rob

    • Marked as answer by Léna Oliveros Monday, October 22, 2012 10:24 PM
    Monday, October 22, 2012 7:19 PM
    Moderator
  • Yes, I missed that point :

    "Apps that only publish x86 and/or x64 packages may specify a higher minimum feature level on the Windows Store portal "Selling Details" page. This will restrict availability of your app only to systems that support the feature level you have specified. Note that when you require a higher minimum feature level, your app must still launch and run at feature level 9_1 to display a message describing which feature level is required."

    Thanks a lot Rob.

    Monday, October 22, 2012 10:24 PM