OpenGL: Programm läuft seit gestern viel zu schnell und über VS wird es nicht ausgeführt



  • Wenn die NeHe-Projekte funktionieren und dein Programm nicht, dann ist das Problem bei deinem Code.

    Ist es sicherlich das OpenGL, d.h. wird das Fenster erstellt und nur der Inhalt nicht gezeichnet?

    Ich hatte auch schon Probleme mit der Portierung von NVidia auf AMD-Grafikkarten. NVidia verzeiht gewisse Abweichungen vom Standard, die bei AMD zu Fehlern führen und teilweise schafft man es auch, dass ein Programm durch Zufall bei der eigenen Grafikkarte läuft und bei allen anderen nicht.



  • Dann muss es wohl an soetwas wie meiner OpenGL-Initialisierung liegen, da bei mir alle OpenGL Programme nicht mehr laufen.
    Kann es überhaupt sein, dass es an der Inkompatibilität liegt, da ich davor eine AMD hatte und meine Programme auf der liefen :).
    Unterscheiden tun sich die beiden größtenteils nur in einer Generation:

    1. Radeon HD 6950 (dann defekt): funktionierte alles
    2. GTX 580 (vom freund als kurzzeitaustausch):funktionierte
    3. Radeon HD 7870 (meine neue):funktioniert nicht mehr

    Gruß
    silent12


  • Mod

    start den debugger mit F10 und step durch bis das program schliesst und dann in die funktion bei der es zu ging und so immer tiefer bis du die stelle findest die das problem verursacht, koennte effektiver sein als unsere kristalkugeln 😃



  • Das mit F10 macht in diesem Fall nicht wirklich Sinn, da es keine Error gibt, sondern das Programm zwar debuggt wird und ein Prozess gestartet wird, der nach dem Speicherverbrauch auch danach aussieht, dass er meine Objekte importiert, aber ich keine Ausgabe auf dem Bildschirm habe.

    Meine Vermutung: Ein Problem das durch die Inkompatibilität meiner neuen Graffikarte mit meinem "fehlerhaften" Code entstanden ist (OpenGL-Problem).

    Nur Lösungsansätze fehlen mir noch 😕

    Gruß
    silent12


  • Mod

    silent12 schrieb:

    Das mit F10 macht in diesem Fall nicht wirklich Sinn, da es keine Error gibt, sondern das Programm zwar debuggt wird und ein Prozess gestartet wird, der nach dem Speicherverbrauch auch danach aussieht, dass er meine Objekte importiert, aber ich keine Ausgabe auf dem Bildschirm habe.

    du kannst also im debugger sein und anfangen zu steppen bis zum fehler...

    Meine Vermutung: Ein Problem das durch die Inkompatibilität meiner neuen Graffikarte mit meinem "fehlerhaften" Code entstanden ist (OpenGL-Problem).

    ... und stattdessen versuchst du es mit religion/voodoo?

    Nur Lösungsansätze fehlen mir noch 😕

    debugge es!



  • Es wird nicht "fertig" debuggt. Ich kann mir auch nicht über die Haltepunkte die Werte der Variabeln anzeigen lassen, da Haltepunkte bei mir irgendwie keine Wirkung haben.

    Oben links wird immer das blaue Quadrat angezeigt und normalerweise, wird wenn VS beim Durchlauf auf einen Haltepunkt trifft das "Play" oben wieder angezeigt....

    Gruß
    silent12



  • hast du es vielleicht im release statt debug?



  • Ne läuft im Debug. Wenn jemand will kann er auch gerne mal per TeamViewer drüber schaun und sich selber einen Überblick verschaffen.

    Gruß
    silent12



  • Habe jetzt alles an meinem Programm getestet und jetzt Code von außerhalb importiert, mit dem gleichen Problem.
    Aus meiner Sicht müsste es dann entweder an Visual Studio C++ liegen, oder an der Graffikarte.

    Nochmal für alle: Visual Studio startet das Debugging, ein Prozess wird erstellt und Speicherreserviert, aber es erflogt KEINE AUSGABE, als ob VS noch auf etwas warten würde.
    Das Programm kann ich dann wieder über VS beenden und ich bekomme die Rückmeldung, dass das Programm ohne Fehler beendet werden konnte.

    Meine Graffikarte: Gigabyte Radeon HD 7870 2GB
    IDE: Visual Studio C++ 2010 Express

    Kann mir jemand helfen ?

    Gruß
    silent12



  • Und das Programm hat davor funktioniert? Kanns sein, dass deine Nachrichtenschleife nie erreicht wird, oder festhängt?



  • Ja das Programm funktionierte unter Nvidia. Ich weis nicht, wie ich das testen soll, da Breakpoints auch nicht mehr beachtet werden.

    Ich habe jetzt:
    1. Alte Grakatreiber gelöscht mit Driver Cleaner alles gesäubert + neuen Treiber wieder drauf

    2. VS C++ 2010 gelöscht und neuinstalliert

    3. Externen Code eingefügt und zum laufen bekommen (verpennt Include-Pfade anzupassen)

    -> Es MUSS an meinem Code liegen und zwar an meinem Grundcode (obwohl dieser unter einer älteren AMD Graka noch lief).

    Wo kann ich mit der Fehlersuche(Breakpoints funktionieren nicht) anfangen ?

    Gruß
    silent12



  • silent12 schrieb:

    Ja das Programm funktionierte unter Nvidia. Ich weis nicht, wie ich das testen soll, da Breakpoints auch nicht mehr beachtet werden.

    Huch, bist du sicher, dass das überhaupt die richtige Version der exe gestartet wird? Ist das ein Release oder Debug Build?



  • Wenn ich die Exe von Hand starte, dann bekomme ich ebenfalls keine Ausgabe, egal ob ich die Release, oder die Debug exe nehme.
    Hänge jetzt seit ca. 2 Wochen an diesem Problem und kann deshalb einfach nicht weitermachen.
    Wenn du willst gebe ich dir gerne einen Link zu dem Code, oder du kannst ihn dir direkt per Teamviewer anschauen, oder über Skype zeigen lassen.

    Edit: Ich schicke dir auch gerne das ganze Project mit sdf-File,..damit du es bei dir testen kannst.

    Die Möglichkeiten oben dürfen natürlich GERNE auch von anderen genutzt werden 🙂
    Würde mich sehr freuen 🙂

    Gruß
    silent12



  • Habe jetzt glaube ich die Lösung gefunden, zumindest schaffe ich es jetzt, dass der Code ausgeführt wird,
    aber der Code wird trotzt Vertik.Sync viel zu schnell ausgeführt....

    Und zwar musste ich diesen Teil hinzufügen:

    #include <gl/glut.h>
    #include <stdio.h>
    

    Gruß
    silent12


Anmelden zum Antworten