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

Aktuelle Zeit: Mi Jul 16, 2025 17:20

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



Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mi Apr 14, 2010 18:53 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 11, 2009 08:02
Beiträge: 532
Programmiersprache: pascal (Delphi 7)
Hai

Ich hab ein neues Problem:
Ich hab einen eigenen Shader geschrieben. Der wird zwar richtig geladen, aber irgendwo ist ein Fehler. Nur gibt OpenGL keine brauchbare Fehlermeldung

nach
Code:
  glCompileShaderARB(FVert);
  glCompileShaderARB(FFrag);

  ShowMessage(glSlang_GetInfoLog(FProgram)); 

ist die Meldung = ''

nach
Code:
  glAttachObjectARB(FProgram, FVert);
  glAttachObjectARB(FProgram, FFrag);

  glDeleteObjectARB(FVert);
  glDeleteObjectARB(FFrag);

  glLinkProgramARB(FProgram);

  ShowMessage(glSlang_GetInfoLog(FProgram));

ist die Meldung = 'Fragment Shader(s) were not successfully compiled before glLinkProgram was called. Link failed'

glSlang_GetInfoLog stammt aus dem Tutorial, sollte also funktionieren.

Was mach ich falsch?

danke für eure Antworten


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Apr 14, 2010 19:05 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Haiho

Code:
  ShowMessage(glSlang_GetInfoLog(FProgram)); 

Probier mal, ob du mehr Ergebnisse bekommst, wenn du FFrag abfragst anstatt FProgram.

greetings
ps:
sharkman hat geschrieben:
Ich hab ein neues Problem:
- genau, deswegen das nächste mal bitte auch einen neuen Thread ;)

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Apr 14, 2010 19:17 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Öh... du löscht die Shader bevor du sie linkst... kann mich jetzt täuschen, aber ich würde tippen das hier das Problem liegt.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Apr 15, 2010 18:30 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 11, 2009 08:02
Beiträge: 532
Programmiersprache: pascal (Delphi 7)
Ja, mit FFrag gehts. (der Shader geht nach wie vor nicht, aber ich krieg Fehlermeldungen. Und davon jede Menge).
Danke jedenfalls. Was das mit dem erst löschen und dann linken angeht, ein anderer Shader ist bei mir schon mal so gelaufen (ok, das heißt nicht unbedingt, dass es nicht zu Problemen führen kann).


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Apr 16, 2010 08:30 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jan 04, 2008 21:29
Beiträge: 419
Wohnort: Lübeck
Versuch mal folgende reihenfolge:

1. FFrag und FVert laden (mit Stringlist)
2. FFrag und FVert compilieren (Erst dann werden für FFrag und FVert Fehlermeldungen generiert)
3. FFrag und FVert attachen an FProgram
4. Linken von FProgram (Erst jetzt werden Fehlermeldungen für FProgram erzeugt)
5. ShowMessage(glSlang_GetInfoLog(*));
6. Delete FFrag und FVert

Für * kannste alles einsetzen (FFrag, FVert, oder FProgram) und bekommst die jeweiligen Meldungen, die aufgetreten sind.

Zur Not das Glsl1 Tutorial komplett lesen und nicht einfach nur die GetInfoLog Methode c&p. Nebenbei macht es ja auch kein Sinn, was du da programmiert hast, denn wie soll FProgram Fehler zurückgeben, wenn garnichts gelinkt wurde, bzw. wie soll man was an FProgram linken, wenn die Shader vorher nicht compiliert wurden. Weiterhin, wie soll man etwas linken, was kurz vorher gelöscht wurde? Hast du das Tutorial vielleicht von unten angefangen zu lesen?

_________________
Klar Soweit?


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Apr 16, 2010 09:03 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
Weiterhin, wie soll man etwas linken, was kurz vorher gelöscht wurde? Hast du das Tutorial vielleicht von unten angefangen zu lesen?

Im Tutorial steht das genauso drin, erst löschen dann linken. ;)
Ich hab das noch nie so probiert, aber ich hab das hier im Forum glaube ich schon ein paar mal gesehen...müsste also funktionieren. Wahrscheinlich gibt es da intern einen Referenzzähler.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Apr 16, 2010 10:01 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Lad die Shader mal in meinen tinyGLSLANGeditor und schau mal was der dir sagt. Hab ich hier schon einigen Leuten empfohlen, weil man damit ganz schnell mal testen kann ob das Problem vom Shader oder aus dem eigenen Programm stammt.

Coolcat hat geschrieben:
Ich hab das noch nie so probiert, aber ich hab das hier im Forum glaube ich schon ein paar mal gesehen...müsste also funktionieren. Wahrscheinlich gibt es da intern einen Referenzzähler.

Genauso ist es, von daher werden die auch erst gelöscht wenn sie nirgendwo mehr verwendet werden.

P.S. : Ich sollte das Tut mal auf den neusten Stand bringen und den ARB-Kram durch die Kernfunktionen ersetzen...

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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Apr 16, 2010 11:15 
Offline
DGL Member

Registriert: Do Jan 07, 2010 21:21
Beiträge: 19
Sascha Willems hat geschrieben:
Lad die Shader mal in meinen tinyGLSLANGeditor und schau mal was der dir sagt. Hab ich hier schon einigen Leuten empfohlen, weil man damit ganz schnell mal testen kann ob das Problem vom Shader oder aus dem eigenen Programm stammt.


Sorry für OT, aber das ist echt ein sehr schickes Programm. Geometryshader support wäre nett ;)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Apr 17, 2010 18:14 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 11, 2009 08:02
Beiträge: 532
Programmiersprache: pascal (Delphi 7)
Zitat:
Lad die Shader mal in meinen tinyGLSLANGeditor und schau mal was der dir sagt.

Der sagt:
Zitat:
glslValidate.exe not found in "C:\Programme\3Dlabs\GLSL Validate", please specify the correct path in config.txt!
If you don't do this or haven't installed glslValidate, then the shaders can't be validated...

Wo gibts das glslValidate?


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Apr 17, 2010 18:16 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Probier mal über die Treiber zu validieren, das sind die Buttons rechts davon. Den Vaildator gibts noch hier, aber da es 3DLabs nicht mehr gibt ist dass evtl. ne uralte Version.

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


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 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.010s | 16 Queries | GZIP : On ]