AVA GFX Engine

Übersicht Sonstiges Projekte

Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7, 8, 9

Neue Antwort erstellen

Thorsten

BeitragSa, Jun 13, 2009 0:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Ohne Debug : Ganz schwarz.
Mit Debug : Läuft gut.

Sehr sehr schöne Sache! Smile

Geeecko

BeitragSa, Jun 13, 2009 13:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Siehe Thorsten Wink
....

FireballFlame

BeitragSo, Jun 14, 2009 7:08
Antworten mit Zitat
Benutzer-Profile anzeigen
nochmal siehe Thorsten Wink
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

DAK

BeitragSo, Jun 14, 2009 9:15
Antworten mit Zitat
Benutzer-Profile anzeigen
ebenfalls^^
Gewinner der 6. und der 68. BlitzCodeCompo

The Shark

BeitragSo, Jun 14, 2009 11:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Siehe Torsten

Intel Celeron 1.7 Ghz
nVidia GeForce FX 5200 mit neuesten Treibern
Win XP SP 3

Thorsten

BeitragSo, Jun 14, 2009 12:35
Antworten mit Zitat
Benutzer-Profile anzeigen
The Shark hat Folgendes geschrieben:
Torsten

Fool D: :'(

The Shark

BeitragSo, Jun 14, 2009 12:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Tschuldigung Embarassed

ComNik

BeitragDi, Jul 06, 2010 14:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich weiss ich grabe in nem sehr alten Thread, aber ich denke mal das sind allgemeine Fragen zur Engine, die können ruhig in den alten Projekt Thread. Wenn nicht, dann bitte trashen und ich mach nen neuen Thread auf.

Ich habe mir gestern Ava's Engine in der ich glaube neusten Version heruntergeladen (aus dem "Abschieds" Thread). Der Funktionsumfang hat mich schonmal umgehauen. Dann wollte ich natürlich direkt die Performance im Vergleich zum normalen Max2D testen.

Also schrieb ich folgenden Code:
BlitzMax: [AUSKLAPPEN]

SuperStrict

Framework Ava.Gfx

AvaGraphics(800,600,0,60)

Global box_tex:TImage = LoadImage("Box.png")

While Not (KeyDown(KEY_ESCAPE) Or AppTerminate())
Cls
For Local i:Int = 0 Until 10000

DrawImageRect(box_tex,Rand(0,800),Rand(0,600),Rand(10,100),Rand(10,100))

Next
Flip
Wend
End


Dieses Programm erreicht im Debug - Modus etwa 10 FPS und eine CPU Auslastung von ca. 13 % auf meinem Core i7.

Max2D erreicht bei dem gleichen Test (10000 DrawImageRects()) eine CPU Auslastung von 7-10% und
gute 20 FPS.


Folgendes habe ich auch noch ausprobiert:

BlitzMax: [AUSKLAPPEN]

SuperStrict

Framework Ava.Gfx

AvaGraphics(800,600,0,60)

Global box_tex:TImage = LoadImage("Box.png")
PushTexture(box_tex)

While Not (KeyDown(KEY_ESCAPE) Or AppTerminate())
Cls
For Local i:Int = 0 Until 10000

DrawRect(Rand(0,800),Rand(0,600),Rand(10,100),Rand(10,100))

Next
Flip
Wend
End


Erreicht exakt die gleichen Werte.

Achja, auch wenn ich in der For Schleife dauernd die Textur neu "pushe" und nach dem Draw() wieder "poppe", also nichtmehr Single Surface zeichne, ist die Auslastung nicht sonderlich höher.

Insgesamt ist Max2D also schneller, was mich wundert da ich von vielen Leuten berichtet bekam, dass Avas Engine schneller ist.

Nun meine Frage: Habe ich etwas falsch gemacht? Oder kann die fehlende Performance an anderen Faktoren liegen?

Dankeschön,
ComNik
WIP: Vorx.Engine

mpmxyz

BeitragDi, Jul 06, 2010 14:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich muss zugeben, dass ich die AVA GFX Engine noch nie richtig getestet hatte.
Stattdessen hatte ich mich aber an einem eigenen 2D-Grafik-Framework versucht gehabt.
Obwohl ich dieses auf möglichst wenige GL-State-Änderungen optimiert hatte, war es nur ein paar Prozent schneller als Max2D.
Die nicht genutzte Optimierung bei Max2D scheint sich eher wenig bemerkbar zu machen. (eventuelle Treiberoptimierungen, die das von sich aus übernehmen?)
Eine "richtige" Verbesserung wird sich wohl höchstens mit Framebufferobjekten einstellen.
Mit denen kann man aber auch nicht so zeichnen, wie man es von Max2D und anderen 2D-Engines gewohnt ist, da man das zu zeichnende erst einmal sammeln muss.
Edit: Mache mal aus dem "Flip" ein "Flip 0" und lasse dir die Zeiten für die DrawXYZ-Aufrufe und für die Flip-Aufrufe ausgeben. Ich hatte nämlich bei einem etwas extremeren Test gemerkt gehabt, dass das Zeichnen der Bilder nach dem Aufrufen der Zeichenbefehle noch nicht beendet sein muss. Wenn beim Erreichen des Flips noch etwas zum Zeichnen übrig ist, muss gewartet werden.
(fps-Optimierung: Erst rendern, dann updaten!)
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

