diff options
author | Sven Gothel <[email protected]> | 2023-03-07 04:05:10 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2023-03-07 04:05:10 +0100 |
commit | 14a47f60d2dc7c4f6b2d910fcc8489726443db22 (patch) | |
tree | 22a766ffe9424cd60855c4b5502afa10349966ae | |
parent | fb03e913c0c55a9a96e93a00ef6590b9bea9a62a (diff) |
Graph Perf Test: {Test->Perf}TextRendererNEWT00: Drop junit, ... (WIP)
Also tested w/ alternative JVM (Azul) .. works well, no big difference (but slower startup time, but might be OpenJDK 17->19 related as well).
Printing usual system infos to make the test record useful.
Cmdline is: com.jogamp.opengl.test.junit.graph.PerfTextRendererNEWT00 -es2 -Nperf -long_text -loop 40
-rw-r--r-- | doc/curve/tests/perf01/pc_7.log | 184 | ||||
-rw-r--r-- | doc/curve/tests/perf01/pc_8.log | 184 | ||||
-rw-r--r-- | doc/curve/tests/perf01/rpi4_7.log | 170 | ||||
-rw-r--r-- | doc/curve/tests/perf01/rpi4_8.log | 170 | ||||
-rwxr-xr-x | make/scripts/tests-linux-aarch64.sh | 9 | ||||
-rwxr-xr-x | make/scripts/tests-win.bat | 2 | ||||
-rwxr-xr-x | make/scripts/tests-x64.sh | 5 | ||||
-rw-r--r-- | make/scripts/tests.sh | 6 | ||||
-rw-r--r-- | src/test/com/jogamp/opengl/test/junit/graph/PerfTextRendererNEWT00.java (renamed from src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT00.java) | 122 | ||||
-rw-r--r-- | src/test/com/jogamp/opengl/test/junit/util/MiscUtils.java | 8 |
10 files changed, 780 insertions, 80 deletions
diff --git a/doc/curve/tests/perf01/pc_7.log b/doc/curve/tests/perf01/pc_7.log new file mode 100644 index 000000000..8dad92f4a --- /dev/null +++ b/doc/curve/tests/perf01/pc_7.log @@ -0,0 +1,184 @@ +./scripts/tests-x64.sh +FOUND_JAVA 1 +J2RE_HOME /usr/lib/jvm/java-17-openjdk-amd64 +JAVA_HOME /usr/lib/jvm/java-17-openjdk-amd64 +PATH /usr/lib/jvm/java-17-openjdk-amd64/bin:/opt-share/apache-ant/bin:/home/sven/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games +/usr/lib/jvm/java-17-openjdk-amd64/bin/java +openjdk version "17.0.6" 2023-01-17 +OpenJDK Runtime Environment (build 17.0.6+10-Debian-1deb11u1) +OpenJDK 64-Bit Server VM (build 17.0.6+10-Debian-1deb11u1, mixed mode, sharing) +GLUEGEN BUILDDIR: ../../gluegen/make/../build-x86_64 +JOAL BUILDDIR: ../../joal/build-x86_64 +JOGL DIR: ../build-x86_64/.. +JOGL BUILDDIR: ../build-x86_64 +JOGL BUILDDIR BASE: build-x86_64 +JOGL PROFILE: JOGL_ALL +Linux risa 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1 (2023-01-21) x86_64 GNU/Linux +JOGAMP_ALL_AWT_CLASSPATH: .:../../gluegen/make/../build-x86_64/gluegen-rt.jar:../../joal/build-x86_64/jar/joal.jar:../build-x86_64/jar/jogl-all.jar:../build-x86_64/jar/atomic/oculusvr.jar:../build-x86_64/jar/jogl-test.jar:/usr/local/projects/JogAmp/jogl/make/lib/swt/gtk-linux-x86_64/swt.jar:../../gluegen/make/../make/lib/junit.jar:/opt-share/apache-ant/lib/ant.jar:/opt-share/apache-ant/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-x86_64/gluegen-test-util.jar +JOGAMP_ALL_NOAWT_CLASSPATH: .:../../gluegen/make/../build-x86_64/gluegen-rt.jar:../../joal/build-x86_64/jar/joal.jar:../build-x86_64/jar/jogl-all-noawt.jar:../build-x86_64/jar/atomic/oculusvr.jar:../build-x86_64/jar/jogl-test.jar:/usr/local/projects/JogAmp/jogl/make/lib/swt/gtk-linux-x86_64/swt.jar:../../gluegen/make/../make/lib/junit.jar:/opt-share/apache-ant/lib/ant.jar:/opt-share/apache-ant/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-x86_64/gluegen-test-util.jar +JOGAMP_MOBILE_CLASSPATH: .:../../gluegen/make/../build-x86_64/gluegen-rt.jar:../../joal/build-x86_64/jar/joal.jar:../build-x86_64/jar/jogl-all-mobile.jar:../build-x86_64/jar/atomic/oculusvr.jar:../build-x86_64/jar/jogl-test.jar:/usr/local/projects/JogAmp/jogl/make/lib/swt/gtk-linux-x86_64/swt.jar:../../gluegen/make/../make/lib/junit.jar:/opt-share/apache-ant/lib/ant.jar:/opt-share/apache-ant/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-x86_64/gluegen-test-util.jar +JOGAMP_CLASSPATH: .:../../gluegen/make/../build-x86_64/gluegen-rt.jar:../../joal/build-x86_64/jar/joal.jar:../build-x86_64/jar/jogl-all.jar:../build-x86_64/jar/atomic/oculusvr.jar:../build-x86_64/jar/jogl-test.jar:/usr/local/projects/JogAmp/jogl/make/lib/swt/gtk-linux-x86_64/swt.jar:../../gluegen/make/../make/lib/junit.jar:/opt-share/apache-ant/lib/ant.jar:/opt-share/apache-ant/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-x86_64/gluegen-test-util.jar +JOGAMP_LD_LIBRARY_PATH: :../../gluegen/make/../build-x86_64/obj:../build-x86_64/lib +JOGAMP_DYLD_LIBRARY_PATH: :../../gluegen/make/../build-x86_64/obj:../build-x86_64/lib + +MacOSX REMEMBER to add the JVM arguments -XstartOnFirstThread -Djava.awt.headless=true for running demos without AWT, e.g. NEWT +MacOSX REMEMBER to add the JVM arguments -XstartOnFirstThread -Djava.awt.headless=true com.jogamp.newt.util.MainThread for running demos with NEWT +/usr/lib/jvm/java-17-openjdk-amd64/bin/java +openjdk version "17.0.6" 2023-01-17 +OpenJDK Runtime Environment (build 17.0.6+10-Debian-1deb11u1) +OpenJDK 64-Bit Server VM (build 17.0.6+10-Debian-1deb11u1, mixed mode, sharing) +LD_LIBRARY_PATH +LIBXCB_ALLOW_SLOPPY_LOCK: +LIBGL_DRIVERS_PATH: +LIBGL_DEBUG: +LIBGL_ALWAYS_INDIRECT: +LIBGL_ALWAYS_SOFTWARE: +SWT_CLASSPATH: /usr/local/projects/JogAmp/jogl/make/lib/swt/gtk-linux-x86_64/swt.jar +MacOsX 0 +DISPLAY :0 +WAYLAND_DISPLAY +USE_BUILDDIR 0 +USE_CLASSPATH .:../../gluegen/make/../build-x86_64/gluegen-rt.jar:../../joal/build-x86_64/jar/joal.jar:../build-x86_64/jar/jogl-all-noawt.jar:../build-x86_64/jar/atomic/oculusvr.jar:../build-x86_64/jar/jogl-test.jar:/usr/local/projects/JogAmp/jogl/make/lib/swt/gtk-linux-x86_64/swt.jar:../../gluegen/make/../make/lib/junit.jar:/opt-share/apache-ant/lib/ant.jar:/opt-share/apache-ant/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-x86_64/gluegen-test-util.jar + +Test Start: com.jogamp.opengl.test.junit.graph.PerfTextRendererNEWT00 -es2 -Nperf -long_text -loop 40 + +__GL_THREADED_OPTIMIZATIONS + +/usr/lib/jvm/java-17-openjdk-amd64/bin/java -DummyArg --add-opens java.desktop/sun.awt=ALL-UNNAMED --add-opens java.desktop/sun.java2d=ALL-UNNAMED -Djava.awt.headless=true -cp .:../../gluegen/make/../build-x86_64/gluegen-rt.jar:../../joal/build-x86_64/jar/joal.jar:../build-x86_64/jar/jogl-all-noawt.jar:../build-x86_64/jar/atomic/oculusvr.jar:../build-x86_64/jar/jogl-test.jar:/usr/local/projects/JogAmp/jogl/make/lib/swt/gtk-linux-x86_64/swt.jar:../../gluegen/make/../make/lib/junit.jar:/opt-share/apache-ant/lib/ant.jar:/opt-share/apache-ant/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-x86_64/gluegen-test-util.jar com.jogamp.opengl.test.junit.graph.PerfTextRendererNEWT00 -es2 -Nperf -long_text -loop 40 +Performance test enabled: false +----------------------------------------------------------------------------------------------------- +Platform: LINUX / Linux 5.10.0-21-amd64 (5.10.0), amd64 (X86_64, GENERIC_ABI), 32 cores, littleEndian true +MachineDataInfo: runtimeValidated true, 32Bit false, primitive size / alignment: + int8 1 / 1, int16 2 / 2 + int 4 / 4, long 8 / 8 + int32 4 / 4, int64 8 / 8 + float 4 / 4, double 8 / 8, ldouble 16 / 16 + pointer 8 / 8, page 4096 +Platform: Java Version: 17.0.6 (17.0.6u0), VM: OpenJDK 64-Bit Server VM, Runtime: OpenJDK Runtime Environment +Platform: Java Vendor: Debian, https://tracker.debian.org/openjdk-17, Java17, dynamicLib: true, AWT enabled: false +----------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------- +Package: com.jogamp.opengl +Extension Name: com.jogamp.opengl +Specification Title: Java Bindings for OpenGL API Specification +Specification Vendor: JogAmp Community +Specification Version: 2.5 +Implementation Title: Java Bindings for OpenGL Runtime Environment +Implementation Vendor: JogAmp Community +Implementation Vendor ID: com.jogamp +Implementation URL: http://jogamp.org/ +Implementation Version: 2.5.0-rc-20230307 +Implementation Build: 2.5-bmanual-20230307 +Implementation Branch: master +Implementation Commit: fb03e913c0c55a9a96e93a00ef6590b9bea9a62a +Implementation SHA Sources: null +Implementation SHA Classes: null +Implementation SHA Classes-this: null +Implementation SHA Natives: null +Implementation SHA Natives-this: null +----------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------- +EGLGraphicsDevice[type .egl, v1.5.0, nativeDisplayID 0x7f7b3401dc60, connection :0, unitID 0, handle 0x7f7b3401f6a0, owner true, ResourceToolkitLock[obj 0x32a068d1, isOwner true, <33cb5951, 365c30cc>[count 1, qsz 0, owner <main>]]]: + Natives + GL4bc true [4.6 (Compat profile, arb, compat[ES2, ES3, ES31], FBO, hardware)] + GL4 true [4.6 (Core profile, arb, compat[ES2, ES3, ES31, ES32], FBO, hardware)] + GLES3 true [3.2 (ES profile, arb, compat[ES2, ES3, ES31, ES32], FBO, hardware)] + GL3bc true [4.6 (Compat profile, arb, compat[ES2, ES3, ES31], FBO, hardware)] + GL3 true [4.6 (Core profile, arb, compat[ES2, ES3, ES31, ES32], FBO, hardware)] + GL2 true [4.6 (Compat profile, arb, compat[ES2, ES3, ES31], FBO, hardware)] + GLES2 true [3.2 (ES profile, arb, compat[ES2, ES3, ES31, ES32], FBO, hardware)] + GLES1 true [1.1 (ES profile, arb, compat[FP32], hardware)] + Count 8 / 8 + Common + GL4ES3 true + GL2GL3 true + GL2ES2 true + GL2ES1 true + Mappings + GL3bc GLProfile[GL3bc/GL4bc.hw] + GL2 GLProfile[GL2/GL4bc.hw] + GLES3 GLProfile[GLES3/GLES3.hw] + GL4 GLProfile[GL4/GL4.hw] + GL3 GLProfile[GL3/GL4.hw] + GL2GL3 GLProfile[GL2GL3/GL4bc.hw] + GLES1 GLProfile[GLES1/GLES1.hw] + GLES2 GLProfile[GLES2/GLES3.hw] + GL2ES1 GLProfile[GL2ES1/GL4bc.hw] + GL4ES3 GLProfile[GL4ES3/GL4.hw] + GL2ES2 GLProfile[GL2ES2/GL4.hw] + GL4bc GLProfile[GL4bc/GL4bc.hw] + default GLProfile[GL4bc/GL4bc.hw] + Count 12 / 12 + +Swap Interval 1 +GL Profile GLProfile[GLES3/GLES3.hw] +GL Version 3.2 (ES profile, arb, compat[ES2, ES3, ES31, ES32], FBO, hardware) - OpenGL ES 3.2 Mesa 20.3.5 [GL 3.2.0, vendor 20.3.5 (Mesa 20.3.5)] +Quirks [No10BitColorCompOffscreen] +Impl. class jogamp.opengl.es3.GLES3Impl +GL_VENDOR AMD +GL_RENDERER AMD Radeon RX 5700 XT (NAVI10, DRM 3.40.0, 5.10.0-21-amd64, LLVM 11.0.1) +GL_VERSION OpenGL ES 3.2 Mesa 20.3.5 +GLSL true, has-compiler-func: true, version: OpenGL ES GLSL ES 3.20 / 3.0.0 +GL FBO: basic true, full true +GL_EXTENSIONS 140 +GLX_EXTENSIONS 49 +----------------------------------------------------------------------------------------------------- +Requested Caps: GLCaps[rgba 8/8/8/4, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono , hw, GLProfile[GLES2/GLES3.hw], on-scr[.]] +Requested Region-RenderModes: vbaa +Chosen Caps: GLCaps[egl cfg 0x2, vid 0x21: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono , hw, GLProfile[GLES2/GLES3.hw], on-scr[.], [0x4d: GL, GLES1, GLES2, GLES3, VG]] +Chosen Font: FreeSans-Regular +Perf: Elapsed since startup: 437 [ms], 437,881,796 [ns] +- monotonic startup 1970-01-18T10:59:19.972981364Z, 1,508,359,972 [ms] +- monotonic current 1970-01-18T10:59:20.410863160Z, 1,508,360,410 [ms] +- wall current 2023-03-07T02:46:46.183817149Z +- currentNanos: Elapsed 440,229,208 [ns] + - test-startup 76,732 [ns] + - test-current 440,305,940 [ns] +Text_1: tbox [ dim 54.787003 x 16.547 x 0.0, box 0.015000001 / -15.818001 / 0.0 .. 54.802002 / 0.72900003 / 0.0, ctr 27.4085 / -7.5445004 / 0.0 ] +Text_1: rbox [ dim 54.787006 x 16.546999 x 0.0, box 1.986 / -15.817999 / 0.0 .. 56.773006 / 0.729 / 0.0, ctr 29.379503 / -7.5444994 / 0.0 ] + + + 1: Perf Launch: +- loading GlueGen - loading test 0 [ms] +- loading GlueGen - start test 285 [ms] +- loading test - start test 284 [ms] +- loading test - gl 440 [ms] +- loading test - graph 441 [ms] +- loading test - txt 486 [ms] +- loading test - draw 506 [ms] + 1 / 1: Perf Launch: Total: graph 0, txt 44, draw 20, txt+draw 65 [ms] + 1 / 1: Perf Launch: PerLoop: graph 889,100, txt 44,841,214, draw 20,479,677, txt+draw 65,320,891 [ns] +GLRegion: for GLProfile[GLES3/GLES3.hw] using int32_t indiced: true +GLRegion: Region[vbaa, q 1, dirty 0, vertices 81092, box [ dim 54.787006 x 16.546999 x 0.0, box 1.986 / -15.817999 / 0.0 .. 56.773006 / 0.729 / 0.0, ctr 29.379503 / -7.5444994 / 0.0 ]] +Text length: 1296 +VBORegion2PVBAAES2: idx32 true + indices [elements 42,409 / 46,656, bytes 508,908 / 559,872, filled 90.9%, left 9.1%] + vertices [elements 81,092 / 88,128, bytes 973,104 / 1,057,536, filled 92.0%, left 8.0%] + params [elements 81,092 / 88,128, bytes 973,104 / 1,057,536, filled 92.0%, left 8.0%] + color [null] + total [bytes 2,455,116 / 2,674,944], filled 91.8%, left 8.2%] + 1 / 1: Perf Frame1: Total: graph 0, txt 44, draw 20, txt+draw 65 [ms] + 1 / 1: Perf Frame1: PerLoop: graph 889,100, txt 44,841,214, draw 20,479,677, txt+draw 65,320,891 [ns] + 20 / 20: Perf Frame20: Total: graph 209, txt 104, draw 27, txt+draw 132 [ms] + 20 / 20: Perf Frame20: PerLoop: graph 10,489,120, txt 5,233,011, draw 1,397,265, txt+draw 6,630,277 [ns] +GLRegion: for GLProfile[GLES3/GLES3.hw] using int32_t indiced: true +GLRegion: Region[vbaa, q 1, dirty 0, vertices 81092, box [ dim 54.787006 x 16.546999 x 0.0, box 1.986 / -15.817999 / 0.0 .. 56.773006 / 0.729 / 0.0, ctr 29.379503 / -7.5444994 / 0.0 ]] +Text length: 1296 +VBORegion2PVBAAES2: idx32 true + indices [elements 42,409 / 46,656, bytes 508,908 / 559,872, filled 90.9%, left 9.1%] + vertices [elements 81,092 / 88,128, bytes 973,104 / 1,057,536, filled 92.0%, left 8.0%] + params [elements 81,092 / 88,128, bytes 973,104 / 1,057,536, filled 92.0%, left 8.0%] + color [null] + total [bytes 2,455,116 / 2,674,944], filled 91.8%, left 8.2%] + 20 / 40: Perf Frame40: Total: graph 256, txt 67, draw 6, txt+draw 74 [ms] + 20 / 40: Perf Frame40: PerLoop: graph 12,843,025, txt 3,353,278, draw 348,358, txt+draw 3,701,637 [ns] +** new frame ** (sleep: 100ms) + +Test End: com.jogamp.opengl.test.junit.graph.PerfTextRendererNEWT00 -es2 -Nperf -long_text -loop 40 + +EDT START + 0 0 0 +EDT END + 0 0 0 +EDT EXIT + 0 0 0 diff --git a/doc/curve/tests/perf01/pc_8.log b/doc/curve/tests/perf01/pc_8.log new file mode 100644 index 000000000..d43ee865e --- /dev/null +++ b/doc/curve/tests/perf01/pc_8.log @@ -0,0 +1,184 @@ +./scripts/tests-x64.sh +FOUND_JAVA 1 +J2RE_HOME /usr/lib/jvm/java-17-openjdk-amd64 +JAVA_HOME /usr/lib/jvm/java-17-openjdk-amd64 +PATH /usr/lib/jvm/java-17-openjdk-amd64/bin:/opt-share/apache-ant/bin:/home/sven/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games +/usr/lib/jvm/java-17-openjdk-amd64/bin/java +openjdk version "17.0.6" 2023-01-17 +OpenJDK Runtime Environment (build 17.0.6+10-Debian-1deb11u1) +OpenJDK 64-Bit Server VM (build 17.0.6+10-Debian-1deb11u1, mixed mode, sharing) +GLUEGEN BUILDDIR: ../../gluegen/make/../build-x86_64 +JOAL BUILDDIR: ../../joal/build-x86_64 +JOGL DIR: ../build-x86_64/.. +JOGL BUILDDIR: ../build-x86_64 +JOGL BUILDDIR BASE: build-x86_64 +JOGL PROFILE: JOGL_ALL +Linux risa 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1 (2023-01-21) x86_64 GNU/Linux +JOGAMP_ALL_AWT_CLASSPATH: .:../../gluegen/make/../build-x86_64/gluegen-rt.jar:../../joal/build-x86_64/jar/joal.jar:../build-x86_64/jar/jogl-all.jar:../build-x86_64/jar/atomic/oculusvr.jar:../build-x86_64/jar/jogl-test.jar:/usr/local/projects/JogAmp/jogl/make/lib/swt/gtk-linux-x86_64/swt.jar:../../gluegen/make/../make/lib/junit.jar:/opt-share/apache-ant/lib/ant.jar:/opt-share/apache-ant/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-x86_64/gluegen-test-util.jar +JOGAMP_ALL_NOAWT_CLASSPATH: .:../../gluegen/make/../build-x86_64/gluegen-rt.jar:../../joal/build-x86_64/jar/joal.jar:../build-x86_64/jar/jogl-all-noawt.jar:../build-x86_64/jar/atomic/oculusvr.jar:../build-x86_64/jar/jogl-test.jar:/usr/local/projects/JogAmp/jogl/make/lib/swt/gtk-linux-x86_64/swt.jar:../../gluegen/make/../make/lib/junit.jar:/opt-share/apache-ant/lib/ant.jar:/opt-share/apache-ant/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-x86_64/gluegen-test-util.jar +JOGAMP_MOBILE_CLASSPATH: .:../../gluegen/make/../build-x86_64/gluegen-rt.jar:../../joal/build-x86_64/jar/joal.jar:../build-x86_64/jar/jogl-all-mobile.jar:../build-x86_64/jar/atomic/oculusvr.jar:../build-x86_64/jar/jogl-test.jar:/usr/local/projects/JogAmp/jogl/make/lib/swt/gtk-linux-x86_64/swt.jar:../../gluegen/make/../make/lib/junit.jar:/opt-share/apache-ant/lib/ant.jar:/opt-share/apache-ant/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-x86_64/gluegen-test-util.jar +JOGAMP_CLASSPATH: .:../../gluegen/make/../build-x86_64/gluegen-rt.jar:../../joal/build-x86_64/jar/joal.jar:../build-x86_64/jar/jogl-all.jar:../build-x86_64/jar/atomic/oculusvr.jar:../build-x86_64/jar/jogl-test.jar:/usr/local/projects/JogAmp/jogl/make/lib/swt/gtk-linux-x86_64/swt.jar:../../gluegen/make/../make/lib/junit.jar:/opt-share/apache-ant/lib/ant.jar:/opt-share/apache-ant/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-x86_64/gluegen-test-util.jar +JOGAMP_LD_LIBRARY_PATH: :../../gluegen/make/../build-x86_64/obj:../build-x86_64/lib +JOGAMP_DYLD_LIBRARY_PATH: :../../gluegen/make/../build-x86_64/obj:../build-x86_64/lib + +MacOSX REMEMBER to add the JVM arguments -XstartOnFirstThread -Djava.awt.headless=true for running demos without AWT, e.g. NEWT +MacOSX REMEMBER to add the JVM arguments -XstartOnFirstThread -Djava.awt.headless=true com.jogamp.newt.util.MainThread for running demos with NEWT +/opt-linux-x86_64/zulu19.32.13-ca-jdk19.0.2-linux_x64/bin/java +openjdk version "19.0.2" 2023-01-17 +OpenJDK Runtime Environment Zulu19.32+13-CA (build 19.0.2+7) +OpenJDK 64-Bit Server VM Zulu19.32+13-CA (build 19.0.2+7, mixed mode, sharing) +LD_LIBRARY_PATH +LIBXCB_ALLOW_SLOPPY_LOCK: +LIBGL_DRIVERS_PATH: +LIBGL_DEBUG: +LIBGL_ALWAYS_INDIRECT: +LIBGL_ALWAYS_SOFTWARE: +SWT_CLASSPATH: /usr/local/projects/JogAmp/jogl/make/lib/swt/gtk-linux-x86_64/swt.jar +MacOsX 0 +DISPLAY :0 +WAYLAND_DISPLAY +USE_BUILDDIR 0 +USE_CLASSPATH .:../../gluegen/make/../build-x86_64/gluegen-rt.jar:../../joal/build-x86_64/jar/joal.jar:../build-x86_64/jar/jogl-all-noawt.jar:../build-x86_64/jar/atomic/oculusvr.jar:../build-x86_64/jar/jogl-test.jar:/usr/local/projects/JogAmp/jogl/make/lib/swt/gtk-linux-x86_64/swt.jar:../../gluegen/make/../make/lib/junit.jar:/opt-share/apache-ant/lib/ant.jar:/opt-share/apache-ant/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-x86_64/gluegen-test-util.jar + +Test Start: com.jogamp.opengl.test.junit.graph.PerfTextRendererNEWT00 -es2 -Nperf -long_text -loop 40 + +__GL_THREADED_OPTIMIZATIONS + +/opt-linux-x86_64/zulu19.32.13-ca-jdk19.0.2-linux_x64/bin/java -DummyArg --add-opens java.desktop/sun.awt=ALL-UNNAMED --add-opens java.desktop/sun.java2d=ALL-UNNAMED -Djava.awt.headless=true -cp .:../../gluegen/make/../build-x86_64/gluegen-rt.jar:../../joal/build-x86_64/jar/joal.jar:../build-x86_64/jar/jogl-all-noawt.jar:../build-x86_64/jar/atomic/oculusvr.jar:../build-x86_64/jar/jogl-test.jar:/usr/local/projects/JogAmp/jogl/make/lib/swt/gtk-linux-x86_64/swt.jar:../../gluegen/make/../make/lib/junit.jar:/opt-share/apache-ant/lib/ant.jar:/opt-share/apache-ant/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-x86_64/gluegen-test-util.jar com.jogamp.opengl.test.junit.graph.PerfTextRendererNEWT00 -es2 -Nperf -long_text -loop 40 +Performance test enabled: false +----------------------------------------------------------------------------------------------------- +Platform: LINUX / Linux 5.10.0-21-amd64 (5.10.0), amd64 (X86_64, GENERIC_ABI), 32 cores, littleEndian true +MachineDataInfo: runtimeValidated true, 32Bit false, primitive size / alignment: + int8 1 / 1, int16 2 / 2 + int 4 / 4, long 8 / 8 + int32 4 / 4, int64 8 / 8 + float 4 / 4, double 8 / 8, ldouble 16 / 16 + pointer 8 / 8, page 4096 +Platform: Java Version: 19.0.2 (19.0.2u0), VM: OpenJDK 64-Bit Server VM, Runtime: OpenJDK Runtime Environment +Platform: Java Vendor: Azul Systems, Inc., http://www.azul.com/, Java17, dynamicLib: true, AWT enabled: false +----------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------- +Package: com.jogamp.opengl +Extension Name: com.jogamp.opengl +Specification Title: Java Bindings for OpenGL API Specification +Specification Vendor: JogAmp Community +Specification Version: 2.5 +Implementation Title: Java Bindings for OpenGL Runtime Environment +Implementation Vendor: JogAmp Community +Implementation Vendor ID: com.jogamp +Implementation URL: http://jogamp.org/ +Implementation Version: 2.5.0-rc-20230307 +Implementation Build: 2.5-bmanual-20230307 +Implementation Branch: master +Implementation Commit: fb03e913c0c55a9a96e93a00ef6590b9bea9a62a +Implementation SHA Sources: null +Implementation SHA Classes: null +Implementation SHA Classes-this: null +Implementation SHA Natives: null +Implementation SHA Natives-this: null +----------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------- +EGLGraphicsDevice[type .egl, v1.5.0, nativeDisplayID 0x7f66bc03d480, connection :0, unitID 0, handle 0x7f66bc03e730, owner true, ResourceToolkitLock[obj 0x1176dcec, isOwner true, <120d6fe6, 4ba2ca36>[count 1, qsz 0, owner <main>]]]: + Natives + GL4bc true [4.6 (Compat profile, arb, compat[ES2, ES3, ES31], FBO, hardware)] + GL4 true [4.6 (Core profile, arb, compat[ES2, ES3, ES31, ES32], FBO, hardware)] + GLES3 true [3.2 (ES profile, arb, compat[ES2, ES3, ES31, ES32], FBO, hardware)] + GL3bc true [4.6 (Compat profile, arb, compat[ES2, ES3, ES31], FBO, hardware)] + GL3 true [4.6 (Core profile, arb, compat[ES2, ES3, ES31, ES32], FBO, hardware)] + GL2 true [4.6 (Compat profile, arb, compat[ES2, ES3, ES31], FBO, hardware)] + GLES2 true [3.2 (ES profile, arb, compat[ES2, ES3, ES31, ES32], FBO, hardware)] + GLES1 true [1.1 (ES profile, arb, compat[FP32], hardware)] + Count 8 / 8 + Common + GL4ES3 true + GL2GL3 true + GL2ES2 true + GL2ES1 true + Mappings + GL3bc GLProfile[GL3bc/GL4bc.hw] + GL2 GLProfile[GL2/GL4bc.hw] + GLES3 GLProfile[GLES3/GLES3.hw] + GL4 GLProfile[GL4/GL4.hw] + GL3 GLProfile[GL3/GL4.hw] + GL2GL3 GLProfile[GL2GL3/GL4bc.hw] + GLES1 GLProfile[GLES1/GLES1.hw] + GLES2 GLProfile[GLES2/GLES3.hw] + GL2ES1 GLProfile[GL2ES1/GL4bc.hw] + GL4ES3 GLProfile[GL4ES3/GL4.hw] + GL2ES2 GLProfile[GL2ES2/GL4.hw] + GL4bc GLProfile[GL4bc/GL4bc.hw] + default GLProfile[GL4bc/GL4bc.hw] + Count 12 / 12 + +Swap Interval 1 +GL Profile GLProfile[GLES3/GLES3.hw] +GL Version 3.2 (ES profile, arb, compat[ES2, ES3, ES31, ES32], FBO, hardware) - OpenGL ES 3.2 Mesa 20.3.5 [GL 3.2.0, vendor 20.3.5 (Mesa 20.3.5)] +Quirks [No10BitColorCompOffscreen] +Impl. class jogamp.opengl.es3.GLES3Impl +GL_VENDOR AMD +GL_RENDERER AMD Radeon RX 5700 XT (NAVI10, DRM 3.40.0, 5.10.0-21-amd64, LLVM 11.0.1) +GL_VERSION OpenGL ES 3.2 Mesa 20.3.5 +GLSL true, has-compiler-func: true, version: OpenGL ES GLSL ES 3.20 / 3.0.0 +GL FBO: basic true, full true +GL_EXTENSIONS 140 +GLX_EXTENSIONS 49 +----------------------------------------------------------------------------------------------------- +Requested Caps: GLCaps[rgba 8/8/8/4, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono , hw, GLProfile[GLES2/GLES3.hw], on-scr[.]] +Requested Region-RenderModes: vbaa +Chosen Caps: GLCaps[egl cfg 0x2, vid 0x21: rgba 8/8/8/8, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono , hw, GLProfile[GLES2/GLES3.hw], on-scr[.], [0x4d: GL, GLES1, GLES2, GLES3, VG]] +Chosen Font: FreeSans-Regular +Perf: Elapsed since startup: 457 [ms], 457,553,555 [ns] +- monotonic startup 1970-01-18T10:59:37.921728576Z, 1,508,377,921 [ms] +- monotonic current 1970-01-18T10:59:38.379282131Z, 1,508,378,379 [ms] +- wall current 2023-03-07T02:47:04.152237920Z +- currentNanos: Elapsed 467,401,506 [ns] + - test-startup 67,441 [ns] + - test-current 467,468,947 [ns] +Text_1: tbox [ dim 54.787003 x 16.547 x 0.0, box 0.015000001 / -15.818001 / 0.0 .. 54.802002 / 0.72900003 / 0.0, ctr 27.4085 / -7.5445004 / 0.0 ] +Text_1: rbox [ dim 54.787006 x 16.546999 x 0.0, box 1.986 / -15.817999 / 0.0 .. 56.773006 / 0.729 / 0.0, ctr 29.379503 / -7.5444994 / 0.0 ] + + + 1: Perf Launch: +- loading GlueGen - loading test 0 [ms] +- loading GlueGen - start test 309 [ms] +- loading test - start test 309 [ms] +- loading test - gl 467 [ms] +- loading test - graph 468 [ms] +- loading test - txt 508 [ms] +- loading test - draw 538 [ms] + 1 / 1: Perf Launch: Total: graph 0, txt 39, draw 30, txt+draw 70 [ms] + 1 / 1: Perf Launch: PerLoop: graph 946,981, txt 39,797,620, draw 30,399,310, txt+draw 70,196,930 [ns] +GLRegion: for GLProfile[GLES3/GLES3.hw] using int32_t indiced: true +GLRegion: Region[vbaa, q 1, dirty 0, vertices 81092, box [ dim 54.787006 x 16.546999 x 0.0, box 1.986 / -15.817999 / 0.0 .. 56.773006 / 0.729 / 0.0, ctr 29.379503 / -7.5444994 / 0.0 ]] +Text length: 1296 +VBORegion2PVBAAES2: idx32 true + indices [elements 42,409 / 46,656, bytes 508,908 / 559,872, filled 90.9%, left 9.1%] + vertices [elements 81,092 / 88,128, bytes 973,104 / 1,057,536, filled 92.0%, left 8.0%] + params [elements 81,092 / 88,128, bytes 973,104 / 1,057,536, filled 92.0%, left 8.0%] + color [null] + total [bytes 2,455,116 / 2,674,944], filled 91.8%, left 8.2%] + 1 / 1: Perf Frame1: Total: graph 0, txt 39, draw 30, txt+draw 70 [ms] + 1 / 1: Perf Frame1: PerLoop: graph 946,981, txt 39,797,620, draw 30,399,310, txt+draw 70,196,930 [ns] + 20 / 20: Perf Frame20: Total: graph 205, txt 104, draw 37, txt+draw 142 [ms] + 20 / 20: Perf Frame20: PerLoop: graph 10,290,216, txt 5,248,586, draw 1,894,416, txt+draw 7,143,002 [ns] +GLRegion: for GLProfile[GLES3/GLES3.hw] using int32_t indiced: true +GLRegion: Region[vbaa, q 1, dirty 0, vertices 81092, box [ dim 54.787006 x 16.546999 x 0.0, box 1.986 / -15.817999 / 0.0 .. 56.773006 / 0.729 / 0.0, ctr 29.379503 / -7.5444994 / 0.0 ]] +Text length: 1296 +VBORegion2PVBAAES2: idx32 true + indices [elements 42,409 / 46,656, bytes 508,908 / 559,872, filled 90.9%, left 9.1%] + vertices [elements 81,092 / 88,128, bytes 973,104 / 1,057,536, filled 92.0%, left 8.0%] + params [elements 81,092 / 88,128, bytes 973,104 / 1,057,536, filled 92.0%, left 8.0%] + color [null] + total [bytes 2,455,116 / 2,674,944], filled 91.8%, left 8.2%] + 20 / 40: Perf Frame40: Total: graph 270, txt 54, draw 6, txt+draw 60 [ms] + 20 / 40: Perf Frame40: PerLoop: graph 13,506,225, txt 2,716,698, draw 300,799, txt+draw 3,017,497 [ns] +** new frame ** (sleep: 100ms) + +Test End: com.jogamp.opengl.test.junit.graph.PerfTextRendererNEWT00 -es2 -Nperf -long_text -loop 40 + +EDT START + 0 0 0 +EDT END + 0 0 0 +EDT EXIT + 0 0 0 diff --git a/doc/curve/tests/perf01/rpi4_7.log b/doc/curve/tests/perf01/rpi4_7.log new file mode 100644 index 000000000..cb00a093e --- /dev/null +++ b/doc/curve/tests/perf01/rpi4_7.log @@ -0,0 +1,170 @@ +GLUEGEN BUILDDIR: ../../gluegen/make/../build-linux-aarch64 +JOAL BUILDDIR: ../../joal/build-linux-aarch64 +JOGL DIR: ../build-linux-aarch64/.. +JOGL BUILDDIR: ../build-linux-aarch64 +JOGL BUILDDIR BASE: build-linux-aarch64 +JOGL PROFILE: JOGL_ALL +Linux raspi05.goethel.localnet 5.15.32-v8+ #1538 SMP PREEMPT Thu Mar 31 19:40:39 BST 2022 aarch64 GNU/Linux +Info: NO JOGL SWT ../build-linux-aarch64/../make/lib/swt/gtk-linux-aarch64/swt-debug.jar +Info: NO Users SWT /home/sven/.java/swt.jar +JOGAMP_ALL_AWT_CLASSPATH: .:../../gluegen/make/../build-linux-aarch64/gluegen-rt.jar:../../joal/build-linux-aarch64/jar/joal.jar:../build-linux-aarch64/jar/jogl-all.jar:../build-linux-aarch64/jar/atomic/oculusvr.jar:../build-linux-aarch64/jar/jogl-test.jar::../../gluegen/make/../make/lib/junit.jar:/usr/lib/ant.jar:/usr/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-linux-aarch64/gluegen-test-util.jar +JOGAMP_ALL_NOAWT_CLASSPATH: .:../../gluegen/make/../build-linux-aarch64/gluegen-rt.jar:../../joal/build-linux-aarch64/jar/joal.jar:../build-linux-aarch64/jar/jogl-all-noawt.jar:../build-linux-aarch64/jar/atomic/oculusvr.jar:../build-linux-aarch64/jar/jogl-test.jar::../../gluegen/make/../make/lib/junit.jar:/usr/lib/ant.jar:/usr/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-linux-aarch64/gluegen-test-util.jar +JOGAMP_MOBILE_CLASSPATH: .:../../gluegen/make/../build-linux-aarch64/gluegen-rt.jar:../../joal/build-linux-aarch64/jar/joal.jar:../build-linux-aarch64/jar/jogl-all-mobile.jar:../build-linux-aarch64/jar/atomic/oculusvr.jar:../build-linux-aarch64/jar/jogl-test.jar::../../gluegen/make/../make/lib/junit.jar:/usr/lib/ant.jar:/usr/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-linux-aarch64/gluegen-test-util.jar +JOGAMP_CLASSPATH: .:../../gluegen/make/../build-linux-aarch64/gluegen-rt.jar:../../joal/build-linux-aarch64/jar/joal.jar:../build-linux-aarch64/jar/jogl-all.jar:../build-linux-aarch64/jar/atomic/oculusvr.jar:../build-linux-aarch64/jar/jogl-test.jar::../../gluegen/make/../make/lib/junit.jar:/usr/lib/ant.jar:/usr/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-linux-aarch64/gluegen-test-util.jar +JOGAMP_LD_LIBRARY_PATH: :../../gluegen/make/../build-linux-aarch64/obj:../build-linux-aarch64/lib +JOGAMP_DYLD_LIBRARY_PATH: :../../gluegen/make/../build-linux-aarch64/obj:../build-linux-aarch64/lib + +MacOSX REMEMBER to add the JVM arguments -XstartOnFirstThread -Djava.awt.headless=true for running demos without AWT, e.g. NEWT +MacOSX REMEMBER to add the JVM arguments -XstartOnFirstThread -Djava.awt.headless=true com.jogamp.newt.util.MainThread for running demos with NEWT +/usr/bin/java +openjdk version "17.0.4" 2022-07-19 +OpenJDK Runtime Environment (build 17.0.4+8-Debian-1deb11u1) +OpenJDK 64-Bit Server VM (build 17.0.4+8-Debian-1deb11u1, mixed mode, sharing) +LD_LIBRARY_PATH +LIBXCB_ALLOW_SLOPPY_LOCK: +LIBGL_DRIVERS_PATH: +LIBGL_DEBUG: +LIBGL_ALWAYS_INDIRECT: +LIBGL_ALWAYS_SOFTWARE: +SWT_CLASSPATH: +MacOsX 0 +DISPLAY +WAYLAND_DISPLAY +USE_BUILDDIR 0 +USE_CLASSPATH .:../../gluegen/make/../build-linux-aarch64/gluegen-rt.jar:../../joal/build-linux-aarch64/jar/joal.jar:../build-linux-aarch64/jar/jogl-all-noawt.jar:../build-linux-aarch64/jar/atomic/oculusvr.jar:../build-linux-aarch64/jar/jogl-test.jar::../../gluegen/make/../make/lib/junit.jar:/usr/lib/ant.jar:/usr/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-linux-aarch64/gluegen-test-util.jar + +Test Start: com.jogamp.opengl.test.junit.graph.PerfTextRendererNEWT00 -es2 -Nperf -long_text -loop 40 + +__GL_THREADED_OPTIMIZATIONS + +/usr/bin/java -DummyArg --add-opens java.desktop/sun.awt=ALL-UNNAMED --add-opens java.desktop/sun.java2d=ALL-UNNAMED -Djava.awt.headless=true -cp .:../../gluegen/make/../build-linux-aarch64/gluegen-rt.jar:../../joal/build-linux-aarch64/jar/joal.jar:../build-linux-aarch64/jar/jogl-all-noawt.jar:../build-linux-aarch64/jar/atomic/oculusvr.jar:../build-linux-aarch64/jar/jogl-test.jar::../../gluegen/make/../make/lib/junit.jar:/usr/lib/ant.jar:/usr/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-linux-aarch64/gluegen-test-util.jar com.jogamp.opengl.test.junit.graph.PerfTextRendererNEWT00 -es2 -Nperf -long_text -loop 40 +Performance test enabled: false +Requested Caps: GLCaps[rgba 8/8/8/4, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono , hw, GLProfile[GLES2/GLES3.hw], on-scr[.]] +Requested Region-RenderModes: vbaa +Chosen Caps: GLCaps[egl cfg 0x1e, vid 0x34325258: rgba 8/8/8/1, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/4, sample-ext default, dbl, mono , hw, GLProfile[GLES2/GLES3.hw], on-scr[.], [0x4d: GL, GLES1, GLES2, GLES3, VG]] +----------------------------------------------------------------------------------------------------- +Platform: LINUX / Linux 5.15.32-v8+ (5.15.32), aarch64 (ARM64, EABI_AARCH64), 4 cores, littleEndian true +MachineDataInfo: runtimeValidated true, 32Bit false, primitive size / alignment: + int8 1 / 1, int16 2 / 2 + int 4 / 4, long 8 / 8 + int32 4 / 4, int64 8 / 8 + float 4 / 4, double 8 / 8, ldouble 16 / 16 + pointer 8 / 8, page 4096 +Platform: Java Version: 17.0.4 (17.0.4u0), VM: OpenJDK 64-Bit Server VM, Runtime: OpenJDK Runtime Environment +Platform: Java Vendor: Debian, https://tracker.debian.org/openjdk-17, Java17, dynamicLib: true, AWT enabled: false +----------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------- +Package: com.jogamp.opengl +Extension Name: com.jogamp.opengl +Specification Title: Java Bindings for OpenGL API Specification +Specification Vendor: JogAmp Community +Specification Version: 2.5 +Implementation Title: Java Bindings for OpenGL Runtime Environment +Implementation Vendor: JogAmp Community +Implementation Vendor ID: com.jogamp +Implementation URL: http://jogamp.org/ +Implementation Version: 2.5.0-rc-20230307 +Implementation Build: 2.5-bmanual-20230307 +Implementation Branch: master +Implementation Commit: fb03e913c0c55a9a96e93a00ef6590b9bea9a62a +Implementation SHA Sources: null +Implementation SHA Classes: null +Implementation SHA Classes-this: null +Implementation SHA Natives: null +Implementation SHA Natives-this: null +----------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------- +EGLGraphicsDevice[type .egl, v1.4.0, nativeDisplayID 0x7ee8001570, connection decon, unitID 0, handle 0x7ee8019cf0, owner true, ResourceToolkitLock[obj 0x15bfd87, isOwner true, <543e710e, 57f23557>[count 1, qsz 0, owner <main>]]]: + Natives + GL4bc false + GL4 false + GLES3 true [3.1 (ES profile, arb, compat[ES2, ES3, ES31], FBO, hardware)] + GL3bc false + GL3 false + GL2 false + GLES2 true [3.1 (ES profile, arb, compat[ES2, ES3, ES31], FBO, hardware)] + GLES1 true [1.1 (ES profile, arb, compat[FP32], hardware)] + Count 3 / 8 + Common + GL4ES3 true + GL2GL3 false + GL2ES2 true + GL2ES1 true + Mappings + GLES1 GLProfile[GLES1/GLES1.hw] + GLES2 GLProfile[GLES2/GLES3.hw] + GL2ES1 GLProfile[GL2ES1/GLES1.hw] + GL4ES3 GLProfile[GL4ES3/GLES3.hw] + GL2ES2 GLProfile[GL2ES2/GLES3.hw] + GLES3 GLProfile[GLES3/GLES3.hw] + default GLProfile[GLES3/GLES3.hw] + Count 6 / 12 + +Swap Interval 1 +GL Profile GLProfile[GLES3/GLES3.hw] +GL Version 3.1 (ES profile, arb, compat[ES2, ES3, ES31], FBO, hardware) - OpenGL ES 3.1 Mesa 20.3.5 [GL 3.1.0, vendor 20.3.5 (Mesa 20.3.5)] +Quirks [No10BitColorCompOffscreen] +Impl. class jogamp.opengl.es3.GLES3Impl +GL_VENDOR Broadcom +GL_RENDERER V3D 4.2 +GL_VERSION OpenGL ES 3.1 Mesa 20.3.5 +GLSL true, has-compiler-func: true, version: OpenGL ES GLSL ES 3.10 / 3.0.0 +GL FBO: basic true, full true +GL_EXTENSIONS 91 +GLX_EXTENSIONS 28 +----------------------------------------------------------------------------------------------------- +Perf: Elapsed since startup: 2,384 [ms], 2,384,601,488 [ns] +- monotonic startup 1970-01-06T13:37:37.226575319Z, 481,057,226 [ms] +- monotonic current 1970-01-06T13:37:39.611176807Z, 481,059,611 [ms] +- wall current 2023-03-07T02:50:31.666852677Z +- currentNanos: Elapsed 2,398,803,500 [ns] + - test-startup 412,567 [ns] + - test-current 2,399,216,067 [ns] +Text_1: tbox [ dim 54.787003 x 16.547 x 0.0, box 0.015000001 / -15.818001 / 0.0 .. 54.802002 / 0.72900003 / 0.0, ctr 27.4085 / -7.5445004 / 0.0 ] +Text_1: rbox [ dim 54.787006 x 16.546999 x 0.0, box 1.986 / -15.817999 / 0.0 .. 56.773006 / 0.729 / 0.0, ctr 29.379503 / -7.5444994 / 0.0 ] + + + 1: Perf Launch: +- loading GlueGen - loading test 0 [ms] +- loading GlueGen - start test 1,630 [ms] +- loading test - start test 1,630 [ms] +- loading test - gl 2,400 [ms] +- loading test - graph 2,404 [ms] +- loading test - txt 2,683 [ms] +- loading test - draw 2,985 [ms] + 1 / 1: Perf Launch: Total: graph 3, txt 278, draw 302, txt+draw 581 [ms] + 1 / 1: Perf Launch: PerLoop: graph 3,722,065, txt 278,818,981, draw 302,494,033, txt+draw 581,313,014 [ns] +GLRegion: for GLProfile[GLES3/GLES3.hw] using int32_t indiced: true +GLRegion: Region[vbaa, q 1, dirty 0, vertices 81092, box [ dim 54.787006 x 16.546999 x 0.0, box 1.986 / -15.817999 / 0.0 .. 56.773006 / 0.729 / 0.0, ctr 29.379503 / -7.5444994 / 0.0 ]] +Text length: 1296 +VBORegion2PVBAAES2: idx32 true + indices [elements 42,409 / 42,768, bytes 508,908 / 513,216, filled 99.2%, left 0.8%] + vertices [elements 81,092 / 82,944, bytes 973,104 / 995,328, filled 97.8%, left 2.2%] + params [elements 81,092 / 82,944, bytes 973,104 / 995,328, filled 97.8%, left 2.2%] + color [null] + total [bytes 2,455,116 / 2,503,872], filled 98.1%, left 1.9%] + 1 / 1: Perf Frame1: Total: graph 3, txt 278, draw 302, txt+draw 581 [ms] + 1 / 1: Perf Frame1: PerLoop: graph 3,722,065, txt 278,818,981, draw 302,494,033, txt+draw 581,313,014 [ns] + 20 / 20: Perf Frame20: Total: graph 14, txt 547, draw 374, txt+draw 921 [ms] + 20 / 20: Perf Frame20: PerLoop: graph 711,606, txt 27,363,599, draw 18,706,961, txt+draw 46,070,561 [ns] +GLRegion: for GLProfile[GLES3/GLES3.hw] using int32_t indiced: true +GLRegion: Region[vbaa, q 1, dirty 0, vertices 81092, box [ dim 54.787006 x 16.546999 x 0.0, box 1.986 / -15.817999 / 0.0 .. 56.773006 / 0.729 / 0.0, ctr 29.379503 / -7.5444994 / 0.0 ]] +Text length: 1296 +VBORegion2PVBAAES2: idx32 true + indices [elements 42,409 / 42,768, bytes 508,908 / 513,216, filled 99.2%, left 0.8%] + vertices [elements 81,092 / 82,944, bytes 973,104 / 995,328, filled 97.8%, left 2.2%] + params [elements 81,092 / 82,944, bytes 973,104 / 995,328, filled 97.8%, left 2.2%] + color [null] + total [bytes 2,455,116 / 2,503,872], filled 98.1%, left 1.9%] + 20 / 40: Perf Frame40: Total: graph 3, txt 235, draw 69, txt+draw 304 [ms] + 20 / 40: Perf Frame40: PerLoop: graph 165,838, txt 11,758,196, draw 3,453,805, txt+draw 15,212,002 [ns] +** new frame ** (sleep: 100ms) + +Test End: com.jogamp.opengl.test.junit.graph.PerfTextRendererNEWT00 -es2 -Nperf -long_text -loop 40 + +EDT START + 0 0 0 +EDT END + 0 0 0 +EDT EXIT + 0 0 0 diff --git a/doc/curve/tests/perf01/rpi4_8.log b/doc/curve/tests/perf01/rpi4_8.log new file mode 100644 index 000000000..6f09d673d --- /dev/null +++ b/doc/curve/tests/perf01/rpi4_8.log @@ -0,0 +1,170 @@ +GLUEGEN BUILDDIR: ../../gluegen/make/../build-linux-aarch64 +JOAL BUILDDIR: ../../joal/build-linux-aarch64 +JOGL DIR: ../build-linux-aarch64/.. +JOGL BUILDDIR: ../build-linux-aarch64 +JOGL BUILDDIR BASE: build-linux-aarch64 +JOGL PROFILE: JOGL_ALL +Linux raspi05.goethel.localnet 5.15.32-v8+ #1538 SMP PREEMPT Thu Mar 31 19:40:39 BST 2022 aarch64 GNU/Linux +Info: NO JOGL SWT ../build-linux-aarch64/../make/lib/swt/gtk-linux-aarch64/swt-debug.jar +Info: NO Users SWT /home/sven/.java/swt.jar +JOGAMP_ALL_AWT_CLASSPATH: .:../../gluegen/make/../build-linux-aarch64/gluegen-rt.jar:../../joal/build-linux-aarch64/jar/joal.jar:../build-linux-aarch64/jar/jogl-all.jar:../build-linux-aarch64/jar/atomic/oculusvr.jar:../build-linux-aarch64/jar/jogl-test.jar::../../gluegen/make/../make/lib/junit.jar:/usr/lib/ant.jar:/usr/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-linux-aarch64/gluegen-test-util.jar +JOGAMP_ALL_NOAWT_CLASSPATH: .:../../gluegen/make/../build-linux-aarch64/gluegen-rt.jar:../../joal/build-linux-aarch64/jar/joal.jar:../build-linux-aarch64/jar/jogl-all-noawt.jar:../build-linux-aarch64/jar/atomic/oculusvr.jar:../build-linux-aarch64/jar/jogl-test.jar::../../gluegen/make/../make/lib/junit.jar:/usr/lib/ant.jar:/usr/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-linux-aarch64/gluegen-test-util.jar +JOGAMP_MOBILE_CLASSPATH: .:../../gluegen/make/../build-linux-aarch64/gluegen-rt.jar:../../joal/build-linux-aarch64/jar/joal.jar:../build-linux-aarch64/jar/jogl-all-mobile.jar:../build-linux-aarch64/jar/atomic/oculusvr.jar:../build-linux-aarch64/jar/jogl-test.jar::../../gluegen/make/../make/lib/junit.jar:/usr/lib/ant.jar:/usr/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-linux-aarch64/gluegen-test-util.jar +JOGAMP_CLASSPATH: .:../../gluegen/make/../build-linux-aarch64/gluegen-rt.jar:../../joal/build-linux-aarch64/jar/joal.jar:../build-linux-aarch64/jar/jogl-all.jar:../build-linux-aarch64/jar/atomic/oculusvr.jar:../build-linux-aarch64/jar/jogl-test.jar::../../gluegen/make/../make/lib/junit.jar:/usr/lib/ant.jar:/usr/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-linux-aarch64/gluegen-test-util.jar +JOGAMP_LD_LIBRARY_PATH: :../../gluegen/make/../build-linux-aarch64/obj:../build-linux-aarch64/lib +JOGAMP_DYLD_LIBRARY_PATH: :../../gluegen/make/../build-linux-aarch64/obj:../build-linux-aarch64/lib + +MacOSX REMEMBER to add the JVM arguments -XstartOnFirstThread -Djava.awt.headless=true for running demos without AWT, e.g. NEWT +MacOSX REMEMBER to add the JVM arguments -XstartOnFirstThread -Djava.awt.headless=true com.jogamp.newt.util.MainThread for running demos with NEWT +/opt-linux-arm64/zulu19.32.13-ca-jdk19.0.2-linux_aarch64/bin/java +openjdk version "19.0.2" 2023-01-17 +OpenJDK Runtime Environment Zulu19.32+13-CA (build 19.0.2+7) +OpenJDK 64-Bit Server VM Zulu19.32+13-CA (build 19.0.2+7, mixed mode) +LD_LIBRARY_PATH +LIBXCB_ALLOW_SLOPPY_LOCK: +LIBGL_DRIVERS_PATH: +LIBGL_DEBUG: +LIBGL_ALWAYS_INDIRECT: +LIBGL_ALWAYS_SOFTWARE: +SWT_CLASSPATH: +MacOsX 0 +DISPLAY +WAYLAND_DISPLAY +USE_BUILDDIR 0 +USE_CLASSPATH .:../../gluegen/make/../build-linux-aarch64/gluegen-rt.jar:../../joal/build-linux-aarch64/jar/joal.jar:../build-linux-aarch64/jar/jogl-all-noawt.jar:../build-linux-aarch64/jar/atomic/oculusvr.jar:../build-linux-aarch64/jar/jogl-test.jar::../../gluegen/make/../make/lib/junit.jar:/usr/lib/ant.jar:/usr/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-linux-aarch64/gluegen-test-util.jar + +Test Start: com.jogamp.opengl.test.junit.graph.PerfTextRendererNEWT00 -es2 -Nperf -long_text -loop 40 + +__GL_THREADED_OPTIMIZATIONS + +/opt-linux-arm64/zulu19.32.13-ca-jdk19.0.2-linux_aarch64/bin/java -DummyArg --add-opens java.desktop/sun.awt=ALL-UNNAMED --add-opens java.desktop/sun.java2d=ALL-UNNAMED -Djava.awt.headless=true -cp .:../../gluegen/make/../build-linux-aarch64/gluegen-rt.jar:../../joal/build-linux-aarch64/jar/joal.jar:../build-linux-aarch64/jar/jogl-all-noawt.jar:../build-linux-aarch64/jar/atomic/oculusvr.jar:../build-linux-aarch64/jar/jogl-test.jar::../../gluegen/make/../make/lib/junit.jar:/usr/lib/ant.jar:/usr/lib/ant-junit.jar:../../gluegen/make/../make/lib/semantic-versioning/semver.jar:../../gluegen/make/../build-linux-aarch64/gluegen-test-util.jar com.jogamp.opengl.test.junit.graph.PerfTextRendererNEWT00 -es2 -Nperf -long_text -loop 40 +Performance test enabled: false +Requested Caps: GLCaps[rgba 8/8/8/4, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/0, dbl, mono , hw, GLProfile[GLES2/GLES3.hw], on-scr[.]] +Requested Region-RenderModes: vbaa +Chosen Caps: GLCaps[egl cfg 0x1e, vid 0x34325258: rgba 8/8/8/1, opaque, accum-rgba 0/0/0/0, dp/st/ms 16/0/4, sample-ext default, dbl, mono , hw, GLProfile[GLES2/GLES3.hw], on-scr[.], [0x4d: GL, GLES1, GLES2, GLES3, VG]] +----------------------------------------------------------------------------------------------------- +Platform: LINUX / Linux 5.15.32-v8+ (5.15.32), aarch64 (ARM64, EABI_AARCH64), 4 cores, littleEndian true +MachineDataInfo: runtimeValidated true, 32Bit false, primitive size / alignment: + int8 1 / 1, int16 2 / 2 + int 4 / 4, long 8 / 8 + int32 4 / 4, int64 8 / 8 + float 4 / 4, double 8 / 8, ldouble 16 / 16 + pointer 8 / 8, page 4096 +Platform: Java Version: 19.0.2 (19.0.2u0), VM: OpenJDK 64-Bit Server VM, Runtime: OpenJDK Runtime Environment +Platform: Java Vendor: Azul Systems, Inc., http://www.azul.com/, Java17, dynamicLib: true, AWT enabled: false +----------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------- +Package: com.jogamp.opengl +Extension Name: com.jogamp.opengl +Specification Title: Java Bindings for OpenGL API Specification +Specification Vendor: JogAmp Community +Specification Version: 2.5 +Implementation Title: Java Bindings for OpenGL Runtime Environment +Implementation Vendor: JogAmp Community +Implementation Vendor ID: com.jogamp +Implementation URL: http://jogamp.org/ +Implementation Version: 2.5.0-rc-20230307 +Implementation Build: 2.5-bmanual-20230307 +Implementation Branch: master +Implementation Commit: fb03e913c0c55a9a96e93a00ef6590b9bea9a62a +Implementation SHA Sources: null +Implementation SHA Classes: null +Implementation SHA Classes-this: null +Implementation SHA Natives: null +Implementation SHA Natives-this: null +----------------------------------------------------------------------------------------------------- +----------------------------------------------------------------------------------------------------- +EGLGraphicsDevice[type .egl, v1.4.0, nativeDisplayID 0x7eec001530, connection decon, unitID 0, handle 0x7eec019e10, owner true, ResourceToolkitLock[obj 0x5b8dfcc1, isOwner true, <2f9f7dcf, 747ddf94>[count 1, qsz 0, owner <main>]]]: + Natives + GL4bc false + GL4 false + GLES3 true [3.1 (ES profile, arb, compat[ES2, ES3, ES31], FBO, hardware)] + GL3bc false + GL3 false + GL2 false + GLES2 true [3.1 (ES profile, arb, compat[ES2, ES3, ES31], FBO, hardware)] + GLES1 true [1.1 (ES profile, arb, compat[FP32], hardware)] + Count 3 / 8 + Common + GL4ES3 true + GL2GL3 false + GL2ES2 true + GL2ES1 true + Mappings + GLES1 GLProfile[GLES1/GLES1.hw] + GLES2 GLProfile[GLES2/GLES3.hw] + GL2ES1 GLProfile[GL2ES1/GLES1.hw] + GL4ES3 GLProfile[GL4ES3/GLES3.hw] + GL2ES2 GLProfile[GL2ES2/GLES3.hw] + GLES3 GLProfile[GLES3/GLES3.hw] + default GLProfile[GLES3/GLES3.hw] + Count 6 / 12 + +Swap Interval 1 +GL Profile GLProfile[GLES3/GLES3.hw] +GL Version 3.1 (ES profile, arb, compat[ES2, ES3, ES31], FBO, hardware) - OpenGL ES 3.1 Mesa 20.3.5 [GL 3.1.0, vendor 20.3.5 (Mesa 20.3.5)] +Quirks [No10BitColorCompOffscreen] +Impl. class jogamp.opengl.es3.GLES3Impl +GL_VENDOR Broadcom +GL_RENDERER V3D 4.2 +GL_VERSION OpenGL ES 3.1 Mesa 20.3.5 +GLSL true, has-compiler-func: true, version: OpenGL ES GLSL ES 3.10 / 3.0.0 +GL FBO: basic true, full true +GL_EXTENSIONS 91 +GLX_EXTENSIONS 28 +----------------------------------------------------------------------------------------------------- +Perf: Elapsed since startup: 2,700 [ms], 2,700,679,058 [ns] +- monotonic startup 1970-01-06T13:37:02.837988590Z, 481,022,837 [ms] +- monotonic current 1970-01-06T13:37:05.538667648Z, 481,025,538 [ms] +- wall current 2023-03-07T02:49:57.594087208Z +- currentNanos: Elapsed 2,812,659,931 [ns] + - test-startup 1,392,457 [ns] + - test-current 2,814,052,388 [ns] +Text_1: tbox [ dim 54.787003 x 16.547 x 0.0, box 0.015000001 / -15.818001 / 0.0 .. 54.802002 / 0.72900003 / 0.0, ctr 27.4085 / -7.5445004 / 0.0 ] +Text_1: rbox [ dim 54.787006 x 16.546999 x 0.0, box 1.986 / -15.817999 / 0.0 .. 56.773006 / 0.729 / 0.0, ctr 29.379503 / -7.5444994 / 0.0 ] + + + 1: Perf Launch: +- loading GlueGen - loading test 1 [ms] +- loading GlueGen - start test 1,828 [ms] +- loading test - start test 1,827 [ms] +- loading test - gl 2,816 [ms] +- loading test - graph 2,821 [ms] +- loading test - txt 3,082 [ms] +- loading test - draw 3,401 [ms] + 1 / 1: Perf Launch: Total: graph 4, txt 261, draw 318, txt+draw 580 [ms] + 1 / 1: Perf Launch: PerLoop: graph 4,302,092, txt 261,581,446, draw 318,608,401, txt+draw 580,189,847 [ns] +GLRegion: for GLProfile[GLES3/GLES3.hw] using int32_t indiced: true +GLRegion: Region[vbaa, q 1, dirty 0, vertices 81092, box [ dim 54.787006 x 16.546999 x 0.0, box 1.986 / -15.817999 / 0.0 .. 56.773006 / 0.729 / 0.0, ctr 29.379503 / -7.5444994 / 0.0 ]] +Text length: 1296 +VBORegion2PVBAAES2: idx32 true + indices [elements 42,409 / 42,768, bytes 508,908 / 513,216, filled 99.2%, left 0.8%] + vertices [elements 81,092 / 82,944, bytes 973,104 / 995,328, filled 97.8%, left 2.2%] + params [elements 81,092 / 82,944, bytes 973,104 / 995,328, filled 97.8%, left 2.2%] + color [null] + total [bytes 2,455,116 / 2,503,872], filled 98.1%, left 1.9%] + 1 / 1: Perf Frame1: Total: graph 4, txt 261, draw 318, txt+draw 580 [ms] + 1 / 1: Perf Frame1: PerLoop: graph 4,302,092, txt 261,581,446, draw 318,608,401, txt+draw 580,189,847 [ns] + 20 / 20: Perf Frame20: Total: graph 14, txt 517, draw 384, txt+draw 902 [ms] + 20 / 20: Perf Frame20: PerLoop: graph 709,093, txt 25,872,257, draw 19,232,249, txt+draw 45,104,507 [ns] +GLRegion: for GLProfile[GLES3/GLES3.hw] using int32_t indiced: true +GLRegion: Region[vbaa, q 1, dirty 0, vertices 81092, box [ dim 54.787006 x 16.546999 x 0.0, box 1.986 / -15.817999 / 0.0 .. 56.773006 / 0.729 / 0.0, ctr 29.379503 / -7.5444994 / 0.0 ]] +Text length: 1296 +VBORegion2PVBAAES2: idx32 true + indices [elements 42,409 / 42,768, bytes 508,908 / 513,216, filled 99.2%, left 0.8%] + vertices [elements 81,092 / 82,944, bytes 973,104 / 995,328, filled 97.8%, left 2.2%] + params [elements 81,092 / 82,944, bytes 973,104 / 995,328, filled 97.8%, left 2.2%] + color [null] + total [bytes 2,455,116 / 2,503,872], filled 98.1%, left 1.9%] + 20 / 40: Perf Frame40: Total: graph 3, txt 226, draw 65, txt+draw 291 [ms] + 20 / 40: Perf Frame40: PerLoop: graph 160,404, txt 11,337,131, draw 3,253,677, txt+draw 14,590,809 [ns] +** new frame ** (sleep: 100ms) + +Test End: com.jogamp.opengl.test.junit.graph.PerfTextRendererNEWT00 -es2 -Nperf -long_text -loop 40 + +EDT START + 0 0 0 +EDT END + 0 0 0 +EDT EXIT + 0 0 0 diff --git a/make/scripts/tests-linux-aarch64.sh b/make/scripts/tests-linux-aarch64.sh index f1b4de19d..bc59dacf0 100755 --- a/make/scripts/tests-linux-aarch64.sh +++ b/make/scripts/tests-linux-aarch64.sh @@ -1,8 +1,11 @@ #! /bin/bash -spath=`dirname $0` +SDIR=`dirname $0` -. $spath/tests.sh `which java` -DummyArg ../build-linux-aarch64 $* -#. $spath/tests.sh /usr/lib/jvm/java-11-openjdk-arm64/bin/java -DummyArg ../build-linux-aarch64 $* +#JAVA_CMD=/opt-linux-arm64/zulu19.32.13-ca-jdk19.0.2-linux_aarch64/bin/java +#JAVA_CMD=/usr/lib/jvm/java-11-openjdk-arm64/bin/java +JAVA_CMD=`which java` + +. $SDIR/tests.sh $JAVA_CMD -DummyArg ../build-linux-aarch64 $* diff --git a/make/scripts/tests-win.bat b/make/scripts/tests-win.bat index cfdef2de6..7b2c84102 100755 --- a/make/scripts/tests-win.bat +++ b/make/scripts/tests-win.bat @@ -218,7 +218,7 @@ REM scripts\java-win.bat com.jogamp.opengl.test.junit.jogl.offscreen.TestOffscre REM scripts\java-win.bat com.jogamp.opengl.test.junit.jogl.offscreen.TestOffscreen02BitmapNEWT REM scripts\java-win.bat com.jogamp.opengl.test.junit.graph.TestRegionRendererNEWT01 -scripts\java-win.bat com.jogamp.opengl.test.junit.graph.TestTextRendererNEWT00 +scripts\java-win.bat com.jogamp.opengl.test.junit.graph.PerfTextRendererNEWT00 %* REM scripts\java-win.bat com.jogamp.opengl.test.junit.graph.TestTextRendererNEWT01 REM scripts\java-win.bat com.jogamp.opengl.test.junit.jogl.glsl.TestGLSLShaderState02NEWT REM scripts\java-win.bat com.jogamp.opengl.test.junit.jogl.glsl.TestGLSLShaderState02NEWT diff --git a/make/scripts/tests-x64.sh b/make/scripts/tests-x64.sh index 5da1c4c20..1da3b12f0 100755 --- a/make/scripts/tests-x64.sh +++ b/make/scripts/tests-x64.sh @@ -21,5 +21,8 @@ fi export SWT_CLASSPATH=`pwd`/lib/swt/gtk-linux-x86_64/swt.jar #export SWT_CLASSPATH=/usr/local/projects/JOGL/SWT/swt-4.3.0/gtk-linux-x86_64/swt-debug.jar -. $SDIR/tests.sh `which java` -DummyArg ../build-x86_64 $* +#JAVA_CMD=/opt-linux-x86_64/zulu19.32.13-ca-jdk19.0.2-linux_x64/bin/java +JAVA_CMD=`which java` + +. $SDIR/tests.sh $JAVA_CMD -DummyArg ../build-x86_64 $* diff --git a/make/scripts/tests.sh b/make/scripts/tests.sh index e10882787..81327185a 100644 --- a/make/scripts/tests.sh +++ b/make/scripts/tests.sh @@ -953,7 +953,7 @@ function testawtswt() { #testnoawt com.jogamp.opengl.test.junit.graph.TestFontsNEWT00 $* #testnoawt com.jogamp.opengl.test.junit.graph.TestTextRendererNEWTBugXXXX $* -#testnoawt com.jogamp.opengl.test.junit.graph.TestTextRendererNEWT00 $* +#testnoawt com.jogamp.opengl.test.junit.graph.PerfTextRendererNEWT00 $* #testnoawt com.jogamp.opengl.test.junit.graph.TestTextRendererNEWT01 $* #testnoawt com.jogamp.opengl.test.junit.graph.TestTextRendererNEWT10 $* #testnoawt com.jogamp.opengl.test.junit.graph.TestTextRendererNEWT20 $* @@ -991,8 +991,8 @@ function testawtswt() { # Linux DRM/GBM # -#testmobile com.jogamp.opengl.test.junit.graph.TestTextRendererNEWT00 $* -testnoawt com.jogamp.opengl.test.junit.graph.TestTextRendererNEWT00 $* +#testmobile com.jogamp.opengl.test.junit.graph.PerfTextRendererNEWT00 $* +testnoawt com.jogamp.opengl.test.junit.graph.PerfTextRendererNEWT00 $* #testmobile com.jogamp.opengl.test.junit.graph.demos.GPUTextNewtDemo $* #testmobile com.jogamp.opengl.test.junit.graph.demos.GPUUISceneNewtDemo $* #testmobile com.jogamp.opengl.test.junit.jogl.demos.es2.av.MovieCube $* diff --git a/src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT00.java b/src/test/com/jogamp/opengl/test/junit/graph/PerfTextRendererNEWT00.java index 353b21e1f..f8fd06695 100644 --- a/src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT00.java +++ b/src/test/com/jogamp/opengl/test/junit/graph/PerfTextRendererNEWT00.java @@ -41,16 +41,13 @@ import com.jogamp.opengl.GLCapabilities; import com.jogamp.opengl.GLDrawable; import com.jogamp.opengl.GLException; import com.jogamp.opengl.GLProfile; +import com.jogamp.opengl.JoglVersion; import com.jogamp.opengl.fixedfunc.GLMatrixFunc; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.FixMethodOrder; -import org.junit.runners.MethodSorters; - import com.jogamp.common.os.Clock; +import com.jogamp.common.os.Platform; import com.jogamp.common.util.IOUtil; +import com.jogamp.common.util.VersionUtil; import com.jogamp.graph.curve.Region; import com.jogamp.graph.curve.opengl.RenderState; import com.jogamp.graph.curve.opengl.GLRegion; @@ -60,11 +57,9 @@ import com.jogamp.graph.font.Font; import com.jogamp.graph.font.FontFactory; import com.jogamp.graph.geom.SVertex; import com.jogamp.graph.geom.plane.AffineTransform; -import com.jogamp.junit.util.JunitTracer; import com.jogamp.opengl.math.geom.AABBox; import com.jogamp.opengl.test.junit.util.MiscUtils; import com.jogamp.opengl.test.junit.util.NEWTGLContext; -import com.jogamp.opengl.test.junit.util.UITestCase; import com.jogamp.opengl.util.GLReadBufferUtil; import com.jogamp.opengl.util.PMVMatrix; @@ -78,8 +73,7 @@ import com.jogamp.opengl.util.PMVMatrix; * - Using a single GLRegion instantiation * - Single GLRegion is filled once with shapes from text */ -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -public class TestTextRendererNEWT00 extends UITestCase { +public class PerfTextRendererNEWT00 { static final Instant t0i = Clock.getMonotonicTime(); static final long t0 = Clock.currentNanos(); static final boolean DEBUG = false; @@ -87,51 +81,46 @@ public class TestTextRendererNEWT00 extends UITestCase { static long duration = 100; // ms static boolean forceES2 = false; static boolean forceGL3 = false; - static boolean mainRun = false; static int win_width = 1280; static int win_height = 720; static int loop_count = 1; static boolean do_perf = false; + static boolean do_snap = false; static Font font; static float fontSize = 24; // in pixel private final float[] fg_color = new float[] { 0, 0, 0, 1 }; - @BeforeClass - public static void setup() throws IOException { - if( null == font ) { + static { + try { font = FontFactory.get(IOUtil.getResource("fonts/freefont/FreeSans.ttf", - FontSet01.class.getClassLoader(), FontSet01.class).getInputStream(), true); + FontSet01.class.getClassLoader(), FontSet01.class).getInputStream(), true); // font = FontFactory.get(FontFactory.UBUNTU).get(FontSet.FAMILY_LIGHT, FontSet.STYLE_NONE); + } catch (final IOException e) { + e.printStackTrace(); } } - static int atoi(final String a) { - try { - return Integer.parseInt(a); - } catch (final Exception ex) { throw new RuntimeException(ex); } - } - - public static void main(final String args[]) throws IOException { + public static void main(final String args[]) throws IOException, GLException, InterruptedException { + String text = PerfTextRendererNEWT00.text_1; boolean wait = false; - mainRun = true; for(int i=0; i<args.length; i++) { if(args[i].equals("-time")) { i++; - duration = atoi(args[i]); + duration = MiscUtils.atol(args[i], duration); } else if(args[i].equals("-width")) { i++; - win_width = atoi(args[i]); + win_width = MiscUtils.atoi(args[i], win_width); } else if(args[i].equals("-height")) { i++; - win_height = atoi(args[i]); + win_height = MiscUtils.atoi(args[i], win_height); } else if(args[i].equals("-es2")) { forceES2 = true; } else if(args[i].equals("-gl3")) { forceGL3 = true; } else if(args[i].equals("-font")) { i++; - font = FontFactory.get(IOUtil.getResource(args[i], TestTextRendererNEWT00.class.getClassLoader(), TestTextRendererNEWT00.class).getInputStream(), true); + font = FontFactory.get(IOUtil.getResource(args[i], PerfTextRendererNEWT00.class.getClassLoader(), PerfTextRendererNEWT00.class).getInputStream(), true); } else if(args[i].equals("-fontSize")) { i++; fontSize = MiscUtils.atof(args[i], fontSize); @@ -143,16 +132,23 @@ public class TestTextRendererNEWT00 extends UITestCase { if( 0 >= loop_count ) { loop_count = Integer.MAX_VALUE; } + } else if(args[i].equals("-long_text")) { + text = PerfTextRendererNEWT00.text_long; } else if(args[i].equals("-perf")) { do_perf = true; + } else if(args[i].equals("-snap")) { + do_snap = true; } } System.err.println("Performance test enabled: "+do_perf); if( wait ) { - JunitTracer.waitForKey("Start"); + MiscUtils.waitForKey("Start"); } - final String tstname = TestTextRendererNEWT00.class.getName(); - org.junit.runner.JUnitCore.main(tstname); + final int renderModes = Region.VBAA_RENDERING_BIT /* | Region.COLORCHANNEL_RENDERING_BIT */; + final int sampleCount = 4; + + final PerfTextRendererNEWT00 obj = new PerfTextRendererNEWT00(); + obj.test(renderModes, sampleCount, text); } static void sleep() { @@ -205,11 +201,7 @@ public class TestTextRendererNEWT00 extends UITestCase { } } - @SuppressWarnings("unused") - @Test - public void test02TextRendererVBAA04() throws InterruptedException, GLException, IOException { - final int renderModes = Region.VBAA_RENDERING_BIT /* | Region.COLORCHANNEL_RENDERING_BIT */; - final int sampleCount = 4; + public void test(final int renderModes, final int sampleCount, final String text) throws InterruptedException, GLException, IOException { final GLProfile glp; if(forceGL3) { glp = GLProfile.get(GLProfile.GL3); @@ -224,8 +216,6 @@ public class TestTextRendererNEWT00 extends UITestCase { final GLCapabilities caps = new GLCapabilities( glp ); caps.setAlphaBits(4); - System.err.println("Requested Caps: "+caps); - System.err.println("Requested Region-RenderModes: "+Region.getRenderModeString(renderModes)); final NEWTGLContext.WindowContext winctx = NEWTGLContext.createWindow(caps, win_width, win_height, false); // true); final GLDrawable drawable = winctx.context.getGLDrawable(); @@ -233,9 +223,19 @@ public class TestTextRendererNEWT00 extends UITestCase { if( do_perf ) { gl.setSwapInterval(0); } - Assert.assertEquals(GL.GL_NO_ERROR, gl.glGetError()); + { + final int glerr = gl.glGetError(); + if( GL.GL_NO_ERROR != glerr ) { + System.err.println("Initial GL Error: "+glerr); + } + } + System.err.println(VersionUtil.getPlatformInfo()); + System.err.println(JoglVersion.getInstance().toString(winctx.context.getGL())); - System.err.println("Chosen: "+winctx.window.getChosenCapabilities()); + System.err.println("Requested Caps: "+caps); + System.err.println("Requested Region-RenderModes: "+Region.getRenderModeString(renderModes)); + System.err.println("Chosen Caps: "+winctx.window.getChosenCapabilities()); + System.err.println("Chosen Font: "+font.getFullFamilyName()); final GLReadBufferUtil screenshot = new GLReadBufferUtil(false, false); @@ -246,20 +246,12 @@ public class TestTextRendererNEWT00 extends UITestCase { // Since we know about the size ... // final GLRegion region = GLRegion.create(gl.getGLProfile(), renderModes, null); // region.growBufferSize(123000, 62000); // hack-me - // FreeSans ~ vertices 64/char, indices 33/char + // FreeSans ~ vertices 68/char, indices 36/char // Ubuntu Light ~ vertices 100/char, indices 50/char // FreeSerif ~ vertices 115/char, indices 61/char - final int vertices_per_char = 64; // 100; - final int indices_per_char = 33; // 50; - final GLRegion region; - if( do_perf ) { - final int char_count = text_1.length(); // 1296 - region = GLRegion.create(gl.getGLProfile(), renderModes, null, char_count*vertices_per_char, char_count*indices_per_char); - } else { - // final int char_count = text_1.length(); // 1296 - region = GLRegion.create(gl.getGLProfile(), renderModes, null); - // region.growBufferSize(char_count*vertices_per_char, char_count*indices_per_char); - } + final int vertices_per_char = 68; // 100; + final int indices_per_char = 36; // 50; + final GLRegion region = GLRegion.create(gl.getGLProfile(), renderModes, null, text.length()*vertices_per_char, text.length()*indices_per_char); final Perf perf = new Perf(); if( do_perf ) { @@ -303,9 +295,9 @@ public class TestTextRendererNEWT00 extends UITestCase { final AffineTransform t = new AffineTransform(); t.setToTranslation(3*x_width, 0f); - final AABBox tbox_1 = font.getGlyphBounds(text_1); - final AABBox rbox_1 = TextRegionUtil.addStringToRegion(region, font, t, text_1, fg_color); - t4 = Clock.currentNanos(); // text_1 added to region + final AABBox tbox_1 = font.getGlyphBounds(text); + final AABBox rbox_1 = TextRegionUtil.addStringToRegion(region, font, t, text, fg_color); + t4 = Clock.currentNanos(); // text added to region if( 0 == loop_i && !do_perf ) { System.err.println("Text_1: tbox "+tbox_1); System.err.println("Text_1: rbox "+rbox_1); @@ -318,7 +310,7 @@ public class TestTextRendererNEWT00 extends UITestCase { pmv.glTranslatef(dx, dy, z0); pmv.glScalef(fontSize, fontSize, 1f); region.draw(gl, renderer, sampleCountIO); - final long t5 = Clock.currentNanos(); // text_1 added to region + final long t5 = Clock.currentNanos(); // text added to region if( null != perf ) { final long td_graph = t3 - t2; final long td_txt = t4 - t3; @@ -350,14 +342,9 @@ public class TestTextRendererNEWT00 extends UITestCase { TimeUnit.NANOSECONDS.toMillis(td_launch3), TimeUnit.NANOSECONDS.toMillis(td_launch_txt), TimeUnit.NANOSECONDS.toMillis(td_launch_draw)); perf.print(System.err, loop_i+1, "Launch"); - } else if( false && do_perf ) { - System.err.printf("%3d: Perf: graph %2d, txt %2d, draw %2d, txt+draw %2d [ms]%n", - loop_i+1, - TimeUnit.NANOSECONDS.toMillis(td_graph),TimeUnit.NANOSECONDS.toMillis(td_txt), - TimeUnit.NANOSECONDS.toMillis(td_draw), TimeUnit.NANOSECONDS.toMillis(td_txt_draw) ); } } - if( loop_count - 1 == loop_i && !do_perf ) { + if( loop_count - 1 == loop_i && do_snap ) { // print screen at end gl.glFinish(); printScreen(screenshot, renderModes, drawable, gl, false, sampleCount); @@ -380,7 +367,7 @@ public class TestTextRendererNEWT00 extends UITestCase { // print counter @ start and end System.err.println("GLRegion: for "+gl.getGLProfile()+" using int32_t indiced: "+region.usesI32Idx()); System.err.println("GLRegion: "+region); - System.err.println("Text length: "+text_1.length()); + System.err.println("Text length: "+text.length()); region.printBufferStats(System.err); if( do_perf ) { region.perfCounter().print(System.err); @@ -401,7 +388,7 @@ public class TestTextRendererNEWT00 extends UITestCase { NEWTGLContext.destroyWindow(winctx); } - public static final String text_1a = + public static final String text_long = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec nec sapien tellus. \n"+ "Ut purus odio, rhoncus sit amet commodo eget, ullamcorper vel urna. Mauris ultricies \n"+ "quam iaculis urna cursus ornare. Nullam ut felis a ante ultrices ultricies nec a elit. \n"+ @@ -444,15 +431,6 @@ public class TestTextRendererNEWT00 extends UITestCase { "in lorem. Maecenas in ipsum ac justo scelerisque sollicitudin. Quisque sit amet neque lorem, \n" + "-------Press H to change text---------"; - public static final String text_2s = "JogAmp reborn ;-)"; - public static final String text_2 = - "I “Ask Jeff” or ‘Ask Jeff’. Take the chef d’œuvre! Two of [of] (of) ‘of’ “of” of? of! of*. X\n"+ - "Les Woëvres, the Fôret de Wœvres, the Voire and Vauvise. Yves is in heaven; D’Amboise is in jail. X\n"+ - "Lyford’s in Texas & L’Anse-aux-Griffons in Québec; the Łyna in Poland. Yriarte, Yciar and Ysaÿe are at Yale. X\n"+ - "Kyoto and Ryotsu are both in Japan, Kwikpak on the Yukon delta, Kvæven in Norway, Kyulu in Kenya, not in Rwanda.… X\n"+ - "Von-Vincke-Straße in Münster, Vdovino in Russia, Ytterbium in the periodic table. Are Toussaint L’Ouverture, Wölfflin, Wolfe, X\n"+ - "Miłosz and Wū Wŭ all in the library? 1510–1620, 11:00 pm, and the 1980s are over. X\n"+ - "-------Press H to change text---------"; public static void printScreen(final GLReadBufferUtil screenshot, final int renderModes, final GLDrawable drawable, final GL gl, final boolean exportAlpha, final int sampleCount) throws GLException, IOException { final int screenshot_num = 0; diff --git a/src/test/com/jogamp/opengl/test/junit/util/MiscUtils.java b/src/test/com/jogamp/opengl/test/junit/util/MiscUtils.java index bf656bb4d..7f35d7a86 100644 --- a/src/test/com/jogamp/opengl/test/junit/util/MiscUtils.java +++ b/src/test/com/jogamp/opengl/test/junit/util/MiscUtils.java @@ -97,6 +97,14 @@ public class MiscUtils { return "0x" + Long.toHexString( hex ); } + public static void waitForKey(final String preMessage) { + final BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); + System.err.println(preMessage+"> Press enter to continue"); + try { + System.err.println(stdin.readLine()); + } catch (final IOException e) { e.printStackTrace(); } + } + public static void assertFloatBufferEquals(final String errmsg, final FloatBuffer expected, final FloatBuffer actual, final float delta) { if(null == expected && null == actual) { return; |