Jogamp
added GLProfile.initSingleton() to GL-CL demos (see JOGL Multithreading doc).
authorMichael Bien <mbien@fh-landshut.de>
Wed, 16 Jun 2010 14:23:03 +0000 (16:23 +0200)
committerMichael Bien <mbien@fh-landshut.de>
Wed, 16 Jun 2010 14:23:03 +0000 (16:23 +0200)
src/com/jogamp/opencl/demos/fractal/MultiDeviceFractal.java
src/com/jogamp/opencl/demos/joglinterop/GLCLInteroperabilityDemo.java
src/com/jogamp/opencl/demos/julia3d/Julia3d.java

index 84f129d..f9bb7cd 100644 (file)
@@ -141,7 +141,7 @@ public class MultiDeviceFractal implements GLEventListener {
 
     private void initCL(GLContext glCtx){
         try {
-            // SLI on NV platform wasn't very fast (or did not work at all)
+            // SLI on NV platform wasn't very fast (or did not work at all -> CL_INVALID_OPERATION)
             if(CLPlatform.getDefault().getName().toLowerCase().contains("nvidia")) {
                 clContext = CLGLContext.create(glCtx, CLPlatform.getDefault().getMaxFlopsDevice(GPU));
             }else{
@@ -196,8 +196,14 @@ public class MultiDeviceFractal implements GLEventListener {
 
         } catch (IOException ex) {
             Logger.getLogger(getClass().getName()).log(Level.SEVERE, "can not find 'Mandelbrot.cl' in classpath.", ex);
+            if(clContext != null) {
+                clContext.release();
+            }
         } catch (CLException ex) {
-            Logger.getLogger(getClass().getName()).log(Level.SEVERE, "something went wrong, hopefully no one got hurt", ex);
+            Logger.getLogger(getClass().getName()).log(Level.SEVERE, "something went wrong, hopefully nobody got hurt", ex);
+            if(clContext != null) {
+                clContext.release();
+            }
         }
 
     }
@@ -521,6 +527,7 @@ public class MultiDeviceFractal implements GLEventListener {
     }
 
     public static void main(String args[]) {
+        GLProfile.initSingleton();
         SwingUtilities.invokeLater(new Runnable() {
             public void run() {
                 new MultiDeviceFractal(512, 512);
index 3abe1de..8a0d018 100644 (file)
@@ -274,6 +274,7 @@ public class GLCLInteroperabilityDemo implements GLEventListener {
     public void dispose(GLAutoDrawable drawable) {  }
 
     public static void main(String[] args) {
+        GLProfile.initSingleton();
         new GLCLInteroperabilityDemo();
     }
 
index f4bf392..4216af8 100644 (file)
@@ -14,6 +14,7 @@ import java.io.IOException;
 import java.nio.Buffer;
 import java.nio.ByteBuffer;
 import java.nio.FloatBuffer;
+import javax.media.opengl.GLProfile;
 import javax.swing.SwingUtilities;
 
 import static com.jogamp.opencl.CLMemory.Mem.*;
@@ -188,7 +189,7 @@ public class Julia3d {
 
 
     public static void main(String[] args) {
-
+        GLProfile.initSingleton();
         RenderingConfig config = RenderingConfig.create()
             .setWidth(640).setHeight(480)
             .setEnableShadow(1)
http://JogAmp.org git info: FAQ, tutorial and man pages.