From c2ba79169bd36f35c2c5c325273b7cba2d10ba9c Mon Sep 17 00:00:00 2001 From: Ioannis Tsakpinis Date: Fri, 1 Oct 2010 03:48:41 +0000 Subject: [PATCH] OpenCL C 1.0 didn't support 3-component vectors. --- src/java/org/lwjgl/test/opencl/gl/DemoFractal.java | 10 ++++++---- src/java/org/lwjgl/test/opencl/gl/Mandelbrot.cl | 7 ++++--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/java/org/lwjgl/test/opencl/gl/DemoFractal.java b/src/java/org/lwjgl/test/opencl/gl/DemoFractal.java index f7676eba..e6517a52 100644 --- a/src/java/org/lwjgl/test/opencl/gl/DemoFractal.java +++ b/src/java/org/lwjgl/test/opencl/gl/DemoFractal.java @@ -346,10 +346,12 @@ public class DemoFractal { else if ( device_type == CL_DEVICE_TYPE_CPU && !caps.OpenGL21 ) throw new RuntimeException("OpenGL 2.1 is required to run this demo."); - if ( caps.GL_ARB_debug_output ) - glDebugMessageCallbackARB(new ARBDebugOutputCallback()); - else if ( caps.GL_AMD_debug_output ) - glDebugMessageCallbackAMD(new AMDDebugOutputCallback()); + if ( params.contains("debugGL") ) { + if ( caps.GL_ARB_debug_output ) + glDebugMessageCallbackARB(new ARBDebugOutputCallback()); + else if ( caps.GL_AMD_debug_output ) + glDebugMessageCallbackAMD(new AMDDebugOutputCallback()); + } if ( device_type == CL_DEVICE_TYPE_GPU ) System.out.println("OpenCL Device Type: GPU (Use -forceCPU to use CPU)"); diff --git a/src/java/org/lwjgl/test/opencl/gl/Mandelbrot.cl b/src/java/org/lwjgl/test/opencl/gl/Mandelbrot.cl index c9a9eeb6..d07c2ae8 100644 --- a/src/java/org/lwjgl/test/opencl/gl/Mandelbrot.cl +++ b/src/java/org/lwjgl/test/opencl/gl/Mandelbrot.cl @@ -63,12 +63,13 @@ kernel void mandelbrot( // We could also use an R32UI texture and do the unpacking in GLSL, // but then we'd require OpenGL 3.0 (GLSL 1.30). uint c = colorMap[colorIndex]; - float3 oc = (float3)( + float4 oc = (float4)( (c & 0xFF) >> 0, (c & 0xFF00) >> 8, - (c & 0xFF0000) >> 16 + (c & 0xFF0000) >> 16, + 255.0 ); - write_imagef(output, (int2)(ix, iy), (float4)(oc / 255.0, 1.0)); + write_imagef(output, (int2)(ix, iy), oc / 255.0); #else output[iy * width + ix] = colorMap[colorIndex]; #endif