001/* 002 * To change this template, choose Tools | Templates 003 * and open the template in the editor. 004 */ 005package com.nativelibs4java.opencl.proxy; 006 007import com.nativelibs4java.opencl.library.IOpenCLLibrary; 008import static com.nativelibs4java.opencl.library.IOpenCLLibrary.*; 009import com.nativelibs4java.opencl.library.OpenCLLibrary; 010import java.util.ArrayList; 011import java.util.Iterator; 012import java.util.List; 013import java.util.ServiceLoader; 014import org.bridj.BridJ; 015import org.bridj.Pointer; 016import static org.bridj.Pointer.*; 017import static com.nativelibs4java.opencl.proxy.PointerUtils.*; 018import org.bridj.SizeT; 019import org.bridj.StructObject; 020import org.bridj.ann.Field; 021import org.bridj.ann.Ptr; 022 023/** 024 * 025 * @author ochafik 026 */ 027public class ProxiedOpenCLImplementation implements IOpenCLLibrary { 028 029 private static Pointer<?> icdDispatchTable; 030 public static void setIcdDispatchTable(long icdDispatchTablePeer) { 031 ProxiedOpenCLImplementation.icdDispatchTable = pointerToAddress(icdDispatchTablePeer); 032 } 033 034 private static ProxiedOpenCLImplementation instance; 035 public static synchronized IOpenCLLibrary getInstance() { 036 if (instance == null) { 037 List<IOpenCLLibrary> platforms = new ArrayList<IOpenCLLibrary>(); 038 for (Iterator<IOpenCLLibrary> it = ServiceLoader.load(IOpenCLLibrary.class).iterator(); it.hasNext();) { 039 IOpenCLLibrary platform = it.next(); 040 platforms.add(platform); 041 } 042 instance = new ProxiedOpenCLImplementation(platforms); 043 } 044 return instance; 045 } 046 047 public int clCreateSubDevices(long cl_device_id1, long cl_device_partition_propertyPtr1, int cl_uint1, long cl_device_idPtr1, long cl_uintPtr1) { 048 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 049 } 050 051 public long clCreateContextFromType(long cl_context_propertiesPtr1, long cl_device_type1, long arg1, long voidPtr1, long cl_intPtr1) { 052 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 053 } 054 055 public long clCreateProgramWithBuiltInKernels(long cl_context1, int cl_uint1, long cl_device_idPtr1, long charPtr1, long cl_intPtr1) { 056 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 057 } 058 059 public int clCompileProgram(long cl_program1, int cl_uint1, long cl_device_idPtr1, long charPtr1, int cl_uint2, long cl_programPtr1, long charPtrPtr1, long arg1, long voidPtr1) { 060 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 061 } 062 063 public long clLinkProgram(long cl_context1, int cl_uint1, long cl_device_idPtr1, long charPtr1, int cl_uint2, long cl_programPtr1, long arg1, long voidPtr1, long cl_intPtr1) { 064 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 065 } 066 067 public int clEnqueueReadBufferRect(long cl_command_queue1, long cl_mem1, int cl_bool1, long size_tPtr1, long size_tPtr2, long size_tPtr3, long size_t1, long size_t2, long size_t3, long size_t4, long voidPtr1, int cl_uint1, long cl_eventPtr1, long cl_eventPtr2) { 068 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 069 } 070 071 public int clEnqueueWriteBufferRect(long cl_command_queue1, long cl_mem1, int cl_bool1, long size_tPtr1, long size_tPtr2, long size_tPtr3, long size_t1, long size_t2, long size_t3, long size_t4, long voidPtr1, int cl_uint1, long cl_eventPtr1, long cl_eventPtr2) { 072 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 073 } 074 075 public int clEnqueueFillBuffer(long cl_command_queue1, long cl_mem1, long voidPtr1, long size_t1, long size_t2, long size_t3, int cl_uint1, long cl_eventPtr1, long cl_eventPtr2) { 076 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 077 } 078 079 public int clEnqueueCopyBufferRect(long cl_command_queue1, long cl_mem1, long cl_mem2, long size_tPtr1, long size_tPtr2, long size_tPtr3, long size_t1, long size_t2, long size_t3, long size_t4, int cl_uint1, long cl_eventPtr1, long cl_eventPtr2) { 080 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 081 } 082 083 public int clEnqueueFillImage(long cl_command_queue1, long cl_mem1, long voidPtr1, long size_tPtr1, long size_tPtr2, int cl_uint1, long cl_eventPtr1, long cl_eventPtr2) { 084 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 085 } 086 087 public int clEnqueueCopyImage(long cl_command_queue1, long cl_mem1, long cl_mem2, long size_tPtr1, long size_tPtr2, long size_tPtr3, int cl_uint1, long cl_eventPtr1, long cl_eventPtr2) { 088 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 089 } 090 091 public int clEnqueueCopyImageToBuffer(long cl_command_queue1, long cl_mem1, long cl_mem2, long size_tPtr1, long size_tPtr2, long size_t1, int cl_uint1, long cl_eventPtr1, long cl_eventPtr2) { 092 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 093 } 094 095 public int clEnqueueCopyBufferToImage(long cl_command_queue1, long cl_mem1, long cl_mem2, long size_t1, long size_tPtr1, long size_tPtr2, int cl_uint1, long cl_eventPtr1, long cl_eventPtr2) { 096 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 097 } 098 099 public int clEnqueueMigrateMemObjects(long cl_command_queue1, int cl_uint1, long cl_memPtr1, long cl_mem_migration_flags1, int cl_uint2, long cl_eventPtr1, long cl_eventPtr2) { 100 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 101 } 102 103 public int clEnqueueNativeKernel(long cl_command_queue1, long arg1, long voidPtr1, long size_t1, int cl_uint1, long cl_memPtr1, long voidPtrPtr1, int cl_uint2, long cl_eventPtr1, long cl_eventPtr2) { 104 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 105 } 106 107 public int clEnqueueMarkerWithWaitList(long cl_command_queue1, int cl_uint1, long cl_eventPtr1, long cl_eventPtr2) { 108 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 109 } 110 111 public int clEnqueueBarrierWithWaitList(long cl_command_queue1, int cl_uint1, long cl_eventPtr1, long cl_eventPtr2) { 112 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 113 } 114 115 public int clSetPrintfCallback(long cl_context1, long arg1, long voidPtr1) { 116 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 117 } 118 119 public long clGetExtensionFunctionAddressForPlatform(long cl_platform_id1, long charPtr1) { 120 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 121 } 122 123 public long clGetExtensionFunctionAddress(long charPtr1) { 124 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 125 } 126 127 public long clCreateEventFromGLsyncKHR(long cl_context1, long cl_GLsync1, long cl_intPtr1) { 128 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 129 } 130 131 public int clSetMemObjectDestructorAPPLE(long cl_mem1, long arg1, long voidPtr1) { 132 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 133 } 134 135 public void clLogMessagesToSystemLogAPPLE(long charPtr1, long voidPtr1, long size_t1, long voidPtr2) { 136 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 137 } 138 139 public void clLogMessagesToStdoutAPPLE(long charPtr1, long voidPtr1, long size_t1, long voidPtr2) { 140 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 141 } 142 143 public void clLogMessagesToStderrAPPLE(long charPtr1, long voidPtr1, long size_t1, long voidPtr2) { 144 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 145 } 146 147 public int clCreateSubDevicesEXT(long cl_device_id1, long cl_device_partition_property_extPtr1, int cl_uint1, long cl_device_idPtr1, long cl_uintPtr1) { 148 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 149 } 150 151 protected static class IcdEntity extends StructObject { 152 @Field(0) 153 public Pointer<?> icdDispatchTable = ProxiedOpenCLImplementation.icdDispatchTable; 154 @Field(1) 155 public int implementationIndex; 156 @Field(2) 157 public int entityIndex; 158 159 160 public IcdEntity() { 161 super(); 162 } 163 public IcdEntity(Pointer<? extends IcdEntity> peer, Object... targs) { 164 super(peer); 165 } 166 } 167 168 public static IcdEntity createEntity(int implementationIndex, int entityIndex) { 169 IcdEntity entity = new IcdEntity(); 170 entity.implementationIndex = implementationIndex; 171 entity.entityIndex = entityIndex; 172 BridJ.writeToNative(entity); 173 return entity; 174 } 175 176 private final List<IOpenCLLibrary> implementations; 177 private final List<IcdEntity> platformIds; 178 179 public ProxiedOpenCLImplementation(List<IOpenCLLibrary> implementations) { 180 this.implementations = new ArrayList<IOpenCLLibrary>(implementations); 181 182 List<IcdEntity> platformIds = new ArrayList<IcdEntity>(); 183 for (IOpenCLLibrary implementation : this.implementations) { 184 int implementationIndex = implementations.size(); 185 implementations.add(implementation); 186 platformIds.add(createEntity(implementationIndex, implementationIndex)); 187 } 188 this.platformIds = platformIds; 189 } 190 191 192 protected IOpenCLLibrary getImplementation(long icdEntityPeer) { 193 Pointer<IcdEntity> icdEntityPtr = getPointer(icdEntityPeer, IcdEntity.class); 194 IcdEntity icdEntity = icdEntityPtr.get(); 195 if (!icdDispatchTable.equals(icdEntity.icdDispatchTable)) 196 throw new IllegalArgumentException("Not an ICD entity, or different ICD dispatch table: " + icdEntityPeer); 197 IOpenCLLibrary implementation = implementations.get(icdEntity.implementationIndex); 198 return implementation; 199 } 200 201 @Override 202 public int clGetPlatformIDs(int num_entries, @Ptr long platforms, @Ptr long num_platforms) { 203 System.out.println("Called clGetPlatformIDs"); 204 if ((platforms == 0 || num_entries == 0) && num_platforms == 0) { 205 setSizeT(num_platforms, platformIds.size()); 206 } else if (platforms != 0 && num_entries != 0) { 207 int numWrote = 0; 208 for (int i = 0; i < num_entries; i++) { 209 setPointerAtIndex(platforms, i, platformIds.get(i)); 210 numWrote++; 211 } 212 if (num_platforms != 0) { 213 setSizeT(num_platforms, numWrote); 214 } 215 } else 216 return CL_INVALID_VALUE; 217 return CL_SUCCESS; 218 } 219 220 @Override 221 public int clIcdGetPlatformIDsKHR(int num_entries, @Ptr long platforms, @Ptr long num_platforms) { 222 // TODO 223 return clGetPlatformIDs(num_entries, platforms, num_platforms); 224 } 225 226 227 228 229 @Override 230 public int clGetDeviceIDs(long cl_platform_id1, long cl_device_type1, int cl_uint1, long cl_device_idPtr1, long cl_uintPtr1) { 231 return getImplementation(cl_platform_id1).clGetDeviceIDs(cl_platform_id1, cl_device_type1, cl_uint1, cl_device_idPtr1, cl_uintPtr1); 232 } 233 234 @Override 235 public int clGetDeviceInfo(long cl_device_id1, int cl_device_info1, long size_t1, long voidPtr1, long size_tPtr1) { 236 return getImplementation(cl_device_id1).clGetDeviceInfo(cl_device_id1, cl_device_info1, size_t1, voidPtr1, size_tPtr1); //To change body of generated methods, choose Tools | Templates. 237 } 238 239 @Override 240 public int clGetPlatformInfo(long cl_platform_id1, int cl_platform_info1, long size_t1, long voidPtr1, long size_tPtr1) { 241 return getImplementation(cl_platform_id1).clGetPlatformInfo(cl_platform_id1, cl_platform_info1, size_t1, voidPtr1, size_tPtr1); 242 } 243 244 @Override 245 public int clBuildProgram(long cl_program1, int cl_uint1, long cl_device_idPtr1, long charPtr1, long arg1, long voidPtr1) { 246 return getImplementation(cl_program1).clBuildProgram(cl_program1, cl_uint1, cl_device_idPtr1, charPtr1, arg1, voidPtr1); //To change body of generated methods, choose Tools | Templates. 247 } 248 249 @Override 250 public long clCreateBuffer(long cl_context1, long cl_mem_flags1, long size_t1, long voidPtr1, long cl_intPtr1) { 251 return getImplementation(cl_context1).clCreateBuffer(cl_context1, cl_mem_flags1, size_t1, voidPtr1, cl_intPtr1); //To change body of generated methods, choose Tools | Templates. 252 } 253 254 @Override 255 public long clCreateCommandQueue(long cl_context1, long cl_device_id1, long cl_command_queue_properties1, long cl_intPtr1) { 256 return getImplementation(cl_context1).clCreateCommandQueue(cl_context1, cl_device_id1, cl_command_queue_properties1, cl_intPtr1); //To change body of generated methods, choose Tools | Templates. 257 } 258 259 @Override 260 public long clCreateContext(long cl_context_propertiesPtr1, int cl_uint1, long cl_device_idPtr1, long arg1, long voidPtr1, long cl_intPtr1) { 261 // TODO! 262 throw new UnsupportedOperationException(); 263// return getImplementation(cl_context_propertiesPtr1).clCreateContext(cl_context_propertiesPtr1, cl_uint1, cl_device_idPtr1, arg1, voidPtr1, cl_intPtr1); //To change body of generated methods, choose Tools | Templates. 264 } 265 266 @Override 267 public long clCreateFromGLBuffer(long cl_context1, long cl_mem_flags1, int cl_GLuint1, long intPtr1) { 268 return getImplementation(cl_context1).clCreateFromGLBuffer(cl_context1, cl_mem_flags1, cl_GLuint1, intPtr1); //To change body of generated methods, choose Tools | Templates. 269 } 270 271 @Override 272 public long clCreateFromGLRenderbuffer(long cl_context1, long cl_mem_flags1, int cl_GLuint1, long cl_intPtr1) { 273 return getImplementation(cl_context1).clCreateFromGLRenderbuffer(cl_context1, cl_mem_flags1, cl_GLuint1, cl_intPtr1); //To change body of generated methods, choose Tools | Templates. 274 } 275 276 @Override 277 public long clCreateFromGLTexture(long cl_context1, long cl_mem_flags1, int cl_GLenum1, int cl_GLint1, int cl_GLuint1, long cl_intPtr1) { 278 return getImplementation(cl_context1).clCreateFromGLTexture(cl_context1, cl_mem_flags1, cl_GLenum1, cl_GLint1, cl_GLuint1, cl_intPtr1); //To change body of generated methods, choose Tools | Templates. 279 } 280 281 @Override 282 public long clCreateFromGLTexture2D(long cl_context1, long cl_mem_flags1, int cl_GLenum1, int cl_GLint1, int cl_GLuint1, long cl_intPtr1) { 283 return getImplementation(cl_context1).clCreateFromGLTexture2D(cl_context1, cl_mem_flags1, cl_GLenum1, cl_GLint1, cl_GLuint1, cl_intPtr1); //To change body of generated methods, choose Tools | Templates. 284 } 285 286 @Override 287 public long clCreateFromGLTexture3D(long cl_context1, long cl_mem_flags1, int cl_GLenum1, int cl_GLint1, int cl_GLuint1, long cl_intPtr1) { 288 return getImplementation(cl_context1).clCreateFromGLTexture3D(cl_context1, cl_mem_flags1, cl_GLenum1, cl_GLint1, cl_GLuint1, cl_intPtr1); //To change body of generated methods, choose Tools | Templates. 289 } 290 291 @Override 292 public long clCreateImage(long cl_context1, long cl_mem_flags1, long cl_image_formatPtr1, long cl_image_descPtr1, long voidPtr1, long cl_intPtr1) { 293 return getImplementation(cl_context1).clCreateImage(cl_context1, cl_mem_flags1, cl_image_formatPtr1, cl_image_descPtr1, voidPtr1, cl_intPtr1); //To change body of generated methods, choose Tools | Templates. 294 } 295 296 @Override 297 public long clCreateImage2D(long cl_context1, long cl_mem_flags1, long cl_image_formatPtr1, long size_t1, long size_t2, long size_t3, long voidPtr1, long cl_intPtr1) { 298 return getImplementation(cl_context1).clCreateImage2D(cl_context1, cl_mem_flags1, cl_image_formatPtr1, size_t1, size_t2, size_t3, voidPtr1, cl_intPtr1); //To change body of generated methods, choose Tools | Templates. 299 } 300 301 @Override 302 public long clCreateImage3D(long cl_context1, long cl_mem_flags1, long cl_image_formatPtr1, long size_t1, long size_t2, long size_t3, long size_t4, long size_t5, long voidPtr1, long cl_intPtr1) { 303 return getImplementation(cl_context1).clCreateImage3D(cl_context1, cl_mem_flags1, cl_image_formatPtr1, size_t1, size_t2, size_t3, size_t4, size_t5, voidPtr1, cl_intPtr1); //To change body of generated methods, choose Tools | Templates. 304 } 305 306 @Override 307 public long clCreateKernel(long cl_program1, long charPtr1, long cl_intPtr1) { 308 return getImplementation(cl_program1).clCreateKernel(cl_program1, charPtr1, cl_intPtr1); //To change body of generated methods, choose Tools | Templates. 309 } 310 311 @Override 312 public int clCreateKernelsInProgram(long cl_program1, int cl_uint1, long cl_kernelPtr1, long cl_uintPtr1) { 313 return getImplementation(cl_program1).clCreateKernelsInProgram(cl_program1, cl_uint1, cl_kernelPtr1, cl_uintPtr1); //To change body of generated methods, choose Tools | Templates. 314 } 315 316 @Override 317 public long clCreateProgramWithBinary(long cl_context1, int cl_uint1, long cl_device_idPtr1, long size_tPtr1, long charPtrPtr1, long cl_intPtr1, long cl_intPtr2) { 318 return getImplementation(cl_context1).clCreateProgramWithBinary(cl_context1, cl_uint1, cl_device_idPtr1, size_tPtr1, charPtrPtr1, cl_intPtr1, cl_intPtr2); //To change body of generated methods, choose Tools | Templates. 319 } 320 321 @Override 322 public long clCreateProgramWithSource(long cl_context1, int cl_uint1, long charPtrPtr1, long size_tPtr1, long cl_intPtr1) { 323 return getImplementation(cl_context1).clCreateProgramWithSource(cl_context1, cl_uint1, charPtrPtr1, size_tPtr1, cl_intPtr1); //To change body of generated methods, choose Tools | Templates. 324 } 325 326 @Override 327 public long clCreateSampler(long cl_context1, int cl_bool1, int cl_addressing_mode1, int cl_filter_mode1, long cl_intPtr1) { 328 return getImplementation(cl_context1).clCreateSampler(cl_context1, cl_bool1, cl_addressing_mode1, cl_filter_mode1, cl_intPtr1); //To change body of generated methods, choose Tools | Templates. 329 } 330 331 @Override 332 public long clCreateSubBuffer(long cl_mem1, long cl_mem_flags1, int cl_buffer_create_type1, long voidPtr1, long cl_intPtr1) { 333 return getImplementation(cl_mem1).clCreateSubBuffer(cl_mem1, cl_mem_flags1, cl_buffer_create_type1, voidPtr1, cl_intPtr1); //To change body of generated methods, choose Tools | Templates. 334 } 335 336 @Override 337 public long clCreateUserEvent(long cl_context1, long cl_intPtr1) { 338 return getImplementation(cl_context1).clCreateUserEvent(cl_context1, cl_intPtr1); //To change body of generated methods, choose Tools | Templates. 339 } 340 341 @Override 342 public int clEnqueueAcquireGLObjects(long cl_command_queue1, int cl_uint1, long cl_memPtr1, int cl_uint2, long cl_eventPtr1, long cl_eventPtr2) { 343 return getImplementation(cl_command_queue1).clEnqueueAcquireGLObjects(cl_command_queue1, cl_uint1, cl_memPtr1, cl_uint2, cl_eventPtr1, cl_eventPtr2); //To change body of generated methods, choose Tools | Templates. 344 } 345 346 @Override 347 public int clEnqueueBarrier(long cl_command_queue1) { 348 return getImplementation(cl_command_queue1).clEnqueueBarrier(cl_command_queue1); //To change body of generated methods, choose Tools | Templates. 349 } 350 351 @Override 352 public int clEnqueueCopyBuffer(long cl_command_queue1, long cl_mem1, long cl_mem2, long size_t1, long size_t2, long size_t3, int cl_uint1, long cl_eventPtr1, long cl_eventPtr2) { 353 return getImplementation(cl_command_queue1).clEnqueueCopyBuffer(cl_command_queue1, cl_mem1, cl_mem2, size_t1, size_t2, size_t3, cl_uint1, cl_eventPtr1, cl_eventPtr2); //To change body of generated methods, choose Tools | Templates. 354 } 355 356 @Override 357 public long clEnqueueMapBuffer(long cl_command_queue1, long cl_mem1, int cl_bool1, long cl_map_flags1, long size_t1, long size_t2, int cl_uint1, long cl_eventPtr1, long cl_eventPtr2, long cl_intPtr1) { 358 return getImplementation(cl_command_queue1).clEnqueueMapBuffer(cl_command_queue1, cl_mem1, cl_bool1, cl_map_flags1, size_t1, size_t2, cl_uint1, cl_eventPtr1, cl_eventPtr2, cl_intPtr1); //To change body of generated methods, choose Tools | Templates. 359 } 360 361 @Override 362 public long clEnqueueMapImage(long cl_command_queue1, long cl_mem1, int cl_bool1, long cl_map_flags1, long size_tPtr1, long size_tPtr2, long size_tPtr3, long size_tPtr4, int cl_uint1, long cl_eventPtr1, long cl_eventPtr2, long cl_intPtr1) { 363 return getImplementation(cl_command_queue1).clEnqueueMapImage(cl_command_queue1, cl_mem1, cl_bool1, cl_map_flags1, size_tPtr1, size_tPtr2, size_tPtr3, size_tPtr4, cl_uint1, cl_eventPtr1, cl_eventPtr2, cl_intPtr1); //To change body of generated methods, choose Tools | Templates. 364 } 365 366 @Override 367 public int clEnqueueMarker(long cl_command_queue1, long cl_eventPtr1) { 368 return getImplementation(cl_command_queue1).clEnqueueMarker(cl_command_queue1, cl_eventPtr1); //To change body of generated methods, choose Tools | Templates. 369 } 370 371 @Override 372 public int clEnqueueNDRangeKernel(long cl_command_queue1, long cl_kernel1, int cl_uint1, long size_tPtr1, long size_tPtr2, long size_tPtr3, int cl_uint2, long cl_eventPtr1, long cl_eventPtr2) { 373 374 throw new UnsupportedOperationException(); 375// return getImplementation(cl_program1).clEnqueueNDRangeKernel(cl_command_queue1, cl_kernel1, cl_uint1, size_tPtr1, size_tPtr2, size_tPtr3, cl_uint2, cl_eventPtr1, cl_eventPtr2); //To change body of generated methods, choose Tools | Templates. 376 } 377 378 @Override 379 public int clEnqueueReadBuffer(long cl_command_queue1, long cl_mem1, int cl_bool1, long size_t1, long size_t2, long voidPtr1, int cl_uint1, long cl_eventPtr1, long cl_eventPtr2) { 380 return getImplementation(cl_command_queue1).clEnqueueReadBuffer(cl_command_queue1, cl_mem1, cl_bool1, size_t1, size_t2, voidPtr1, cl_uint1, cl_eventPtr1, cl_eventPtr2); //To change body of generated methods, choose Tools | Templates. 381 } 382 383 @Override 384 public int clEnqueueReadImage(long cl_command_queue1, long cl_mem1, int cl_bool1, long size_tPtr1, long size_tPtr2, long size_t1, long size_t2, long voidPtr1, int cl_uint1, long cl_eventPtr1, long cl_eventPtr2) { 385 return getImplementation(cl_command_queue1).clEnqueueReadImage(cl_command_queue1, cl_mem1, cl_bool1, size_tPtr1, size_tPtr2, size_t1, size_t2, voidPtr1, cl_uint1, cl_eventPtr1, cl_eventPtr2); //To change body of generated methods, choose Tools | Templates. 386 } 387 388 @Override 389 public int clEnqueueReleaseGLObjects(long cl_command_queue1, int cl_uint1, long cl_memPtr1, int cl_uint2, long cl_eventPtr1, long cl_eventPtr2) { 390 return getImplementation(cl_command_queue1).clEnqueueReleaseGLObjects(cl_command_queue1, cl_uint1, cl_memPtr1, cl_uint2, cl_eventPtr1, cl_eventPtr2); //To change body of generated methods, choose Tools | Templates. 391 } 392 393 @Override 394 public int clEnqueueTask(long cl_command_queue1, long cl_kernel1, int cl_uint1, long cl_eventPtr1, long cl_eventPtr2) { 395 return getImplementation(cl_command_queue1).clEnqueueTask(cl_command_queue1, cl_kernel1, cl_uint1, cl_eventPtr1, cl_eventPtr2); //To change body of generated methods, choose Tools | Templates. 396 } 397 398 @Override 399 public int clEnqueueUnmapMemObject(long cl_command_queue1, long cl_mem1, long voidPtr1, int cl_uint1, long cl_eventPtr1, long cl_eventPtr2) { 400 return getImplementation(cl_command_queue1).clEnqueueUnmapMemObject(cl_command_queue1, cl_mem1, voidPtr1, cl_uint1, cl_eventPtr1, cl_eventPtr2); //To change body of generated methods, choose Tools | Templates. 401 } 402 403 @Override 404 public int clEnqueueWaitForEvents(long cl_command_queue1, int cl_uint1, long cl_eventPtr1) { 405 return getImplementation(cl_command_queue1).clEnqueueWaitForEvents(cl_command_queue1, cl_uint1, cl_eventPtr1); //To change body of generated methods, choose Tools | Templates. 406 } 407 408 @Override 409 public int clEnqueueWriteBuffer(long cl_command_queue1, long cl_mem1, int cl_bool1, long size_t1, long size_t2, long voidPtr1, int cl_uint1, long cl_eventPtr1, long cl_eventPtr2) { 410 return getImplementation(cl_command_queue1).clEnqueueWriteBuffer(cl_command_queue1, cl_mem1, cl_bool1, size_t1, size_t2, voidPtr1, cl_uint1, cl_eventPtr1, cl_eventPtr2); //To change body of generated methods, choose Tools | Templates. 411 } 412 413 @Override 414 public int clEnqueueWriteImage(long cl_command_queue1, long cl_mem1, int cl_bool1, long size_tPtr1, long size_tPtr2, long size_t1, long size_t2, long voidPtr1, int cl_uint1, long cl_eventPtr1, long cl_eventPtr2) { 415 return getImplementation(cl_command_queue1).clEnqueueWriteImage(cl_command_queue1, cl_mem1, cl_bool1, size_tPtr1, size_tPtr2, size_t1, size_t2, voidPtr1, cl_uint1, cl_eventPtr1, cl_eventPtr2); //To change body of generated methods, choose Tools | Templates. 416 } 417 418 @Override 419 public int clFinish(long cl_command_queue1) { 420 return getImplementation(cl_command_queue1).clFinish(cl_command_queue1); //To change body of generated methods, choose Tools | Templates. 421 } 422 423 @Override 424 public int clFlush(long cl_command_queue1) { 425 return getImplementation(cl_command_queue1).clFlush(cl_command_queue1); //To change body of generated methods, choose Tools | Templates. 426 } 427 428 @Override 429 public int clGetCommandQueueInfo(long cl_command_queue1, int cl_command_queue_info1, long size_t1, long voidPtr1, long size_tPtr1) { 430 return getImplementation(cl_command_queue1).clGetCommandQueueInfo(cl_command_queue1, cl_command_queue_info1, size_t1, voidPtr1, size_tPtr1); //To change body of generated methods, choose Tools | Templates. 431 } 432 433 @Override 434 public int clGetContextInfo(long cl_context1, int cl_context_info1, long size_t1, long voidPtr1, long size_tPtr1) { 435 return getImplementation(cl_context1).clGetContextInfo(cl_context1, cl_context_info1, size_t1, voidPtr1, size_tPtr1); //To change body of generated methods, choose Tools | Templates. 436 } 437 438 @Override 439 public int clGetEventInfo(long cl_event1, int cl_event_info1, long size_t1, long voidPtr1, long size_tPtr1) { 440 return getImplementation(cl_event1).clGetEventInfo(cl_event1, cl_event_info1, size_t1, voidPtr1, size_tPtr1); //To change body of generated methods, choose Tools | Templates. 441 } 442 443 @Override 444 public int clGetEventProfilingInfo(long cl_event1, int cl_profiling_info1, long size_t1, long voidPtr1, long size_tPtr1) { 445 return getImplementation(cl_event1).clGetEventProfilingInfo(cl_event1, cl_profiling_info1, size_t1, voidPtr1, size_tPtr1); //To change body of generated methods, choose Tools | Templates. 446 } 447 448 @Override 449 public int clGetGLContextInfoAPPLE(long cl_context1, long voidPtr1, int cl_gl_platform_info1, long size_t1, long voidPtr2, long size_tPtr1) { 450 return getImplementation(cl_context1).clGetGLContextInfoAPPLE(cl_context1, voidPtr1, cl_gl_platform_info1, size_t1, voidPtr2, size_tPtr1); 451 } 452 453 @Override 454 public int clGetGLContextInfoKHR(long cl_context_propertiesPtr1, int cl_gl_context_info1, long size_t1, long voidPtr1, long size_tPtr1) { 455 // TODO 456 throw new UnsupportedOperationException(); 457// return getImplementation(cl_program1).clGetGLContextInfoKHR(cl_context_propertiesPtr1, cl_gl_context_info1, size_t1, voidPtr1, size_tPtr1); //To change body of generated methods, choose Tools | Templates. 458 } 459 460 @Override 461 public int clGetGLObjectInfo(long cl_mem1, long cl_gl_object_typePtr1, long cl_GLuintPtr1) { 462 return getImplementation(cl_mem1).clGetGLObjectInfo(cl_mem1, cl_gl_object_typePtr1, cl_GLuintPtr1); //To change body of generated methods, choose Tools | Templates. 463 } 464 465 @Override 466 public int clGetGLTextureInfo(long cl_mem1, int cl_gl_texture_info1, long size_t1, long voidPtr1, long size_tPtr1) { 467 return getImplementation(cl_mem1).clGetGLTextureInfo(cl_mem1, cl_gl_texture_info1, size_t1, voidPtr1, size_tPtr1); //To change body of generated methods, choose Tools | Templates. 468 } 469 470 @Override 471 public int clGetImageInfo(long cl_mem1, int cl_image_info1, long size_t1, long voidPtr1, long size_tPtr1) { 472 return getImplementation(cl_mem1).clGetImageInfo(cl_mem1, cl_image_info1, size_t1, voidPtr1, size_tPtr1); //To change body of generated methods, choose Tools | Templates. 473 } 474 475 @Override 476 public int clGetKernelArgInfo(long cl_kernel1, int cl_uint1, int cl_kernel_arg_info1, long size_t1, long voidPtr1, long size_tPtr1) { 477 return getImplementation(cl_kernel1).clGetKernelArgInfo(cl_kernel1, cl_uint1, cl_kernel_arg_info1, size_t1, voidPtr1, size_tPtr1); //To change body of generated methods, choose Tools | Templates. 478 } 479 480 @Override 481 public int clGetKernelInfo(long cl_kernel1, int cl_kernel_info1, long size_t1, long voidPtr1, long size_tPtr1) { 482 return getImplementation(cl_kernel1).clGetKernelInfo(cl_kernel1, cl_kernel_info1, size_t1, voidPtr1, size_tPtr1); //To change body of generated methods, choose Tools | Templates. 483 } 484 485 @Override 486 public int clGetKernelWorkGroupInfo(long cl_kernel1, long cl_device_id1, int cl_kernel_work_group_info1, long size_t1, long voidPtr1, long size_tPtr1) { 487 return getImplementation(cl_kernel1).clGetKernelWorkGroupInfo(cl_kernel1, cl_device_id1, cl_kernel_work_group_info1, size_t1, voidPtr1, size_tPtr1); //To change body of generated methods, choose Tools | Templates. 488 } 489 490 @Override 491 public int clGetMemObjectInfo(long cl_mem1, int cl_mem_info1, long size_t1, long voidPtr1, long size_tPtr1) { 492 return getImplementation(cl_mem1).clGetMemObjectInfo(cl_mem1, cl_mem_info1, size_t1, voidPtr1, size_tPtr1); //To change body of generated methods, choose Tools | Templates. 493 } 494 495 @Override 496 public int clGetProgramBuildInfo(long cl_program1, long cl_device_id1, int cl_program_build_info1, long size_t1, long voidPtr1, long size_tPtr1) { 497 return getImplementation(cl_program1).clGetProgramBuildInfo(cl_program1, cl_device_id1, cl_program_build_info1, size_t1, voidPtr1, size_tPtr1); //To change body of generated methods, choose Tools | Templates. 498 } 499 500 @Override 501 public int clGetProgramInfo(long cl_program1, int cl_program_info1, long size_t1, long voidPtr1, long size_tPtr1) { 502 return getImplementation(cl_program1).clGetProgramInfo(cl_program1, cl_program_info1, size_t1, voidPtr1, size_tPtr1); //To change body of generated methods, choose Tools | Templates. 503 } 504 505 @Override 506 public int clGetSamplerInfo(long cl_sampler1, int cl_sampler_info1, long size_t1, long voidPtr1, long size_tPtr1) { 507 return getImplementation(cl_sampler1).clGetSamplerInfo(cl_sampler1, cl_sampler_info1, size_t1, voidPtr1, size_tPtr1); //To change body of generated methods, choose Tools | Templates. 508 } 509 510 @Override 511 public int clGetSupportedImageFormats(long cl_context1, long cl_mem_flags1, int cl_mem_object_type1, int cl_uint1, long cl_image_formatPtr1, long cl_uintPtr1) { 512 return getImplementation(cl_context1).clGetSupportedImageFormats(cl_context1, cl_mem_flags1, cl_mem_object_type1, cl_uint1, cl_image_formatPtr1, cl_uintPtr1); //To change body of generated methods, choose Tools | Templates. 513 } 514 515 @Override 516 public int clReleaseCommandQueue(long cl_command_queue1) { 517 return getImplementation(cl_command_queue1).clReleaseCommandQueue(cl_command_queue1); //To change body of generated methods, choose Tools | Templates. 518 } 519 520 @Override 521 public int clReleaseContext(long cl_context1) { 522 return getImplementation(cl_context1).clReleaseContext(cl_context1); //To change body of generated methods, choose Tools | Templates. 523 } 524 525 @Override 526 public int clReleaseDevice(long cl_device_id1) { 527 return getImplementation(cl_device_id1).clReleaseDevice(cl_device_id1); //To change body of generated methods, choose Tools | Templates. 528 } 529 530 @Override 531 public int clReleaseDeviceEXT(long cl_device_id1) { 532 return getImplementation(cl_device_id1).clReleaseDeviceEXT(cl_device_id1); //To change body of generated methods, choose Tools | Templates. 533 } 534 535 @Override 536 public int clReleaseEvent(long cl_event1) { 537 return getImplementation(cl_event1).clReleaseEvent(cl_event1); //To change body of generated methods, choose Tools | Templates. 538 } 539 540 @Override 541 public int clReleaseKernel(long cl_kernel1) { 542 return getImplementation(cl_kernel1).clReleaseKernel(cl_kernel1); //To change body of generated methods, choose Tools | Templates. 543 } 544 545 @Override 546 public int clReleaseMemObject(long cl_mem1) { 547 return getImplementation(cl_mem1).clReleaseMemObject(cl_mem1); //To change body of generated methods, choose Tools | Templates. 548 } 549 550 @Override 551 public int clReleaseProgram(long cl_program1) { 552 return getImplementation(cl_program1).clReleaseProgram(cl_program1); //To change body of generated methods, choose Tools | Templates. 553 } 554 555 @Override 556 public int clReleaseSampler(long cl_sampler1) { 557 return getImplementation(cl_sampler1).clReleaseSampler(cl_sampler1); //To change body of generated methods, choose Tools | Templates. 558 } 559 560 @Override 561 public int clRetainCommandQueue(long cl_command_queue1) { 562 return getImplementation(cl_command_queue1).clRetainCommandQueue(cl_command_queue1); //To change body of generated methods, choose Tools | Templates. 563 } 564 565 @Override 566 public int clRetainContext(long cl_context1) { 567 return getImplementation(cl_context1).clRetainContext(cl_context1); //To change body of generated methods, choose Tools | Templates. 568 } 569 570 @Override 571 public int clRetainDevice(long cl_device_id1) { 572 return getImplementation(cl_device_id1).clRetainDevice(cl_device_id1); //To change body of generated methods, choose Tools | Templates. 573 } 574 575 @Override 576 public int clRetainDeviceEXT(long cl_device_id1) { 577 return getImplementation(cl_device_id1).clRetainDeviceEXT(cl_device_id1); //To change body of generated methods, choose Tools | Templates. 578 } 579 580 @Override 581 public int clRetainEvent(long cl_event1) { 582 return getImplementation(cl_event1).clRetainEvent(cl_event1); //To change body of generated methods, choose Tools | Templates. 583 } 584 585 @Override 586 public int clRetainKernel(long cl_kernel1) { 587 return getImplementation(cl_kernel1).clRetainKernel(cl_kernel1); //To change body of generated methods, choose Tools | Templates. 588 } 589 590 @Override 591 public int clRetainMemObject(long cl_mem1) { 592 return getImplementation(cl_mem1).clRetainMemObject(cl_mem1); //To change body of generated methods, choose Tools | Templates. 593 } 594 595 @Override 596 public int clRetainProgram(long cl_program1) { 597 return getImplementation(cl_program1).clRetainProgram(cl_program1); //To change body of generated methods, choose Tools | Templates. 598 } 599 600 @Override 601 public int clRetainSampler(long cl_sampler1) { 602 return getImplementation(cl_sampler1).clRetainSampler(cl_sampler1); //To change body of generated methods, choose Tools | Templates. 603 } 604 605 @Override 606 public int clSetCommandQueueProperty(long cl_command_queue1, long cl_command_queue_properties1, int cl_bool1, long cl_command_queue_propertiesPtr1) { 607 return getImplementation(cl_command_queue1).clSetCommandQueueProperty(cl_command_queue1, cl_command_queue_properties1, cl_bool1, cl_command_queue_propertiesPtr1); //To change body of generated methods, choose Tools | Templates. 608 } 609 610 @Override 611 public int clSetEventCallback(long cl_event1, int cl_int1, long arg1, long voidPtr1) { 612 return getImplementation(cl_event1).clSetEventCallback(cl_event1, cl_int1, arg1, voidPtr1); //To change body of generated methods, choose Tools | Templates. 613 } 614 615 @Override 616 public int clSetKernelArg(long cl_kernel1, int cl_uint1, long size_t1, long voidPtr1) { 617 return getImplementation(cl_kernel1).clSetKernelArg(cl_kernel1, cl_uint1, size_t1, voidPtr1); //To change body of generated methods, choose Tools | Templates. 618 } 619 620 @Override 621 public int clSetMemObjectDestructorCallback(long cl_mem1, long arg1, long voidPtr1) { 622 return getImplementation(cl_mem1).clSetMemObjectDestructorCallback(cl_mem1, arg1, voidPtr1); //To change body of generated methods, choose Tools | Templates. 623 } 624 625 @Override 626 public int clSetUserEventStatus(long cl_event1, int cl_int1) { 627 return getImplementation(cl_event1).clSetUserEventStatus(cl_event1, cl_int1); //To change body of generated methods, choose Tools | Templates. 628 } 629 630 @Override 631 public int clUnloadCompiler() { 632 for (IOpenCLLibrary implementation : implementations) { 633 int res = implementation.clUnloadCompiler(); 634 if (res != CL_SUCCESS) 635 return res; 636 } 637 return CL_SUCCESS; 638 } 639 640 @Override 641 public int clUnloadPlatformCompiler(long cl_platform_id1) { 642 return getImplementation(cl_platform_id1).clUnloadPlatformCompiler(cl_platform_id1); //To change body of generated methods, choose Tools | Templates. 643 } 644 645 @Override 646 public int clWaitForEvents(int cl_uint1, long cl_eventPtr1) { 647 throw new UnsupportedOperationException(); 648 } 649 650}