ComNik

BeitragDi, Jul 06, 2010 15:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok also mit Flip 0 wird das Gewusel natürlich flüssiger, aber man erkennt natürlich nicht ob da noch was fehlt.

Die Zeiten für die Draw Schleife bei Flip 0 und Flip -1 sind etwa gleich bei ~80 Ms
Allerdings steigen die FPS natürlich auf etwa 13.
Der gleiche Effekt ist natürlich auch beim Max2D Vergleich bemerkbar.

Kann es sein das die Geschwindigkeit an DirectX liegt? Oder liegt es "einfach" an der Implementierung?

Die Flip Aufrufe bei Flip -1 und Flip 0 sind auch immer gleich zwischen 0 und 1 Ms.

Danke trotzdem, vor allem für den Tipp mit dem erst Drawen() dann Updaten(). Smile

lg
ComNik

[EDIT:]
Ich hab mich mal mit der Engine auseinandergesetzt und habe jetzt mal das Programm umgeschrieben, so dass keinerlei Texture State Changes mehr stattfinden sollten:

BlitzMax: [AUSKLAPPEN]

SuperStrict

Framework Ava.Gfx

AvaGraphics(800,600,0,60)

Global box:TImage = LoadImage("Box.png")
PushTexture(box)

While Not (KeyDown(KEY_ESCAPE) Or AppTerminate())
Cls
For Local i:Int = 0 Until 10000

box­.Frame[0].Draw_Rect(Rand(0,800),Rand(0,600),0.0,Rand(10,100),Rand(10,100))

Next
Flip
Wend
End


Dadurch das ich das Frame direkt zeichnen lasse, wird PushTexture() beim Aufruf von DrawImage() verhindert, Resultat :

Leicht gesteigerte FPS (auch bei Flip -1) (etwa 11)

Allerdings spricht die Zeitmessung beim Max2D Beispiel eindeutig für Max:

10000 DrawImageRect()'s in ca. 20 Ms. AvaGfx braucht dafür 80 Ms :/

[/EDIT]
WIP: Vorx.Engine
 

undefined

BeitragFr, Jul 09, 2010 14:06
Antworten mit Zitat
Benutzer-Profile anzeigen
ComNik hat Folgendes geschrieben:
Dieses Programm erreicht im Debug - Modus etwa 10 FPS und eine CPU Auslastung von ca. 13 % auf meinem Core i7.

Hast Du alle Deine Tests nur im Debug-Mode durchlaufen lassen ? Die Engine ist im Debug-Mode wirklich ein ganzes Stück langsamer.

"SingleSurface" wird nur dann unterbrochen, wenn wirklich mit einer anderen Textur gezeichnet wird oder eine andere Einstellung erfolgt, die das Beenden / Neustarten des Drawmodes erfordert (zb. ändern des Blendmodes). Also wenn Du nur zwischen zwei DrawRects jeweils ein und dieselbe Textur einstellst und wieder ausstellst, wird diese Einstellung quasi intern verworfen und beides als eine "Surface" gezeichnet.

ComNik

BeitragFr, Jul 09, 2010 17:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Huhu,
die Tests habe ich alle auch im Release Modus laufen lassen. Da sind sie natürlich ein ganzes Stück schneller.
Aber Max2D auch Wink

Trotzdem überwiegen denke ich die Vorteile der Engine gegenüber diesem kleinen Performance Unterschied.

lg
ComNik
WIP: Vorx.Engine

kog

BeitragMi, Nov 21, 2012 13:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Tut mir leid, das ich diesen Thread pushe...

Jedoch würde mich interessieren, ob jemand noch eine der aktuellsten Version der Engine rumliegen hat? Da der Webspace abgemeldet wurde...

mfg
kog
Windows 7 Home Premium 64bit
CPU: Intel Core i5 3450 Ivy Bridge
GPU: HIS HD 4870 1GB GDDR5
RAM: 4x 4GB DDR3-SDRAM Dual Channel

klin

BeitragMi, Nov 21, 2012 14:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey,
ist das nicht schon die aktuellste Version? Oder gibt es eine noch neuere?

Klin

Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7, 8, 9

Neue Antwort erstellen


Übersicht Sonstiges Projekte

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group