Mehr über den Shader
Hab mir gerade angesehen, was der FX Shader Compiler produziert, wenn ich den “kaputten” Shader compiliere, und was sich ändert wenn ich ein paar Zeilen auskommentiere, sodass er wieder läuft…. und ein paar weitere Schlüsse daraus gezogen.
Hier ist ein ziemlich minimaler Pixelshader, der meine Maschine abschiesst:
PixelShader = asm
{
ps_3_0
defi i0, 100,0,0,0
def c0, 0.01, 0.5, 0, 0
mov r0, c0.zzzz
rep i0
add r0.x, r0.x, c0.x
if_ge r0.x, c0.y
add r0.y, r0.y, c0.x
break
endif
endrep
mov oC0, r0
};
PixelShader = asm
{
ps_3_0
defi i0, 100,0,0,0
def c0, 0.01, 0.5, 0, 0
mov r0, c0.zzzz
rep i0
add r0.x, r0.x, c0.x
if_ge r0.x, c0.y
add r0.y, r0.y, c0.x
endif
endrep
mov oC0, r0
};
Wie man sieht, ist der einzige Unterschied das break statement innerhalb des if-Konstrukts… und dieses führt zu dem Crash.
Noch keine Kommentare.