ich habe gestern eines meiner Programme das erste mal auf einer ATI Grafikkarte getestet - lief alles wunderbar bis auf ein Shader, genauer gesagt die pow() funktion.
Auf allen meinen nVidia Karten sieht das Ergebnis korrekt aus, auf der ATI liefert pow() immer 0 (oder nan/inf?) zurück. Nach einem schnellen googlen scheint es wohl so das die pow() funktion auf ATI Karten nicht korrekt funktioniert sobald einer der beiden Parameter negativ ist - ob das bei mir der Fall war, habe ich gestern aber dann nicht mehr durchgerechnet.
Glücklicherweise war es bei mir nur ein pow(x, 2.0) welches ich dann einfach durch x*x ersetzt habe. Damit funktioniert der Shader nun einwandfrei.
Gibt es noch mehr solche Stolpersteine? Also gibt es noch andere bekannte "bugs" auf ATI/nVidia Karten in der Art?
Und, kann man Shader irgendwie debuggen? Ich lasse mir immer die Zwischenschritte als Farbe ausgeben was aber halt nur funktioniert wenn der Wert zwischen 0 und 1 liegt.. und immer alles selber auf dem Papier nach zu rechnen für die aktuellen uniform variablen ist etwas anstrengend
Glücklicherweise war es bei mir nur ein pow(x, 2.0) welches ich dann einfach durch x*x ersetzt habe.
In so einem einfachen Fall (hoch 2 oder 3) sollte man das sowieso tun. Die pow-Funktion ist darauf ausgelegt das du sie für Exponenten wie "1.465366" benutzt. Das da ein x*x schneller ist sollte klar sein
Zitat:
Gibt es noch mehr solche Stolpersteine? Also gibt es noch andere bekannte "bugs" auf ATI/nVidia Karten in der Art?
Gleich Haufenweise. Wann immer möglich sollte man immer parallel auf ATI und NVIDIA testen, damit man solche Fehler wenigstens schnell merkt. Richtig spannend wird es übrigens mit ATI-Treibern unter MacOS, die haben zum Teil haarsträubende Bugs
Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.