11

Shader Model 2.0 の HLSL シェーダーで次の for ループをコンパイルすると、エラー X3511 が発生します。

for (int x = -5; x <= 5; x++)
{
    for (int y = -5; y <= 5; y++)
    {
            ...

エラーは次のように表示されます: ループをアンロールできません、ループがタイムリーに終了しないようです (5 回の繰り返し)、[unroll(n)] 属性を使用して正確に高い数値を強制します。

このエラー メッセージは認識していますが、ここでは for ステートメントの条件部分に変数を使用していません。ハードコーディングされた x <= 5 条件です。ここで何が問題なのですか?

前もって感謝します!

4

1 に答える 1

12

これを試して:

[unroll(121)] for (int i=0; i<121; i++)
{
    int x = i / (int)11 - 5;
    int y = i % (int)11 - 5;
}
于 2012-09-04T13:43:04.343 に答える