CityMark 0.1 - OpenGL 3D Benchmark

  • Moin (oh, schon 4:44 Uhr ^^)

    Ich will euch mal CityMark vorstellen. Es ist ein kleiner Benchmark, der die Leistung eures Rechners mit AutoIt+OpenGL bewertet. Es sind 5 Tests, die in ihrer Komplexität steigen, beim letzen dürft ihr auch selbst mit steuern.

    Während der Tests wird euch in der Console angezeigt was gerade passiert. Sind alle Tests (~2min) abgeschlossen bekommt ihr so ein nettes Bild:

    Intel Atm N270 mit 1,5Ghz:
    [Blockierte Grafik: http://s05.img-up.net/CityMark_Rbaf3.jpg]

    Intel(R) Core(TM) i5-2557M CPU @ 1.70GHz (1 x 1695MHz):
    [Blockierte Grafik: http://b50.img-up.net/CityMark_R7232.jpg

    Dann viel Spaß (ich bin mal auf die Ergebnisse gespannt!)
    ^^

  • Das liegt dann an dir. Bei mir funktioniert es auf mehreren PCs und der COde sollte eigentlich funktionieren. ^^

    Man sieht ja, das das Bild erstellt wird, auch in der richtigen Länge. Vielleicht hast du in dem Moment woanders hingeklickt ^^

    Einmal editiert, zuletzt von minx (4. Februar 2013 um 10:39)

  • Das Bild am Ende sieht bei mir genauso aus wie das von chip.

    Spoiler anzeigen

    =============== MINX-O-MAT =====================================
    - CPU: AMD Phenom(tm) II X6 1100T Processor (6 x 3315MHz)
    - CPU-Cooldown [====================]
    + Test 1: 478374 points.
    + Test 2: 197560 points.
    + Test 3: 97656 points.
    + Test 4: 234290 points.
    + Test 5: 2120916 points.

  • Hast ja gelesen Alizame liegt nicht am Script sondern an mir bzw. jetzt auch an dir.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Hast ja gelesen Alizame liegt nicht am Script sondern an mir bzw. jetzt auch an dir.

    Der Kommentar hat meinen Tag verschönert :D
    [Blockierte Grafik: http://i.imgur.com/E1PCvpc.png]

  • Hi,

    erstmal nettes kleines Benchmark! Ich find echt super ;)

    Alizame: Netter Prozessor ;)

    Hier mal meine Ergebnisse:

    Code
    - CPU: AMD Phenom(tm) II X6 1055T Processor	(6 x 3220MHz)
    - CPU-Cooldown [====================]
    + Test 1: 465161 points.
    + Test 2: 31880 points.
    + Test 3: 106879 points.
    + Test 4: 18040 points.
    + Test 5: 2108502 points.

    Also insgesamt: 2.730.462 Punkte.

    mfg
    Hauke

  • 8|
    Was denn nu...ich schwöre ich hab nichts angefasst ^^

    Bild1: Ich beim debuggen

  • Dann unterstützt dein System kein 32Bit OpenGL Pixelformat. Tut mir leid ^^.

    Für alle die kein Bild bekommen gibt es ja den Consolenouput, allerdings wirklich höchst merkwürdig, dass keines zu sehen ist.

    chip und die anderen. Ihr könnt ja mal ins Skript schauen, wie das Bild generiert wird. Es ist eine GUI, die mit _ScreenCapture_HWND() abfotografiert wird. Wenn ScreenCap bei euch nicht funktioniert müsst ihr das selbst zusammenzählen ;)

  • Deine Grafikarte / dein Prozessor kommt nicht mit dem OpenGL Pixelformat klar. Das ist kein Problem, was sich beheben lässt ^^ (oder deine Schuld ist)

    @Bildlosen. Baut einfach ein Sleep oder so ein, bevor das Programm beendet wird, dann seht ihr das Pixelbadge noch.

  • Hier mal meiner Werte :

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Hi,

    - CPU: AMD Athlon(tm) II X2 250 Processor (2 x 3013MHz)
    - CPU-Cooldown [====================]
    + Test 1: 156238 points.
    + Test 2: 58620 points.
    + Test 3: 25770 points.
    + Test 4: 9400 points.
    + Test 5: 753372 points.

    ohne Probleme auf XP32

    Allerdings habe ich, wie schon bei deinen anderen GL-Scripten, auf WIN7-64 Probleme in der Darstellung.
    Das GL_Fenster wird erstellt und die Grafik ist "sichtbar", allerdings ohne Farben und nur jeder 4. Pixel (grautöne). Gleichzeitig durchzieht ein "Sägezahn"-Muster das Bild.
    Definitiv stimmt da etwas nicht mit dem Pixelformat. Habe schon alle möglichen Einstellungen in deiner UDF geändert, allerdings finde ich den Fehler nicht.
    Bei anderen OpenGL_Programmen und auch AutoIt-Scripten mit GL treten diese Darstellungsfehler nicht auf....
    Daher vermute ich den Fehler in einer der Extensions, bzw. der AU3- Umsetzung in der UDF.
    Treiber/SDK´s usw habe ich schon alle durch^^.
    Seltsamerweise kann ich das Pixelformat nicht "zu Fuß" beeinflussen! (zusammen mit deiner UDF).
    Ich werde mich mal mit wglChoosePixelFormatARB beschäftigen, ggf. bringt das etwas.
    Die "alte" Variante habe ich mal nach AutoIt portiert, funktioniert so in div. C++-Programmen auf Win7-64 einwandfrei, aber in Kombination mit deiner UDF eben nicht...

    Spoiler anzeigen
    [autoit]

    Func _EnableOpenGL(ByRef $hDeviceContext, ByRef $hOPENGL32RenderingContext)

    [/autoit] [autoit][/autoit] [autoit]

    Local $tPIXELFORMATDESCRIPTOR = DllStructCreate("ushort Size;" & _
    "ushort Version;" & _
    "dword Flags;" & _
    "ubyte PixelType;" & _
    "ubyte ColorBits;" & _
    "ubyte RedBits;" & _
    "ubyte RedShift;" & _
    "ubyte GreenBits;" & _
    "ubyte GreenShift;" & _
    "ubyte BlueBits;" & _
    "ubyte BlueShift;" & _
    "ubyte AlphaBits;" & _
    "ubyte AlphaShift;" & _
    "ubyte AccumBits;" & _
    "ubyte AccumRedBits;" & _
    "ubyte AccumGreenBits;" & _
    "ubyte AccumBlueBits;" & _
    "ubyte AccumAlphaBits;" & _
    "ubyte DepthBits;" & _
    "ubyte StencilBits;" & _
    "ubyte AuxBuffers;" & _
    "ubyte LayerType;" & _
    "ubyte Reserved;" & _
    "dword LayerMask;" & _
    "dword VisibleMask;" & _
    "dword DamageMask")

    [/autoit] [autoit][/autoit] [autoit]

    DllStructSetData($tPIXELFORMATDESCRIPTOR, "Size", DllStructGetSize($tPIXELFORMATDESCRIPTOR))
    DllStructSetData($tPIXELFORMATDESCRIPTOR, "Version", $GL_VERSION_1_1)
    DllStructSetData($tPIXELFORMATDESCRIPTOR, "Flags", BitOR($PFD_DRAW_TO_WINDOW, $PFD_SUPPORT_OPENGL, $PFD_DOUBLEBUFFER))
    DllStructSetData($tPIXELFORMATDESCRIPTOR, "PixelType", $PFD_TYPE_RGBA)
    DllStructSetData($tPIXELFORMATDESCRIPTOR, "ColorBits", 24)
    DllStructSetData($tPIXELFORMATDESCRIPTOR, "DepthBits", 32)
    DllStructSetData($tPIXELFORMATDESCRIPTOR, "LayerType", $PFD_MAIN_PLANE)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Local $a_iCall = DllCall($hGDI32, "int", "ChoosePixelFormat", "hwnd", $hDeviceContext, "ptr", DllStructGetPtr($tPIXELFORMATDESCRIPTOR))
    If @error Or Not $a_iCall[0] Then
    Return SetError(2, 0, 0) ; could not match an appropriate pixel format
    EndIf
    Local $iFormat = $a_iCall[0]

    [/autoit] [autoit][/autoit] [autoit]

    $a_iCall = DllCall($hGDI32, "int", "SetPixelFormat", "hwnd", $hDeviceContext, "int", $iFormat, "ptr", DllStructGetPtr($tPIXELFORMATDESCRIPTOR))
    If @error Or Not $a_iCall[0] Then
    Return SetError(3, 0, 0) ; could not set the pixel format of the specified device context to the specified format
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $a_hCall = DllCall($hOPENGL32, "hwnd", "wglCreateContext", "hwnd", $hDeviceContext)
    If @error Or Not $a_hCall[0] Then
    Return SetError(4, 0, 0) ; could not create a rendering context
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $hOPENGL32RenderingContext = $a_hCall[0]
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $hOPENGL32RenderingContext = ' & $hOPENGL32RenderingContext & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console

    [/autoit] [autoit][/autoit] [autoit]

    $a_iCall = DllCall($hOPENGL32, "int", "wglMakeCurrent", "hwnd", $hDeviceContext, "hwnd", $hOPENGL32RenderingContext)
    If @error Or Not $a_iCall[0] Then
    Return SetError(5, 0, 0) ; failed to make the specified rendering context the calling thread's current rendering context
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Return SetError(0, 0, 1) ; all OK!

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_EnableOpenGL

    [/autoit]
  • Auch hier mal meine Werte mit meinem Notebook:

    - CPU: AMD Athlon(tm)X2 DualCore QL-66 (2 x 2200MHz)
    - CPU-Cooldown [====================]
    + Test 1: 135148 points.
    + Test 2: 100170 points.
    + Test 3: 50456 points.
    + Test 4: 52210 points.
    + Test 5: 640798 points.

    P.S:
    Ich Denke ich habe auch ein Ähnliches 'Problem' mit der Darstellung unter Win7x64 wie Andy. Bei mir sehen die Benchmarks (bis auf dem letzten) irgendwie etwas Pixelig aus...
    Auch wird bei mir die Grafik nur so wie bei Chip erstellt, trotz eines Sleeps zwischen dem Erstellen der Grafik und dessen Anzeige. Vorher, nach beendigung des letzten Benchmarks (mit dem Hubschrauberfluges) bleibt der Bildschirm solange schwarz bis ich Alt+F4 drücke.

    Aber sonst finde ich das wirklich eine gute Idee!

  • Dann sag das doch gleich ^^. Du könntest auch einfach deinem Script diese Präprozessoranweisug hinzufügen:

    [autoit]

    #AutoIt3Wrapper_UseX64=0

    [/autoit]


    Mein Ergebnis: autoit.de/wcf/attachment/18917/

    Und hier die Konsolenausgabe (Meine CPU läuft eigentlich mit 4 GHz):

    Konsole

    =============== MINX-O-MAT =====================================
    - CPU: Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz (4 x 3300MHz)
    - CPU-Cooldown [====================]
    + Test 1: 782132 points.
    + Test 2: 31850 points.
    + Test 3: 168999 points.
    + Test 4: 18030 points.
    + Test 5: 3442792 points.


    Jetzt da ich das ganze auch sehen konnte: Tolle Leistung minx :D. Das Programm gefällt mir, aber an der Generierung des Bildes mit der Punktzahl könntest du noch feilen :P.