JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=58816b37f7c06fccaace8125c7cc4c1fMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Problem mit Debug und Release

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Catscratch1
Junior JLI'ler



Anmeldedatum: 20.01.2005
Beiträge: 98

Medaillen: Keine

BeitragVerfasst am: 24.04.2005, 19:56    Titel: Problem mit Debug und Release Antworten mit Zitat

Hallo,

ich habe ein Beispiel mit DirectX unter Visual Studio 2003 entwickelt.
Wenn ich alles in der Konfiguration Debug laufen lasse, funktioniert es. Wenn ich es unter Release laufen lasse, schmeißt die Methode GetSurfaceLevel der Texture nen Speicherfehler.

Wenn ich die Mipmap Texturen nicht lade, bzw nur die Zeile für das SurfaceLevel auskommentiere, läuft es.

Code:

void Cube::LoadTextures(int i)
{
   LPCTSTR path[] = {
      ".\\Data\\texture\\00\\",
      ".\\Data\\texture\\01\\",
      ".\\Data\\texture\\02\\",
      ".\\Data\\texture\\03\\",
      ".\\Data\\texture\\04\\",
      ".\\Data\\texture\\05\\",
      ".\\Data\\texture\\06\\",
      ".\\Data\\texture\\07\\",
      ".\\Data\\texture\\09\\",
      ".\\Data\\texture\\10\\",
      ".\\Data\\texture\\11\\",
      ".\\Data\\texture\\12\\",
      ".\\Data\\texture\\13\\",
      ".\\Data\\texture\\14\\",
      ".\\Data\\texture\\15\\",
   };

   LPCTSTR file = "00.bmp";

   


   for(int j=0; j<i;j++)
   {
      TCHAR strTexture[25];
      lstrcpyn(strTexture,path[j],24);
      lstrcpyn(strTexture+18,file,7);
      D3DXCreateTextureFromFile(this->m_lpDevice,strTexture,&this->texture[j]);
      this->InitSurfaces(this->texture[j],strTexture);
   }
}

void Cube::InitSurfaces(LPDIRECT3DTEXTURE9 t, TCHAR tex[])
{
      LPCTSTR path[] = {
      "01.bmp",
      "02.bmp",
      "03.bmp",
      "04.bmp",
      "05.bmp",
      "06.bmp"
      "06.bmp"
   };

   LPDIRECT3DSURFACE9 pDestSurface  = NULL;
   for( int i = 1; i < 7; i++ )
   {
      lstrcpyn(tex+18,path[i-1],7);
      t->GetSurfaceLevel( i, &pDestSurface );

      D3DXLoadSurfaceFromFile(pDestSurface,0,0,tex,0,D3DX_FILTER_LINEAR,0,0);

      pDestSurface->Release();
   }
}



Hat jemand ansatzweise ne Vorstellung, warum das nicht geht im releasemode? Die Grundtextur wird ja geladen, und wenn ich kein Mipmapping mache auch angezeigt!
_________________
"Dispatcher und Scheduler sind wie Brüder, bloß anders"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
xardias
JLI Master


Alter: 38
Anmeldedatum: 28.12.2003
Beiträge: 804
Wohnort: Palo Alto, CA
Medaillen: Keine

BeitragVerfasst am: 24.04.2005, 20:05    Titel: Antworten mit Zitat

im release modus werden variablen nicht (wie im debug modus) mit 0 initialisiert. daher kann das zu fehlern kommen. vielleicht hilft dir das weiter.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 24.04.2005, 20:11    Titel: Antworten mit Zitat

btw. benutze doch bitte statt code cpp. Das seiht viel schöner aus.

Ich habe auch schonmal so doofe Fehlrer gehabt, die in Release waren, aber bei Debug net. Allerdings mit VC6. Tja, manchmal half es, die Optimierungsfunktionen zu verändern, einmal habe ich auch einfach noch Debug infos mit reingeschreiben und es ging. Ergibt zwar keinen Sinn, aber es war so.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Catscratch1
Junior JLI'ler



Anmeldedatum: 20.01.2005
Beiträge: 98

Medaillen: Keine

BeitragVerfasst am: 24.04.2005, 20:15    Titel: Antworten mit Zitat

Hmm,

das mit cpp mekr ich mir Wink

An der Initialisierung mit 0 hängt es glaub ich nicht.
das pDestSurface initialisier ich ja mit 0. Und die Textur ist ja gefüllt.
Ich glaub auch, dass es was mit der blöden Optimierung zu tun hat.

Macht der Debugmodus nen großen Performanceunterschied?
_________________
"Dispatcher und Scheduler sind wie Brüder, bloß anders"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 24.04.2005, 20:16    Titel: Antworten mit Zitat

Catscratch1 hat Folgendes geschrieben:
Macht der Debugmodus nen großen Performanceunterschied?


Nen Derben.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Catscratch1
Junior JLI'ler



Anmeldedatum: 20.01.2005
Beiträge: 98

Medaillen: Keine

BeitragVerfasst am: 24.04.2005, 20:20    Titel: Antworten mit Zitat

So habe mal die Debug Konfiguration kopiert und erstens die Debuginformationen rausgenommen und zweitens dem Präprozessor statt _DEBUG NDEBUG übergeben.

Was muss man noch umstellen, damit alle Debugfunktionen raus sind?
_________________
"Dispatcher und Scheduler sind wie Brüder, bloß anders"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 24.04.2005, 20:27    Titel: Antworten mit Zitat

Ähme zwischen Debug und Release gibt es noch größere Unterschiede als nur Debugfunktionen! z.B. Optimierungen, Herausgenommene Debuginformations uvm.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Catscratch1
Junior JLI'ler



Anmeldedatum: 20.01.2005
Beiträge: 98

Medaillen: Keine

BeitragVerfasst am: 24.04.2005, 20:32    Titel: Antworten mit Zitat

Ja klar.
Ich meine nur, was muss man alles rausnehmen, damit der Debugging Mode komplett weg ist.

Ich bin grad dabei zu probieren, welche Optimierungen sinn machen!
_________________
"Dispatcher und Scheduler sind wie Brüder, bloß anders"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Catscratch1
Junior JLI'ler



Anmeldedatum: 20.01.2005
Beiträge: 98

Medaillen: Keine

BeitragVerfasst am: 24.04.2005, 20:36    Titel: Antworten mit Zitat

Komisch,

habe jetzt ein neues Szenario zum Kompilieren erstellt. Es 100%ig genauso wie das vorherige, bloß dass es jetzt tut!

*g*
_________________
"Dispatcher und Scheduler sind wie Brüder, bloß anders"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum