Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey Leute,
ich hab mich heute nochmal intensiv mit dem TestProgramm meiner Bachelorarbeit beschäftigt, und ein kleines Benchmark daraus gebastelt, um einige Testdaten zu generieren, die ich dann in der Arbeit auswerten will. Das Thema der Arbeit ist "Entwicklung eines octreebasierten Frustum-Culling-Systems". Gleichzeitig wird dieses System in unserem aktuellen Projekt (Massive Universe Online *Werbung mach* ) zur Anwendung kommen. Da ich aber nicht annähernd über genug verschiedene Hardware verfüge, um das Ganze richtig zu testen, wollte ich fragen ob ihr mir da kurz zur Hand gehen könnt. Erstmal ne kurze Erläuterung zum Programm. Die Oberfläche ist in 2 Teile getrennt. Links befindet sich der RenderContext, an dem das Culling ausgeführt wird. Der Context rechts dient zur Veranschaulichung und zur Überprüfung des linken Context bzw. der linken Kamera. Am oberen Rand hat man mehrere Einstellungsmöglichkeiten, wie die Szene gerendert werden soll. Einmal ganz einfach in einer Liste verwaltet und einmal übernimmt die Verwaltung der Octree. So kann man gut Unterschiede und Grenzen der beiden Techniken aufdecken. Die anderen Sachen sind eigendlich selbsterklärend. Nach einem Klick auf "Start Benchmark" startet der Benchmark (wär hätte es gedacht ) Das ganze dauert ca. 10min uns spuckt ab un zu paar Daten im Log aus. Während des Benchmarks werden verschiedene Einstellungen getestet und die durchschnittlichen FPS ermittelt. Die Einstellungen und das Ergebnis landen dann im Log und sehen ungefähr so aus: "Li_S_2000: 2095 Frames at 10sec - 209,5 FPS". Li bedeutet das die Objekte in einer Liste verwaltet werden. Neben der Liste gibt es noch "Ox" wobei das x für die maximale Tiefe des Octrees steht. "S" heißt dass alle Objekte stationär sind, sich also nicht bewegen. Das Gegenteil dazu wäre "M" für Moving. Die letzte Zahl steht für die Anzahl der verwalteten Objekte. Soweit zum Programm und zu den wissenswerten Sachen. Wäre super, wenn ihr mir da bischen aushelfen könnt. Natürlich gibts die Auswertung der Daten und die komplette Arbeit auch irgendwann zu lesen
Achja ganz wichtig (hätt ich fast vergessen): Wie das so bei Benchmarks üblich ist, bitte während des Tests nicht mit dem Rechner arbeiten, das verfälscht sonst die Werte. Das Programm braucht Schreibrechte im Exe-Ordner, denn da wird das Log gespeichert, das ihr mir dann bitte hier hochladet, oder per Mail an bergmann89[at]muo[minus]game[dot]de schickt. Danke.
Registriert: Mi Mai 23, 2012 08:09 Beiträge: 32 Wohnort: Karlsruhe
Programmiersprache: FreeBASIC
Der Test lief bei mir bis Li_M_8000 und blieb dann leider hängen... hat dann auch keine Log erstellt, würde (für solche fälle, wenn möglich...) die Log evtl direkt schreiben, das falls ein absturz erfolgt wenigstens bis dahin gelogt werden würde....
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Ich konnte mit dem Benchmark leider nichts anfangen. (a) rar hätte nich sein müssen . 7z ist kleiner und Quelloffen (*propaganda*) (b) Fliegt mir mit ner AccessViolation um die ohren beim start, klick auf Ok bewirkt auch nur, dass die Meldung erneut auftritt. Wine log:
Code:
err:wgl:X11DRV_wglShareLists Could not share display lists, one of the contexts has been current already !
(c) Ist anscheinend Lazarus, warum hast du's nicht gleich auch für Linux kompiliert?
grüße
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,
erstma Danke an alle. @EternalPain: Done. Download siehe oben. @Lord Horazont: (a) konnt mich bis jetzt noch nich mit 7z anfreunden (b, c) hab den Context vor'm share mal deaktiviert, vlt gehts ja jetzt. Ich glaub aber nicht, das man die Ergebnisse aus Wine verwenden kann, da dort nicht das volle Potential der Hardware ausgereizt wird, oder (hab nich so viel Ahnung von Linux)? Kompilat für Linux gibt's nicht, weil ich viele Windows Sachen im Code benutze. Nochmal alles umbauen wird jetzt von der Zeit zu knapp.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Wine führt nur minimale Indirektion ein, wenn du OpenGL benutzt. Lediglich die WGL-Befehle werden umgeleitet, ansonsten hast du mehr oder weniger direkte Anbindung an die OpenGL-Library. Der Overhead sollte auf einem 3.3 GHz system vernachlässigbar sein .
Vor dem Share deaktivieren wird nicht reichen (hat auch nicht gereicht, wenn du die neue Version schon hochgeladen hast). Du darfst laut Fehlermeldung den Kontext vor dem Share nicht aktiviert haben (wie in „jemals zuvor“).
grüße
.o(von mir aus auch zip oder tar.gz; der punkt bei winrar ist, dass man für's packen theoretisch eine lizenz braucht, selbst wenn die meisten leute das einfach ohne lizenz benutzen)
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
oO eigentlich sollte dein PC mehr schaffen... was passiert, wenn du die Werte manuell einstellst (RenderList, MoveObjects, ObjectCount 2000)? Vlt hat sich da n Thread verklemmt, aber eig sin die synchronisiert...
Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
Danke. Paar Sachen werden noch in einem Thread berechnet, nur die Bewegung der Objekte und die Aktualisierung im Octree (Position und Sichtbarkeit) werden mit Threads berechnet. Also deshalb macht sich das auch nur bei vielen Objekten und großer Octreetiefe bemerkbar...
Registriert: Mo Nov 08, 2010 18:41 Beiträge: 769
Programmiersprache: Gestern
Bergmann89 hat geschrieben:
Danke. Paar Sachen werden noch in einem Thread berechnet, nur die Bewegung der Objekte und die Aktualisierung im Octree (Position und Sichtbarkeit) werden mit Threads berechnet. Also deshalb macht sich das auch nur bei vielen Objekten und großer Octreetiefe bemerkbar...
Nu, die Threads scheinen ok zu sein, sah auf dem ersten Blick alles schön gleichmäßig verteilt aus.... achja wenn du willst kann ich dir nochn test für die laptops machen.
Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
Joa klar, immer her damit, ich nehm alles was ich kriegen kann ^^
€: Bin grad dabei die Daten auszuwerten. Dabei hab ich festgestellt, das dein vSync an is. Das mal bitte vor dem Test abschalten, sonst kann ich die Daten nicht verwerten. Danke.
Ich würde gern mehr liefern, aber bei mir hängt sich die Anwendung bei O4_M_2000 auf. Ein paar Debugmeldungen wären nicht schlecht um den Fehler zu finden.
TMainForm.CreateRenderContext - creating render context (Pixelformat = 2) TMainForm.CreateRenderContext - activating render context TMainForm.CreateRenderContext - creating render context (Pixelformat = 2) TMainForm.CreateRenderContext - activating render context shader program created: #0001 shader object created: #0002 shader object created: #0003 Vertex shader was successfully compiled to run on hardware. Fragment shader was successfully compiled to run on hardware. Vertex shader(s) linked, fragment shader(s) linked. Processor 1 Information: AddressWidth : 64 Caption : AMD64 Family 15 Model 67 Stepping 3 CurrentClockSpeed : 3000 Description : AMD64 Family 15 Model 67 Stepping 3 ExtClock : 200 Family : 29 Manufacturer : AuthenticAMD MaxClockSpeed : 3000 Name : AMD Athlon(tm) 64 X2 Dual Core Processor 6000+ NumberOfCores : 2 NumberOfLogicalProcessors: 2 Version : Modell 3, Stepping 3 Video Controller 1 Information: AdapterRAM : 1073741824 Caption : ATI Radeon HD 5800 Series CurrentBitsPerPixel : 32 CurrentHorizontalResolution: 1680 CurrentRefreshRate : 60 CurrentScanMode : 4 CurrentVerticalResolution : 1050 Description : ATI Radeon HD 5800 Series DriverDate : 20120405000000.000000-000 DriverVersion : 8.961.0.0 Name : ATI Radeon HD 5800 Series VideoProcessor : ATI display adapter (0x6899) Li_S_2000: 738 Frames at 10,006495475769043 ms - 73,752094505722191 FPS O2_S_2000: 3201 Frames at 10,002032279968262 ms - 320,03495993617783 FPS O3_S_2000: 3931 Frames at 10,001340866088867 ms - 393,04729762072995 FPS O4_S_2000: 3868 Frames at 10,00202465057373 ms - 386,72170236834259 FPS O5_S_2000: 3386 Frames at 10,002612113952637 ms - 338,51157691868017 FPS Li_M_2000: 556 Frames at 10,003391265869141 ms - 55,581150953980221 FPS O2_M_2000: 942 Frames at 10,003469467163086 ms - 94,167328954435707 FPS O3_M_2000: 876 Frames at 10,024419784545898 ms - 87,386603796309633 FPS O4_M_2000:
Edit:
Weitere Tests haben ergeben, dass die Anwendung auch früher abstürzen kann, jedoch immer bei Move Objects - auch manuell. Unter Wine läuft die Anwendung einwandfrei.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Mitglieder in diesem Forum: 0 Mitglieder und 11 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.