Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Woher kommt die SIGSEV? Ich vermute mal aus dem ICD deines OpenGL-Treibers? Vermutlich erwartet der Treiber hier einen Wert > 0 und validiert auch nicht. Aber man ruft glBufferData ja auch normalerweise nicht mit size = 0 auf.
Gibt es eine Meldung über die Debugging-Funktionen von OpenGL?
Das ist ja auch kein OpenGL Fehler, sondern ein Fehler der OpenGL Implementation deines IHVs. Wenn der Code im Treiber an der Stelle keine 0 erwartet, dann knallts im Treiber selbst (bzw. der OpenGL ICD) und das sorgt dann für ein SIGSEV (bzw. AV).
Die Debugfunktionen von OpenGL greifen evtl. schon beim Übergeben der Parameter an die Funktion und spucken dann evtl. eine Warnung aus.
In Vulkan gibt es für sowas z.B. einen Validierungslayer für alle Parameter, der dann in einem solchen Fall darauf hinweisen würde.
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2621 Wohnort: Berlin
Programmiersprache: Go, C/C++
Es ist definitiv ein Fehler in der Treiber Implementierung, denn die Specs sagen explizit, dass nur ein negativer Wert ein falscher Wert für "size" ist und 0 ein valider Wert ist. Sowas kenne ich von NV Treiber, da die in der Regel über die Spec gucken und dann einfach mal zur Seite packen und was machen was in die Richtung geht aber mit den Specs hat es dann nicht mehr viel zu tun. Wenn du OpenGL3 Debug API anschaltest, solltest du eine Warnung vom Treiber bekommen.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Mitglieder in diesem Forum: 0 Mitglieder und 2 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.