From 0f1ed8774549d51b45ade69e8883dcd5565951b2 Mon Sep 17 00:00:00 2001 From: Xavier Hallade Date: Fri, 9 Jan 2015 11:37:13 +0100 Subject: added workaround to list devices in case platform only supports CL_DEVICE_TYPE_GPU (and not CL_DEVICE_TYPE_ALL). That's the case with PowerVR OpenCL driver on Android devices. --- src/com/jogamp/opencl/CLPlatform.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/com/jogamp/opencl/CLPlatform.java b/src/com/jogamp/opencl/CLPlatform.java index d63f670..26cdbc8 100644 --- a/src/com/jogamp/opencl/CLPlatform.java +++ b/src/com/jogamp/opencl/CLPlatform.java @@ -271,7 +271,12 @@ public class CLPlatform { * @see #listCLDevices(com.jogamp.opencl.CLDevice.Type...) */ public CLDevice[] listCLDevices() { - return this.listCLDevices(CLDevice.Type.ALL); + try{ + return this.listCLDevices(CLDevice.Type.ALL); + } + catch(CLInvalidDeviceTypeException ignore){ //trying to list GPUs if CL_DEVICE_TYPE_ALL isn't valid. on some non-standard implementations (Android PowerVR), only CL_DEVICE_TYPE_GPU is supported and use of other types including ALL will lead to a CL_INVALID_DEVICE_TYPE + return this.listCLDevices(CLDevice.Type.GPU); + } } /** -- cgit v1.2.3