Beim Kompilieren der folgenden for-Schleife in meinem HLSL-Shader unter Shader Model 2.0, erhalte ich Fehler X3511.HLSL für Schleife mit Shader Model 2.0: Fehler X3511 kann Schleife nicht ausrollen
for (int x = -5; x <= 5; x++)
{
for (int y = -5; y <= 5; y++)
{
...
Der Fehler lautet wie folgt: Kann nicht Schleife entrollen, loop erscheint nicht in angemessener Zeit (5 Iterationen), mit dem [unroll (n)] beenden Attribute eine exakten höhere Anzahl erzwingen.
Ich bin mir dieser Fehlermeldung bewusst, aber ich verwende hier keine Variable für den bedingten Teil der for-Anweisung - es ist eine hardcoded x < = 5 Bedingung. Was ist hier falsch?
Vielen Dank im Voraus!
Es kompiliert, wenn ich die zweite for-Schleife zu entfernen. Also: Keine verschachtelten Schleifen in HLSL?!? – barnacleboy
Ich bin mir nicht sicher, ob es mit verschachtelten Schleifen funktioniert, aber haben Sie versucht, die Anzahl der Iterationen mit dem Attribut zu erhöhen? Als eine wilde Vermutung würde vielleicht '[aufrollen (11)]' auf beiden Schleifen funktionieren? –
Leider kann ich das Unrollen nicht verwenden, wenn ich unter Shader Model 2.0 kompiliere. Ich arbeite an einer Bildbearbeitungsanwendung, also möchte ich sicherstellen, dass die Anwendung zumindest unter Windows XP laufen kann. – barnacleboy