From b967f1734440411e0559a40929c532c6aa1727e0 Mon Sep 17 00:00:00 2001
From: Gary Frost <frost.gary@gmail.com>
Date: Wed, 3 Oct 2012 04:31:54 +0000
Subject: [PATCH]

---
 examples/javaonedemo/life.bat                 |  3 +-
 examples/javaonedemo/mandel.bat               |  9 +----
 examples/javaonedemo/nbody.bat                |  6 ---
 .../aparapi/examples/javaonedemo/Life.java    | 39 ++++++-------------
 .../aparapi/examples/javaonedemo/Mandel.java  |  7 +---
 .../aparapi/examples/javaonedemo/NBody.java   |  9 ++---
 .../sample/convolution/Convolution.java       |  2 +
 samples/life/life.bat                         |  1 +
 .../src/com/amd/aparapi/sample/life/Main.java | 27 ++++++++++---
 9 files changed, 43 insertions(+), 60 deletions(-)

diff --git a/examples/javaonedemo/life.bat b/examples/javaonedemo/life.bat
index 54a44455..7b3bd0bf 100644
--- a/examples/javaonedemo/life.bat
+++ b/examples/javaonedemo/life.bat
@@ -1,7 +1,6 @@
+@echo off
 java ^
  -Djava.library.path=../../com.amd.aparapi.jni/dist ^
- -Dcom.amd.aparapi.enableProfiling=false ^
- -Dcom.amd.aparapi.enableVerboseJNI=false ^
  -classpath ../../com.amd.aparapi/dist/aparapi.jar;javaonedemo.jar ^
  com.amd.aparapi.examples.javaonedemo.Life
 
diff --git a/examples/javaonedemo/mandel.bat b/examples/javaonedemo/mandel.bat
index 11988e6f..f8372d85 100644
--- a/examples/javaonedemo/mandel.bat
+++ b/examples/javaonedemo/mandel.bat
@@ -1,13 +1,6 @@
+@echo off 
 java ^
  -Djava.library.path=../../com.amd.aparapi.jni/dist ^
- -Dcom.amd.aparapi.executionMode=%1 ^
- -Dcom.amd.aparapi.logLevel=SEVERE^
- -Dcom.amd.aparapi.enableVerboseJNI=false ^
- -Dcom.amd.aparapi.enableProfiling=false ^
- -Dcom.amd.aparapi.enableShowGeneratedOpenCL=false ^
- -Dcom.amd.aparapi.enableVerboseJNIOpenCLResourceTracking=false ^
- -Dcom.amd.aparapi.dumpFlags=true ^
- -Dcom.amd.aparapi.enableInstructionDecodeViewer=false ^
  -classpath ../../com.amd.aparapi/dist/aparapi.jar;javaonedemo.jar ^
  com.amd.aparapi.examples.javaonedemo.Mandel
 
diff --git a/examples/javaonedemo/nbody.bat b/examples/javaonedemo/nbody.bat
index 215e7061..87d3f6d6 100644
--- a/examples/javaonedemo/nbody.bat
+++ b/examples/javaonedemo/nbody.bat
@@ -1,12 +1,6 @@
 @echo off
-
 java ^
   -Djava.library.path=..\..\com.amd.aparapi.jni\dist;jogamp ^
-  -Dcom.amd.aparapi.executionMode=%1 ^
-  -Dcom.amd.aparapi.enableProfiling=false ^
-  -Dbodies=%2 ^
-  -Dheight=600 ^
-  -Dwidth=600 ^
   -classpath jogamp\gluegen-rt.jar;jogamp\jogl.all.jar;..\..\com.amd.aparapi\dist\aparapi.jar;javaonedemo.jar ^
   com.amd.aparapi.examples.javaonedemo.NBody 
 
