versuch 2



  • LinkeT schrieb:

    scheinbar sind fragen die hier nicht gelöst werden können unangebracht und werden mit dankbaren sprüchen wie "mach deine Fehler raus, dann funktioniert es" kommentiert ... sehr gut ...

    Wir wissen das es so sehr gut ist, darum machen wir es ja auch. f'`8k

    Autocogito

    Gruß, TGGC (\-/ has leading)



  • also bislang gabs nur 3 sachen (wenn ich was nicht übrsehen hab)
    - malloc bevor ich den pointer ändere
    - 1000 und 10000
    - nicht initialisieren von variablen

    malloc hab ich entfernt
    die eine 0 hab ich auch drangehangen
    mit rtlzeromemory hab ich die bools auf false gesetzt

    und hats was gebracht? o vllt hab ich später deswegen wenigerbugs, danke, aber das problem ist immer noch da



  • Ich habs mal bei mir schnell versucht, und nachdem ich von hw vertex processing auf sw vertex processing gewechselt habe (mein nb hat keine richtig 3d graka).
    Bin ich direkt mal auf deinen Cull-Mode gestoßen, wieso verwendest du D3DCULL_FORCE_DWORD als Cull-Mode? Um das Culling abzuschalten verwendet man D3DCULL_NONE.
    Force-Dword ist nur dazu da um die Größe des Enums auf 32Bit zu bringen.
    Würdest du deine Device-Calls alle auf Fehler prüfen, dann wäre dir das viel früher aufgefallen.

    Nachdem ich das behoben habe, sagte mir mein Debugger folgendes:

    Direct3D9: (WARN) :Device that was created without D3DCREATE_MULTITHREADED is being used by a thread other than the creation thread.

    Direct3D9: (ERROR) :Stream 0 does not have required number of vertices

    Und wenn du nicht sofort hingehst und deinen Debugger benutzt und die Debug-Runtime, dann wird dir hier sicher keiner mehr helfen!



  • lolz schrieb:

    Und wenn du nicht sofort hingehst und deinen Debugger benutzt und die Debug-Runtime, dann wird dir hier sicher keiner mehr helfen!

    ach wie gern würd ich ...
    da wo ichs debuggen kann tritt der fehler nicht auf,
    da wo ichs nicht debuggen kann tritt der fehler auf

    ich werds gleich als signatur anbringen^^


  • Mod

    bist du dir sicher dass du verstanden hast was er gesagt hat?
    du sollst D3D in debug einstellen, in der systemsteuerung ist ein setup-program dafuer.

    alternativ gib einfach aus (in dein logfile) was du bei vertexcount beim setzten der streams und beim drawindexedprimiv angibst.



  • DX spuckt beim laufen auch Warnungen raus, d.h. auch auf deinem PC wo du die Developer-Runtime hast könntest du den Fehler finden, indem du alle Warnungen beseitigst.

    Und für andere PCs kannst du sämtliche Fehler in ein Logfile ausgeben indem du _jeden_ Aufruf von einer Funktion die ein HRESULT zurückgibt auf einen Fehler prüfst.

    Das kannst du so machen:

    HRESULT res;
    if( FAILED( ( res = d3d->SetRenderState( D3DRS_ZENABLE, TRUE ) ) ) )
    {
      const TCHAR* str = DXGetErrorString9( res );
      const TCHAR* descr = DXGetErrorDescription9( res );
    
      myLogFile << res << ": " << descr << endl;
    }
    

    Solltest nach jeder Ausgabe die Datei flushen, damit bei einem Absturz nicht irgendwelche Einträge im Nirvana verschwinden, weil sie zwischengespeichert wurden.



  • rapso schrieb:

    bist du dir sicher dass du verstanden hast was er gesagt hat?

    Ja, er ist sich sicher. Das ist das Problem. Er kapiert nix, meint aber schon alles zu koennen. f'`8k

    Autocogito

    Gruß, TGGC (\-/ has leading)



  • TGGC schrieb:

    rapso schrieb:

    bist du dir sicher dass du verstanden hast was er gesagt hat?

    Ja, er ist sich sicher. Das ist das Problem. Er kapiert nix, meint aber schon alles zu koennen. f'`8k

    Autocogito

    Gruß, TGGC (\-/ has leading)

    wohl eher hab ich das prblem mich verständlich auszudrücken, zumindest so das es _jeder_ versteht ... ich versteh aber auch nicht was man an der aussage "von 2 objekten wird nur eins gerender, hr(esult) ergibt aber S_OK [überall]" nicht verstehen kann...

    wann hab ich gesagt ich kann alles ... wieder mal nur eine unterstellung ... wer den schaden hat brauch nunmal nicht für spot zusorgen ...

    ich hatte das Problem schon mal - hab nix geändert und weiter gemacht ... und es ging ..

    ich werd mir jetzt die lade routine vornehmen, DA das die einzige routine ist die bei den "objekten" [zusammenfassung von vertexangaben] unterschiedlich bearbeitet wird - warum dort was passiert das auf mehreren PCs (die sich effektiv nur noch durch den grafikkarten "hersteller" [ATI/nVidia] einen unterschiedmacht


  • Mod

    LinkeT schrieb:

    ich hatte das Problem schon mal - hab nix geändert und weiter gemacht ... und es ging ..

    LinkeT schrieb:

    rapso schrieb:

    deine abstuerze kommen daher dass du deine problemen nicht auf den grund gehst,
    sondern die sache so belaesst wie sie ist, solange es laeuft (z.b. "Ohne malloc stürzt das Program (warum auch immer) ab und zwar mit ein Fehler wo hin zu schreiben."), woher willst du wissen dass es nicht dieser fehler ist der trotz allokation auf einer anderen maschine nicht trotzdem den absturz verursacht?

    doch geh ich...

    🙄
    solange du probleme nicht sofort fixt, auch wenn sie zufaellig temporaer gehen, werden sich all deine bugs weiterhin akkumulieren und selbst wenn man dir dann hier weiterin 100dinge zum fixen sagt, werden unmengen bugs drinnebleiben.

    rapso schrieb:

    bist du dir sicher dass du verstanden hast was er gesagt hat?
    du sollst D3D in debug einstellen, in der systemsteuerung ist ein setup-program dafuer.



  • so nun hab ich ein 20 MB grossen logfile jetzt werd ich mir den mal zur hand nehmen ...

    "the function completed successfully kommt da ziemlich häufig vor 😉
    jetzt werd ich das mal "entfernen" mal schaun was übrig bleibt
    EDIT
    ich hab mal d3dDevice->Clear, d3dDevice->BeginScene usw mal ausm log rausgelassen [wenn die nicht S_OK ergeben würd ich ja gar nix sehen]



  • LinkeT schrieb:

    EDIT
    ich hab mal d3dDevice->Clear, d3dDevice->BeginScene usw mal ausm log rausgelassen [wenn die nicht S_OK ergeben würd ich ja gar nix sehen]

    Du bist ja schon wieder schlauer als alle anderen. f'`8k

    Autocogito

    Gruß, TGGC (\-/ has leading)



  • TGGC schrieb:

    LinkeT schrieb:

    EDIT
    ich hab mal d3dDevice->Clear, d3dDevice->BeginScene usw mal ausm log rausgelassen [wenn die nicht S_OK ergeben würd ich ja gar nix sehen]

    Du bist ja schon wieder schlauer als alle anderen. f'`8k

    Autocogito

    Gruß, TGGC (\-/ has leading)

    TGGC sollst nicht von dir uf andere schliessen



  • also es steht ausschliesslich als rückgabewertbeschreibung (DXGetErrorDescription9A) wurde vollgendes geliefert: "the function completed successfully"

    das auch bei objekten die nicht (sichtbar) gerendert werden -> so was empefehlt ihr mir nun zu machen?


  • Mod

    wieso gibst du nicht einfach nur fehler aus? man muss nicht grundsaetzlich alles ausgeben.



  • kommt aufs selbe hinaus (ausser das ich da ausend mal if und bluub schreiben muss) ändert aber nix am problem^^


  • Mod

    aber eventuell am naechsten problem, denn du hast sicher nicht nur noch eines uebrig.



  • ähmmm back to toipic -> warum (hab nun noch einen testen lassen, er hat nvidia grafikkarte) wird es nicht überall gerendert



  • LinkeT schrieb:

    nvidia grafikkarte

    Prüf die Caps, bevor du Funktionalitäten nutzt!



  • haa !!!!!!

    nun hab ichs selbst herausgefunden - es liegt doch ein wenig an der differenz an ATI und nVidia !

    aber nur in der hinsichht das nVidia eher über Fehler mekert als ATI

    d3dDevice->DrawPrimitive( my_3dobjs[ID].PT , 0, (my_3dobjs[ID].an_vertex/3));
    

    das mir das nicht schon eher auf viel 😞 (ich gebe zu wo ich an der stelle war, wusste ich nicht 100%ig ob es korrekt war)

    naja wenigstens kam ich alleine *G* auf den fehler zugegeben mein fehler aber warum zur hölle ignoriert ati so ein fehler [er ist nicht grad sehr klein^^]

    so nun kann ich nach dem ich mein Projekt wieder dahin gebracht hab wo es vor einer woche (scheinbar) war wieder gut schlaffen 🙂 gn8 all

    PS behauptet ja nich euch wärs nicht in der ersten minute aufgefallen 😉 so wie ihr auf anderen fehlern rum gehackt habt 😛


  • Mod

    LinkeT schrieb:

    PS behauptet ja nich euch wärs nicht in der ersten minute aufgefallen 😉 so wie ihr auf anderen fehlern rum gehackt habt 😛

    wozu behaupten? falles es dir hier um den vertexcount geht, dann schrieb lolz schon auf seite 3:

    Nachdem ich das behoben habe, sagte mir mein Debugger folgendes:

    Direct3D9: (WARN) :Device that was created without D3DCREATE_MULTITHREADED is being used by a thread other than the creation thread.

    Direct3D9: (ERROR) :Stream 0 does not have required number of vertices

    und ich hab dir einige male gepostet wie du d3d debug einschaltest der sowas als fehler auf jedem pc ausgibt.


Anmelden zum Antworten