Hallo Community, ich sitze vor meinem Partikelsystem basierend auf Transform Feedback. Doch immer beim Aufruf von glBeginTransformFeedbackNV(); wird der GL-Fehler "invalid operation" erzeugt. Hier der relevante Code:
Code: [...] FPrgmUpdate.Bind; [...] glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 0, FBuffers[FOutBuffer].ID); FPrgmUpdate.TransformVaryingsLoc(4, @FTransformVars[0], // ruft nur glTransformFeedbackVaryingsNV()für das Update-Program auf GL_INTERLEAVED_ATTRIBS); glBeginTransformFeedback(GL_POINTS); // Erzeugt "invalid operation" [...]
Das Programm wird erfolgreich gelinkt, die 4 FTransformVars[] werden mittels glGetVaryingLocationNV() ausgelesen und haben korrekte Werte. Der Quellcode des Geometry-Shaders (der Vertex-Shader reicht einfach nur die Daten weiter):
Code: #version 150 [...] layout(points) in; layout(points, max_vertices = 1) out; out vec4 PosAndSize; // Varyings für Transform Feedback out vec4 VelAndLife; out vec4 Color; out vec4 Data; [...] PosAndSize = ~~~; VelAndLife = ~~~; Color = ~~~; Data = ~~~; EmitVertex();
Ich verstehe nicht was da genau die invalid operation ist, vor allem da ich ein anderes Partikelsystem mit dem gleichen relevantem Code habe, das einwandfrei läuft. Ich würde mich über jede Hilfe freuen...
|