none
DirectX10のps_4_0の仕様に関して質問です RRS feed

  • 質問

  • 現在WindowsVista(無印)-64Bit上で、DirectX(Mar 2008)を使用して開発しております。

    HLSLで記述したps_4_0プロファイルのコードで仕様による制限か、コンパイラの問題かが

    判断しかねる問題があり質問させていただきました。

     

    問題になったのは、Texture2DArrayをSampleCmp/SampleCmpLevelZeroでサンプリングするコードを

    記述したところ、コンパイルが通りませんでした、具体的には下記のようなエラーが出ます。

     

    error X4532: cannot map expression to ps_4_0 instruction set

     

    このエラーを鑑みると仕様による制限のように感じますが、SDKに付属のドキュメントのSampleCmpの項を

    読んだ限りではそのような制限があるようには思えませんでした。

    また、SamplerStateを変更してSampleを用いてサンプリングするコードに変更したところコンパイルが通りました。

    そのほかにも、コンパイル時にターゲットプロファイルをps_4_1に変更したところコンパイルが通りました。

    このエラーはDX10.0の仕様によるものかHLSLコンパイラの不具合によるものか判断しかねたので

    質問させていただきました。

     

    下記がHLSLコードの該当部分です。

     

    Code Snippet

    shared SamplerComparisonState gShadowMapSampler : register(s12);

    shared Texture2DArray<float> gShadowMapTextures : register(t127);

    .

    .

    .

    {
       return gShadowMapTextures.SampleCmpLevelZero(gShadowMapSampler, float3(pos.xy, 0.0f), pos.z);
    }

     

     

     

    本題とは離れますが、DirectX関連の質問をするフォーラムはこちらでよろしかったでしょうか。

    DirectXのフォーラムが見当たらなかったので、XNAのフォーラムと悩みましたがこちらに質問させていただきました。

     

    2008年5月15日 7:13