Seite 1 von 1

[gelöst] HLSL "force to unroll" problem....

Verfasst: 27.04.2009, 17:04
von corvex
... huuuh... hab nen seltsames problem.... finde den fehler irgendwie nich...

folgende warnungen kommen

Code: Alles auswählen

warning X3557: Loop only executes for 0 iteration(s), forcing loop to unroll
error X3511: Unable to unroll loop, loop does not appear to terminate in a timely manner (1024 iterations)
error X3511: Forced to unroll loop, but unrolling failed.
beim compilieren folgenden quellcodes....

Code: Alles auswählen

const int2 boxSize = (1, 1);

float4 
psBoxBlur(const vsInOut psIn) : COLOR
{
    int x = -boxSize.x;
    int y = -boxSize.y;
    float invTexSizeX = 1 / displayRes.x;
    float invTexSizeY = 1 / displayRes.y;
    
    float4 sum = 0;
    for(; x <= boxSize.x; x++)
    {
        for(; y <= boxSize.y; y++)
        {
            float2 boxUv = psIn.uv0 + float2(x * invTexSizeX, y * invTexSizeY);
            sum += tex2D(sourceSampler, boxUv);
        }
    }
    sum /= (boxSize.x * 2 + 1) * (boxSize.y * 2 + 1);
    return sum;
} 
mit ps und vs profile 3_0....

jemand ne ahnung warum der mir die 2 kleinen schleifen nicht ausklappen kann.... wenner schon der meinung ist er wolle das unbedingt machen???!

gruß
cX

Re: HLSL "force to unroll" problem....

Verfasst: 27.04.2009, 17:06
von corvex
achja.. auch mit klassischen schleifen a la

Code: Alles auswählen

......
for(x = -boxSize.x; x <= boxSize.x; x++)
......
mag ers nich..

Re: HLSL "force to unroll" problem....

Verfasst: 27.04.2009, 17:11
von CodingCat
Ich denke er meckert deshalb, weil du boxSize mit dem Modifier "const" nach wie vor anwendungsseitig verändern kannst. Versuch es mal mit

Code: Alles auswählen

static const int2 boxSize = (1, 1);
Sollte es gar nicht deine Absicht sein, den Loop zu entrollen, dann liegt der Fehler vermutlich darin, dass du y für die Schleifendurchgänge x = 0; 1 nicht zurücksetzt und so in diesen beiden Durchgängen 0 Iterationen verursachst.

Re: HLSL "force to unroll" problem....

Verfasst: 27.04.2009, 17:19
von corvex
super.. danke für die schnelle antwort.. ich glaube es ist einfach langsam zeit feierabend zu machen ;)

thx..