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

Aktuelle Zeit: Di Jul 29, 2025 16:31

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



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Schleifen in GLSLang?
BeitragVerfasst: Do Feb 10, 2005 16:01 
Offline
DGL Member

Registriert: Di Sep 30, 2003 22:22
Beiträge: 78
Wohnort: irgendwo in den Korridoren der Von Braun
Bei compilierung eines Fragment Shaders bekomme ich die Fehlermeldung error C5011: profile does not support "while" statements - selber Fehler wenn ich for-Schleifen benutze. Ich habe hier im Forum ein Topic gefunden das gut 1 Jahr alt ist, in dem erwähnt wird das Schleifen noch nicht unterstützt werden und noch ein anderes GLSLang Tutorial, welches darauf hinweist das Schleifen nicht auf jedem System verfügbar sind. Ist diese Information immer noch aktuell oder liegt das Problem schlicht an einer veralteten Grafikkarte/Treiber (habe gestern erst den nVidia 66.94 Treiber für die Geforce FX 5600 installiert)?

Wenn ja, was für Workarounds könnt ihr empfehlen? Endlos-Schleifen durch goto/jump sind in GLSLang laut Spezifikation ja nicht möglich und bevor ich seitenweise if/else Konstrukte schreibe wollte ich mich erst mal erkundigen ob es sinnvollere Alternativen gibt? Die Schleife komplett von der CPU durchführen zu lassen und den Wert in den Fragment Shader zu übergeben betrachte ich nicht als Option, da das den Sinn dieses GPU-tests verwerfen würde...

-Silk

_________________
"Look at you, Hacker. A pathetic creature of meat and bone, panting and sweating as you run through my corridors. How can you challenge a perfect, immortal machine?" - Shodan


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 10, 2005 16:11 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
GeForce FX = Shader Modell 2.0. Und SM2.0-Hardware unterstützt im Fragmentshader keine "Branch-Controll", also alles was mit Schleifen und If-Abfragen zu tun hat. Also gibts auf solcher Hardware entweder Fehlermeldung (NVidia) oder (ATI) die Schleifen werden entrollt, was natürlich nur solange gut geht wie die entrollten Schleifen als kompletter Quellcode noch in die Shaderlänge der Grafikkarte passen. Auf SM2.0-Hardware sollte man also ganz auf Schleifen verzichten, oder diese bereits von Hand "entrollen".

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 10, 2005 16:25 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Bei ShaderModell 3 gehn dann wohl Schleifen oder?

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 10, 2005 16:48 
Offline
DGL Member

Registriert: Di Sep 30, 2003 22:22
Beiträge: 78
Wohnort: irgendwo in den Korridoren der Von Braun
Danke, daß Du das klargestellt hast! War kurz vorm verzweifeln, weil der Shader eigentlich recht kurz ist und ich den Fehler beim besten Willen nicht finden konnte. Die If-Abfrage funktioniert übrigens einwandfrei, falls jemand also PS 2.0 kompatible Shader schreiben will darf er die ruhig benutzen. Ich werde mich mal daran machen die Schleife umzuschreiben :?

Gibt es denn auf PS 3.0 Karten immer noch solche Fallgruben, oder sind damit nun alle GLSLang Befehle verfügbar?

-Silk

_________________
"Look at you, Hacker. A pathetic creature of meat and bone, panting and sweating as you run through my corridors. How can you challenge a perfect, immortal machine?" - Shodan


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 10, 2005 17:10 
Offline
DGL Member

Registriert: Do Apr 08, 2004 16:55
Beiträge: 516
Ob schleifen Funktioniert hängt doch soweit ich weiss vom Treiber ab??

_________________
Shareholder und Leitender Entwickler bei Pipedream-Games.

Zitat: Siehst du diesen Park da unten? Jeden Tag lernen sich darin Menschen kennen und verlassen einander. Und du hast dein ganzes Leben Zeit darin zu gehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 04, 2005 23:02 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Habe es jetzt mal ausprobiert. Die Geforce6 Karten unterstützen sogar while Schleifen im Fragment Shader.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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.009s | 14 Queries | GZIP : On ]