SDL Performence Probleme



  • Okay ich habe die Funktion nun mal nur mit der Hintergundgrafik aufgerufen und dabei eine Verdopplung auf sage und schreibe 13 FpS hinbekommen, was immer noch zu langsam ist.

    Apropos die Grafiken werden als PNG geladen (denke mal kaum, dass das irgendwas ausmacht).

    Kann ich eine noch größere Steigerung erwarten wenn ich die Animationen auch konvertiere (bzw alle Grafiken) ??

    @Cpp_Junky
    Ich bin mir nicht sicher ob ich Deine Frage richtig verstanden habe. Aber wenn ich eine tranparente Animation habe, und diese neu zeichne dann ist die Vorgängergrafik noch zu sehen deshalb muss ich egal ob transparent oder nicht auf jeden Fall neu zeichnen, sonst sieht das nämlich ziemlich schlecht aus.



  • Du musst ja nicht immer den ganzen Bildschirm neuzeichen sondern kannst eben einfach nur bestimmte Bereiche neuzeichnenlassen wenn es nötig ist.



  • Ja, das weiß ich aber es soll auch so funktionieren.



  • tom07 schrieb:

    Kann ich eine noch größere Steigerung erwarten wenn ich die Animationen auch konvertiere (bzw alle Grafiken) ??

    machs doch einfach 😕

    und ja, mit _allen_ grafiken...



  • 5 * 1280 * 800 * 4 Byte per CPU? Und das gibt keine ordentliche Framerate? Sowas aber auch.

    Bye, TGGC (Ein Jahr Helden)



  • Hallo Tommy,
    Also wenn du mal ansatzweise denen Code zeigen würdest, könnte man vielleicht etwas mehr sagen.

    Der normale SDL-DisplayMode bedeutet grafik über die WinAPI - egal was du machst, es ist langsam. Nutze nach Möglichkeit DirectX. Die Befehle bleiben gleich (das übernimmt die SDL) aber die Geschwindigkeit steigt..
    Dann schreibe nicht in Surfaces, die müssen vom RAM über den BUS zur CPU ind die Grafikkarte geschrieben werden bis sie dargestellt werden können und bei 1280 * 800 mit 5 Ebenen und 5 Byte transportierst du 20.480.000 Byte pro Bild, also mal eben 20MB Daten.. Das ist in Ungefähr der Brockhaus komplett ohne Bilder..


  • Mod

    DocJunioR schrieb:

    Hallo Tommy,
    1280 * 800 mit 5 Ebenen und 5 Byte transportierst du 20.480.000 Byte pro Bild, also mal eben 20MB Daten.. Das ist in Ungefähr der Brockhaus komplett ohne Bilder..

    ja, mehr als 100fps wirst du da nur schwer bekommen.

    rapso->greets();



  • 100 fps? naja, 10 würd ich noch gelten lassen.. Wie gesagt, mit Quellcode könnte man mehr dazu sagen..


  • Mod

    DocJunioR schrieb:

    100 fps? naja, 10 würd ich noch gelten lassen.. Wie gesagt, mit Quellcode könnte man mehr dazu sagen..

    ich hingegen würde 100fps sagen, je nach system könnten es auch nur ca 50sein, aber dann dürfte man schon bei DDR266 speicher angelangt sein der dann nur 1.1GB effektiv rüberschauffeln kann.

    rapso->greets();



  • Naaja, wenn denn das System nichts weiter tu würde, aber der BUS wird ständig von irgendwelchem Müll belagert..



  • DocJunioR schrieb:

    Der normale SDL-DisplayMode bedeutet grafik über die WinAPI - egal was du machst, es ist langsam. Nutze nach Möglichkeit DirectX. Die Befehle bleiben gleich (das übernimmt die SDL) aber die Geschwindigkeit steigt..
    Dann schreibe nicht in Surfaces, die müssen vom RAM über den BUS zur CPU ind die Grafikkarte geschrieben werden bis sie dargestellt werden können und bei 1280 * 800 mit 5 Ebenen und 5 Byte transportierst du 20.480.000 Byte pro Bild, also mal eben 20MB Daten.. Das ist in Ungefähr der Brockhaus komplett ohne Bilder..

    Also zunächst mal arbeite ich nicht mit Windows. Allerdings habe ich eine Frage: in was soll ich denn schreiben wenn nicht in Surfaces ?


Anmelden zum Antworten