DGL
https://delphigl.com/forum/

Shader kompiliert nicht ohne Fehlermeldung
https://delphigl.com/forum/viewtopic.php?f=20&t=9166
Seite 1 von 1

Autor:  sharkman [ Mi Apr 14, 2010 18:53 ]
Betreff des Beitrags:  Shader kompiliert nicht ohne Fehlermeldung

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

Autor:  Lord Horazont [ Mi Apr 14, 2010 19:05 ]
Betreff des Beitrags:  Re: Shader kompiliert nicht ohne Fehlermeldung

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 ;)

Autor:  Aya [ Mi Apr 14, 2010 19:17 ]
Betreff des Beitrags:  Re: Shader kompiliert nicht ohne Fehlermeldung

Ö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.

Autor:  sharkman [ Do Apr 15, 2010 18:30 ]
Betreff des Beitrags:  Re: Shader kompiliert nicht ohne Fehlermeldung

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).

Autor:  Sellmann [ Fr Apr 16, 2010 08:30 ]
Betreff des Beitrags:  Re: Shader kompiliert nicht ohne Fehlermeldung

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?

Autor:  Coolcat [ Fr Apr 16, 2010 09:03 ]
Betreff des Beitrags:  Re: Shader kompiliert nicht ohne Fehlermeldung

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.

Autor:  Sascha Willems [ Fr Apr 16, 2010 10:01 ]
Betreff des Beitrags:  Re: Shader kompiliert nicht ohne Fehlermeldung

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...

Autor:  k-bal [ Fr Apr 16, 2010 11:15 ]
Betreff des Beitrags:  Re: Shader kompiliert nicht ohne Fehlermeldung

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 ;)

Autor:  sharkman [ Sa Apr 17, 2010 18:14 ]
Betreff des Beitrags:  Re: Shader kompiliert nicht ohne Fehlermeldung

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?

Autor:  Sascha Willems [ Sa Apr 17, 2010 18:16 ]
Betreff des Beitrags:  Re: Shader kompiliert nicht ohne Fehlermeldung

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.

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/