Registriert: So Feb 11, 2018 19:44 Beiträge: 2
Programmiersprache: C++
Hallo,
ich bin gerade dabei ein Programm zu schreiben, welches einen Baum prozedural mithilfe eines Geometry Shaders und Transform Feedback generiert. Dafür habe ich ein VertexArrayObject, zwei VertexBufferObjects und zwei TransformFeedbackBufferObjects verwendet. Je größer ich dann die Size von der BufferData wähle, desto häufiger tritt folgende Eception auf:
Ausnahmefehler bei 0x05FF1CAE (nvoglv32.dll) in Abgabe Tree.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00901000
Mal wird das gewünschte Ergebnis angezeigt und Mal kommt diese Exception.
Ich kann mir leider nicht erklären woran das liegt. Hier mal ein Codefragment des Programms:
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2622 Wohnort: Berlin
Programmiersprache: Go, C/C++
Du kannst es ja mal mit CodeXL starten, das meldet dir sämtliche Fehlerhaften Aufrufe. Es muss auch nicht unbeding an OpenGL Code liegen, du kannst auch ein Memory-Leak irgendwo im Code haben, der nur nun auffällt, weil cpu-gpu speicher synchronisiert werden müssen. Ich hatte das mal, da hatte ich ein Fehler in einem string und da die shader über die strings laufen ist der dann aufgefallen. Der trat auch nicht immer auf, nur ab und zu. Es kann also auch dann Sinn machen, wenn CodeXL keine Fehler meldet, dass du mal mit ein Memory-Leak-Detektor startest.
Zitat:
sizeof(vertices)*100
Keine gute Idee, je nachdem, wie vertices definiert ist, hast du ein unbestimmtes verhalten aber ich tippe mal darauf, dass du hier gerade den Fehler hast. sizeof syntax erwartet ein typ und keine Variable, seit C++11 kann man mit anderer syntax auch variablen verarbeiten.
Code:
sizeof vertices
Das ist wie gesagt sehr fehleranfällig, von daher empfehle ich dir sowas prinzipiell anders im Code zu handhaben. Nutz ein Container. STL
Nutzt du kein STL, dann schreib dir eine Klasse ohne unique_ptr und mit entsprechenden Constructor, Destructor, Copy-,Move-Constructor, sowie assign operator.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Registriert: So Feb 11, 2018 19:44 Beiträge: 2
Programmiersprache: C++
Danke für die schnelle Antwort!!
Ich habe das Problem nun gelöst. Ich habe nichts bedacht, die Größe meines VertexArrays anzupassen. Habe das jetzt riesig gewählt und nun läuft das Programm einwandfrei =)
Mitglieder in diesem Forum: 0 Mitglieder und 10 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.