diff --git a/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/Life.java b/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/Life.java
index 8653873a..fafb309f 100644
--- a/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/Life.java
+++ b/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/Life.java
@@ -186,6 +186,8 @@ public class Life{
 
    // static LifeKernel lifeKernel = null;
 
+   static long start= 0L;
+   static int generations= 0;
    static double generationsPerSecondField = 0;
 
    public static void main(String[] _args) {
@@ -193,7 +195,7 @@ public class Life{
       JFrame frame = new JFrame("Game of Life");
       final int width = Integer.getInteger("width", 1024 + 256);
 
-      final int height = Integer.getInteger("height", 768 - 64);
+      final int height = Integer.getInteger("height", 768 - 64 -32);
 
       // Buffer is twice the size as the screen.  We will alternate between mutating data from top to bottom
       // and bottom to top in alternate generation passses. The LifeKernel will track which pass is which
@@ -208,7 +210,6 @@ public class Life{
          @Override public void paintComponent(Graphics g) {
             g.setFont(font);
             g.setColor(Color.WHITE);
-            //  if (lifeKernel != null) {
             if (lifeKernel.isExplicit()) {
                lifeKernel.get(lifeKernel.imageData); // We only pull the imageData when we intend to use it.
                List<ProfileInfo> profileInfo = lifeKernel.getProfileInfo();
@@ -226,9 +227,14 @@ public class Life{
             } else {
                g.drawImage(image, 0, 0, width, height, 0, height, width, 2 * height, this);
             }
+            long now = System.currentTimeMillis();
+            if (now - start > 1000) {
+               generationsPerSecondField = (generations * 1000.0) / (now - start);
+               start = now;
+               generations = 0;
+            }
             g.drawString(String.format("%5.2f", generationsPerSecondField), 20, 100);
 
-            // }
          }
       };
 
@@ -246,7 +252,6 @@ public class Life{
       controlPanel.add(startButton);
 
       final String[] choices = new String[] {
-            // "Java Sequential",
             "Java Threads",
             "GPU OpenCL"
       };
@@ -256,29 +261,16 @@ public class Life{
       modeButton.addItemListener(new ItemListener(){
          @Override public void itemStateChanged(ItemEvent e) {
             String item = (String) modeButton.getSelectedItem();
-
-            // if (item.equals(choices[2])) {
-            // modeButton = gpuMandelBrot;
-            //   } else 
             if (item.equals(choices[0])) {
                lifeKernel.setExecutionMode(Kernel.EXECUTION_MODE.JTP);
-
-               // modeButton = javaMandelBrot;
             } else if (item.equals(choices[1])) {
                lifeKernel.setExecutionMode(Kernel.EXECUTION_MODE.GPU);
-               // modeButton = javaMandelBrotMultiThread;
             }
          }
 
       });
       controlPanel.add(modeButton);
 
-      //  controlPanel.add(new JLabel(lifeKernel.getExecutionMode().toString()));
-
-      //  controlPanel.add(new JLabel("  Generations/Second="));
-      //  JLabel generationsPerSecond = new JLabel("0.00");
-      //  controlPanel.add(generationsPerSecond);
-
       // Set the default size and add to the frames content pane
       viewer.setPreferredSize(new Dimension(width, height));
       frame.getContentPane().add(viewer);
@@ -288,8 +280,6 @@ public class Life{
       frame.setVisible(true);
       frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 
-      long start = System.currentTimeMillis();
-      long generations = 0;
       while (!running) {
          try {
             Thread.sleep(10);
@@ -299,18 +289,11 @@ public class Life{
             e1.printStackTrace();
          }
       }
+      start = System.currentTimeMillis();
       while (true) {
-
          lifeKernel.nextGeneration(); // Work is performed here
-         viewer.repaint(); // Request a repaint of the viewer (causes paintComponent(Graphics) to be called later not synchronous
          generations++;
-         long now = System.currentTimeMillis();
-         if (now - start > 1000) {
-            generationsPerSecondField = (generations * 1000.0) / (now - start);
-            //  generationsPerSecond.setText(String.format("%5.2f", generationsPerSecondField));
-            start = now;
-            generations = 0;
-         }
+         viewer.repaint(); // Request a repaint of the viewer (causes paintComponent(Graphics) to be called later not synchronous
       }
 
    }
diff --git a/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/Mandel.java b/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/Mandel.java
index 5348073a..7ea0d3fc 100644
--- a/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/Mandel.java
+++ b/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/Mandel.java
@@ -178,10 +178,10 @@ public class Mandel{
       JFrame frame = new JFrame("MandelBrot");
 
       /** Width of Mandelbrot view. */
-      final int width = 768;
+      final int width = 768-64-32;
 
       /** Height of Mandelbrot view. */
-      final int height = 768;
+      final int height = 768-64-32;
 
       /** Mandelbrot image height. */
       final Range range = Range.create(width * height);
@@ -280,9 +280,6 @@ public class Mandel{
       System.arraycopy(rgb, 0, imageRgb, 0, rgb.length);
       viewer.repaint();
 
-      // Report target execution mode: GPU or JTP (Java Thread Pool).
-      System.out.println("Execution mode=" + kernel.getExecutionMode());
-
       // Window listener to dispose Kernel resources on user exit.
       frame.addWindowListener(new WindowAdapter(){
          public void windowClosing(WindowEvent _windowEvent) {
diff --git a/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/NBody.java b/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/NBody.java
index a6aa782d..14d77428 100644
--- a/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/NBody.java
+++ b/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/NBody.java
@@ -200,7 +200,7 @@ public class NBody{
 
    public static void main(String _args[]) {
 
-      final NBodyKernel kernel = new NBodyKernel(Range.create(Integer.getInteger("bodies", 12288 - 256 - 32)));
+      final NBodyKernel kernel = new NBodyKernel(Range.create(Integer.getInteger("bodies", 10000)));
       kernel.setExecutionMode(Kernel.EXECUTION_MODE.JTP);
       JFrame frame = new JFrame("NBody");
 
@@ -217,7 +217,6 @@ public class NBody{
          }
       });
       controlPanel.add(startButton);
-      controlPanel.add(new JLabel(kernel.getExecutionMode().toString()));
 
       //  controlPanel.add(new JLabel("   Particles"));
 
@@ -260,7 +259,7 @@ public class NBody{
 
       final GLUT glut = new GLUT();
 
-      Dimension dimension = new Dimension(Integer.getInteger("width", 1024 + 256), Integer.getInteger("height", 768 - 64));
+      Dimension dimension = new Dimension(Integer.getInteger("width", 1024 + 256), Integer.getInteger("height", 768 - 64-32));
       canvas.setPreferredSize(dimension);
 
       canvas.addGLEventListener(new GLEventListener(){
@@ -320,11 +319,11 @@ public class NBody{
             frames++;
 
             if (running) {
-               int framesPerSecond = (int) ((frames * 1000.0f) / time);
+               float framesPerSecond = (float) ((frames * 1000.0f) / time);
 
                gl.glColor3f(.5f, .5f, .5f);
                gl.glRasterPos2i(-40, 38);
-               glut.glutBitmapString(8, String.format("%5d fps", framesPerSecond));
+               glut.glutBitmapString(8, String.format("%5.2f fps", framesPerSecond));
                gl.glFlush();
             }
             frames = 0;
diff --git a/samples/convolution/src/com/amd/aparapi/sample/convolution/Convolution.java b/samples/convolution/src/com/amd/aparapi/sample/convolution/Convolution.java
index 4a7b0883..4d322f7b 100644
--- a/samples/convolution/src/com/amd/aparapi/sample/convolution/Convolution.java
+++ b/samples/convolution/src/com/amd/aparapi/sample/convolution/Convolution.java
@@ -103,6 +103,8 @@ public class Convolution{
             -10f,
             0f,
       };
+      
+      
 
       new ConvolutionViewer(file, convMatrix3x3){
          @Override protected void applyConvolution(float[] _convMatrix3x3, byte[] _inBytes, byte[] _outBytes, int _width,
diff --git a/samples/life/life.bat b/samples/life/life.bat
index 269f06c2..61f894b3 100644
--- a/samples/life/life.bat
+++ b/samples/life/life.bat
@@ -1,5 +1,6 @@
 java ^
  -Djava.library.path=../../com.amd.aparapi.jni/dist ^
+ -Dsequential=false^
  -Dcom.amd.aparapi.executionMode=%1 ^
  -Dcom.amd.aparapi.enableProfiling=false ^
  -Dcom.amd.aparapi.enableVerboseJNI=false ^
diff --git a/samples/life/src/com/amd/aparapi/sample/life/Main.java b/samples/life/src/com/amd/aparapi/sample/life/Main.java
index f3810725..58b294c7 100644
--- a/samples/life/src/com/amd/aparapi/sample/life/Main.java
+++ b/samples/life/src/com/amd/aparapi/sample/life/Main.java
@@ -114,7 +114,11 @@ public class Main{
          imageData = ((DataBufferInt) _image.getRaster().getDataBuffer()).getData();
          width = _width;
          height = _height;
-         range = Range.create(width * height, 256);
+         if (System.getProperty("com.amd.aparapi.executionMode").equals("JTP")){
+             range = Range.create(width * height, 4);
+         }else{
+             range = Range.create(width * height);
+         }
          System.out.println("range = " + range);
          fromBase = height * width;
          toBase = 0;
@@ -129,8 +133,7 @@ public class Main{
 
       }
 
-      @Override public void run() {
-         int gid = getGlobalId();
+      public void processPixel(int gid){
          int to = gid + toBase;
          int from = gid + fromBase;
          int x = gid % width;
@@ -158,16 +161,28 @@ public class Main{
             }
 
          }
+      }
 
+      @Override public void run() {
+         int gid = getGlobalId();
+         processPixel(gid);
       }
 
+      boolean sequential = Boolean.getBoolean("sequential");
+
       public void nextGeneration() {
          // swap fromBase and toBase
          int swap = fromBase;
          fromBase = toBase;
          toBase = swap;
+         if (sequential){
+            for(int gid = 0; gid<(width*height); gid++){
+               processPixel(gid);
+            }
 
-         execute(range);
+         }else{
+            execute(range);
+         }
 
       }
 
@@ -178,9 +193,9 @@ public class Main{
    public static void main(String[] _args) {
 
       JFrame frame = new JFrame("Game of Life");
-      final int width = Integer.getInteger("width", 1024 + 512);
+      final int width = Integer.getInteger("width", 1024 + 512+256+128);
 
-      final int height = Integer.getInteger("height", 768);
+      final int height = Integer.getInteger("height", 768+256);
 
       // Buffer is twice the size as the screen.  We will alternate between mutating data from top to bottom
       // and bottom to top in alternate generation passses. The LifeKernel will track which pass is which
-- 
GitLab