versuch 2



  • LinkeT schrieb:

    klar mach ich hier und da noch mal paar fehler ... und ihr auch

    Und weisste was ich dann mache? Ich setze mich hin und mach sie raus. Und du nicht! f'`8k

    Autocogito

    Gruß, TGGC (\-/ has leading)



  • TGGC schrieb:

    LinkeT schrieb:

    klar mach ich hier und da noch mal paar fehler ... und ihr auch

    Und weisste was ich dann mache? Ich setze mich hin und mach sie raus. Und du nicht! f'`8k

    Autocogito

    Gruß, TGGC (\-/ has leading)

    jo sitzt neben mir schaust mir über die schulter und weisst was ich mach/nich mach ... is klar ... fein das du das machst


  • Mod

    🙄 das forum ist um bei problemen zu helfen, nicht beim debuggen, dein ganzes jammern hier bring weder dich weiter, noch jemanden dazu fuer dich zu debuggen. du bist nicht der einzige der mal nen tag an nem bug sitzt und ich seh hier nicht hunderte threads von leuten die trivialbugs geloest bekommen wollen. wenn debugen dein defizit am programmieren ist, dann lern einfach sauberen code zu schreiben, dann ersparst du es dir, nimm eine programmiersprache die dir mehr unterstuetzung bietet z.b. c#,java,VB die mit aus diesem grund gemacht wurden.



  • ich hab ein problem damit das ein Program auf 2 rechnern 2 verschiedene ergebisse liefert - nach meinem Verständnis ist das schlicht weg unmöglich!

    debugen ist nicht min Problem (wie kommt ihr/du da drauf) ich hab schon diverse Fehler von mir schon durch debugen gelöst

    Also noch mal ich wollte nieeemals das einer von euch was von mi debugt (wie oft wurde gesagt ich slle den code posten).
    Ich wollte NUR (nicht mehr, kein bissel) nur einen lösungsansatz (im falle jemand hatte schon das Problem erfolgreich gelöst)...

    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 ... 👎

    EDIT:

    Nochmal kurz das Problem - 3d objekte werden nicht auf allen PCs gerendert - scheinbar nur auf welchen die ATI grafikkarten haben



  • du bist bereits auf mehrere moegliche fehlerursachen und ansatzpunkte hingewiesen worden.
    anstatt deinen code so umzuschreiben, dass er wenigstens einem mindestmass an funktionstuechtigkeit und stabilitaet entspricht, willst du die hardware fuer deine fehler verantwortlich machen - das ist laecherlich.



  • 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^^


Anmelden zum Antworten