Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: So Jul 20, 2025 00:19

Foren-Übersicht » Programmierung » Shader
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Di Jul 03, 2012 09:40 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

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 :(

Danke~,
Aya


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Jul 03, 2012 16:39 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
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 ;)

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Foren-Übersicht » Programmierung » Shader


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]