Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

BlazeX

Alter Hase

  • »BlazeX« ist der Autor dieses Themas

Beiträge: 478

Wohnort: DD

Beruf: Maschinenbau-Student

  • Private Nachricht senden

1

11.11.2010, 20:58

PhysX richtig herunterfahren?

Hi Leute!
Seit ich in meinen Projekten die Physik-Engine PhysX nutze, erlebe ich an und zu Speicherverletzungen beim Herunterfahren des Programms.
Kann es sein, dass PhysX eine Sonderbehandlung benötigt, wie alle Szenen manuell löschen? Oder reicht ein einfaches NxPhysicsSDK::release()?
Müssen irgendwelche Caches und Streams geflusht werden?

Ach ja, ich habe das PhysX SDK v2.8.4

Wäre nett wenn jemand einen Hinweiß geben könnte oder wenigstens eine Idee hätte.

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

2

11.11.2010, 21:18

Ich glaube eher, dass du einen schon gelöschten Speicherbereich ein zweites Mal löschst (oder Schnittstellen in falscher Reihenfolge). Theoretisch kann es beim Beenden eines Programms, wenn keine Aufräumarbeiten erledigt werden (z.B. mittels _exit(0); ) auch zu keiner Zugriffsverletzung kommen, was ein Indiz dafür ist, dass durch vergessenes Löschen von Schnittstellen eher keine Zugriffsverletzungen auftreten dürften (auch wenn es ein sehr schlechter Programmierstil ist).

BlazeX

Alter Hase

  • »BlazeX« ist der Autor dieses Themas

Beiträge: 478

Wohnort: DD

Beruf: Maschinenbau-Student

  • Private Nachricht senden

3

12.11.2010, 09:45

Also ich lösche Speicher bestimmt nicht zweimal. Wenn, dann macht das PhysX.
Ich habe den Fehler etwas eingegrenzt. Es passiert, wenn ich PhysX mit NxPhysicsSDK::release() herunterfahre.
Der VC++ Debugger sagt, dass eine Funktion in PhysXCore.dll den Fehler auslöst. Da ich aber den Source nicht besitzt kann ich das auch nicht weiter einengen.
Mit dem Disassembly kann aber auch niemand was anfangen.

Ungefähr jede 10. Programminstanz passiert das.

BlazeX

Alter Hase

  • »BlazeX« ist der Autor dieses Themas

Beiträge: 478

Wohnort: DD

Beruf: Maschinenbau-Student

  • Private Nachricht senden

4

12.11.2010, 10:23

Ich habs!
Wenn ich PhysX beende, ist es geradenoch am simulieren.

Zitat

Avoid release calls while a scene is simulating (in between simulate() and fetchResults() calls).


Ein fetchResults vor dem Beenden wirkt Wunder!

Werbeanzeige