ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/OpenCL/OpenCL.pm
(Generate patch)

Comparing OpenCL/OpenCL.pm (file contents):
Revision 1.21 by root, Sun Nov 20 10:21:27 2011 UTC vs.
Revision 1.37 by root, Thu Apr 19 14:36:46 2012 UTC

101 101
102Best run this once to get a feel for the platforms and devices in your 102Best run this once to get a feel for the platforms and devices in your
103system. 103system.
104 104
105 for my $platform (OpenCL::platforms) { 105 for my $platform (OpenCL::platforms) {
106 printf "platform: %s\n", $platform->info (OpenCL::PLATFORM_NAME); 106 printf "platform: %s\n", $platform->name;
107 printf "extensions: %s\n", $platform->info (OpenCL::PLATFORM_EXTENSIONS); 107 printf "extensions: %s\n", $platform->extensions;
108 for my $device ($platform->devices) { 108 for my $device ($platform->devices) {
109 printf "+ device: %s\n", $device->info (OpenCL::DEVICE_NAME); 109 printf "+ device: %s\n", $device->name;
110 my $ctx = $device->context; 110 my $ctx = $platform->context (undef, [$device]);
111 # do stuff 111 # do stuff
112 } 112 }
113 } 113 }
114 114
115=head2 Get a useful context and a command queue. 115=head2 Get a useful context and a command queue.
149 149
150=head2 Create and build a program, then create a kernel out of one of its 150=head2 Create and build a program, then create a kernel out of one of its
151functions. 151functions.
152 152
153 my $src = ' 153 my $src = '
154 __kernel void 154 kernel void
155 squareit (__global float *input, __global float *output) 155 squareit (global float *input, global float *output)
156 { 156 {
157 $id = get_global_id (0); 157 $id = get_global_id (0);
158 output [id] = input [id] * input [id]; 158 output [id] = input [id] * input [id];
159 } 159 }
160 '; 160 ';
161 161
162 my $prog = $ctx->program_with_source ($src); 162 my $prog = $ctx->program_with_source ($src);
163 163
164 # build croaks on compile errors, so catch it and print the compile errors 164 # build croaks on compile errors, so catch it and print the compile errors
165 eval { $prog->build ($dev); 1 } 165 eval { $prog->build ($dev); 1 }
166 or die $prog->build_info ($dev, OpenCL::PROGRAM_BUILD_LOG); 166 or die $prog->build_log;
167 167
168 my $kernel = $prog->kernel ("squareit"); 168 my $kernel = $prog->kernel ("squareit");
169 169
170=head2 Create some input and output float buffers, then call the 170=head2 Create some input and output float buffers, then call the
171'squareit' kernel on them. 171'squareit' kernel on them.
271 ulong IV - Q 271 ulong IV - Q
272 float NV float f 272 float NV float f
273 half IV ushort S 273 half IV ushort S
274 double NV double d 274 double NV double d
275 275
276=head2 GLX SUPPORT
277
278Due to the sad state that OpenGL support is in in Perl (mostly the OpenGL
279module, which has little to no documentation and has little to no support
280for glx), this module, as a special extension, treats context creation
281properties C<OpenCL::GLX_DISPLAY_KHR> and C<OpenCL::GL_CONTEXT_KHR>
282specially: If either or both of these are C<undef>, then the OpenCL
283module tries to dynamically resolve C<glxGetCurrentDisplay> and
284C<glxGetCurrentContext>, call these functions and use their return values
285instead.
286
287For this to work, the OpenGL library must be loaded, a GLX context must
288have been created and be made current, and C<dlsym> must be available and
289capable of finding the function via C<RTLD_DEFAULT>.
290
276=head2 THE OpenCL PACKAGE 291=head2 THE OpenCL PACKAGE
277 292
278=over 4 293=over 4
279 294
280=item $int = OpenCL::errno 295=item $int = OpenCL::errno
286 301
287Comverts an error value into a human readable string. 302Comverts an error value into a human readable string.
288 303
289=item $str = OpenCL::enum2str $enum 304=item $str = OpenCL::enum2str $enum
290 305
291Converts most enum values (inof parameter names, image format constants, 306Converts most enum values (of parameter names, image format constants,
292object types, addressing and filter modes, command types etc.) into a 307object types, addressing and filter modes, command types etc.) into a
293human readbale string. When confronted with some random integer it can be 308human readable string. When confronted with some random integer it can be
294very helpful to pass it through this function to maybe get some readable 309very helpful to pass it through this function to maybe get some readable
295string out of it. 310string out of it.
296 311
297=item @platforms = OpenCL::platforms 312=item @platforms = OpenCL::platforms
298 313
322 337
323Returns a list of matching OpenCL::Device objects. 338Returns a list of matching OpenCL::Device objects.
324 339
325=item $ctx = $platform->context_from_type ($properties, $type = OpenCL::DEVICE_TYPE_DEFAULT, $notify = undef) 340=item $ctx = $platform->context_from_type ($properties, $type = OpenCL::DEVICE_TYPE_DEFAULT, $notify = undef)
326 341
327Tries to create a context. Never worked for me, and you need devices explitly anyway. 342Tries to create a context. Never worked for me, and you need devices explicitly anyway.
328 343
329L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateContextFromType.html> 344L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateContextFromType.html>
330 345
331=item $ctx = $device->context ($properties = undef, @$devices, $notify = undef) 346=item $ctx = $platform->context ($properties = undef, @$devices, $notify = undef)
332 347
333Create a new OpenCL::Context object using the given device object(s)- a 348Create a new OpenCL::Context object using the given device object(s)- a
334CL_CONTEXT_PLATFORM property is supplied automatically. 349CL_CONTEXT_PLATFORM property is supplied automatically.
335 350
336L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateContext.html> 351L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateContext.html>
337 352
338=item $packed_value = $platform->info ($name) 353=item $packed_value = $platform->info ($name)
339 354
340Calls C<clGetPlatformInfo> and returns the packed, raw value - for 355Calls C<clGetPlatformInfo> and returns the packed, raw value - for
341strings, this will be the string, for other values you probably need to 356strings, this will be the string (possibly including terminating \0), for
342use the correct C<unpack>. 357other values you probably need to use the correct C<unpack>.
343 358
344It's best to avoid this method and use one of the predefined C<get_*> 359It's best to avoid this method and use one of the following convenience
345methods. 360wrappers.
346 361
347L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetPlatformInfo.html> 362L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetPlatformInfo.html>
348 363
349=for gengetinfo begin platform 364=for gengetinfo begin platform
350 365
351
352=item $string = $platform->profile 366=item $string = $platform->profile
353 367
354Calls C<clGetPlatformInfo> with C<CL_PLATFORM_PROFILE> and returns the result(s). 368Calls C<clGetPlatformInfo> with C<CL_PLATFORM_PROFILE> and returns the result.
355 369
356=item $string = $platform->version 370=item $string = $platform->version
357 371
358Calls C<clGetPlatformInfo> with C<CL_PLATFORM_VERSION> and returns the result(s). 372Calls C<clGetPlatformInfo> with C<CL_PLATFORM_VERSION> and returns the result.
359 373
360=item $string = $platform->name 374=item $string = $platform->name
361 375
362Calls C<clGetPlatformInfo> with C<CL_PLATFORM_NAME> and returns the result(s). 376Calls C<clGetPlatformInfo> with C<CL_PLATFORM_NAME> and returns the result.
363 377
364=item $string = $platform->vendor 378=item $string = $platform->vendor
365 379
366Calls C<clGetPlatformInfo> with C<CL_PLATFORM_VENDOR> and returns the result(s). 380Calls C<clGetPlatformInfo> with C<CL_PLATFORM_VENDOR> and returns the result.
367 381
368=item $string = $platform->extensions 382=item $string = $platform->extensions
369 383
370Calls C<clGetPlatformInfo> with C<CL_PLATFORM_EXTENSIONS> and returns the result(s). 384Calls C<clGetPlatformInfo> with C<CL_PLATFORM_EXTENSIONS> and returns the result.
371 385
372=for gengetinfo end platform 386=for gengetinfo end platform
373 387
374=back 388=back
375 389
383 397
384L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetDeviceInfo.html> 398L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetDeviceInfo.html>
385 399
386=for gengetinfo begin device 400=for gengetinfo begin device
387 401
388
389=item $device_type = $device->type 402=item $device_type = $device->type
390 403
391Calls C<clGetDeviceInfo> with C<CL_DEVICE_TYPE> and returns the result(s). 404Calls C<clGetDeviceInfo> with C<CL_DEVICE_TYPE> and returns the result.
392 405
393=item $uint = $device->vendor_id 406=item $uint = $device->vendor_id
394 407
395Calls C<clGetDeviceInfo> with C<CL_DEVICE_VENDOR_ID> and returns the result(s). 408Calls C<clGetDeviceInfo> with C<CL_DEVICE_VENDOR_ID> and returns the result.
396 409
397=item $uint = $device->max_compute_units 410=item $uint = $device->max_compute_units
398 411
399Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_COMPUTE_UNITS> and returns the result(s). 412Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_COMPUTE_UNITS> and returns the result.
400 413
401=item $uint = $device->max_work_item_dimensions 414=item $uint = $device->max_work_item_dimensions
402 415
403Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS> and returns the result(s). 416Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS> and returns the result.
404 417
405=item $int = $device->max_work_group_size 418=item $int = $device->max_work_group_size
406 419
407Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WORK_GROUP_SIZE> and returns the result(s). 420Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WORK_GROUP_SIZE> and returns the result.
408 421
409=item @ints = $device->max_work_item_sizes 422=item @ints = $device->max_work_item_sizes
410 423
411Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WORK_ITEM_SIZES> and returns the result(s). 424Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WORK_ITEM_SIZES> and returns the result.
412 425
413=item $uint = $device->preferred_vector_width_char 426=item $uint = $device->preferred_vector_width_char
414 427
415Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR> and returns the result(s). 428Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR> and returns the result.
416 429
417=item $uint = $device->preferred_vector_width_short 430=item $uint = $device->preferred_vector_width_short
418 431
419Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT> and returns the result(s). 432Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT> and returns the result.
420 433
421=item $uint = $device->preferred_vector_width_int 434=item $uint = $device->preferred_vector_width_int
422 435
423Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT> and returns the result(s). 436Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT> and returns the result.
424 437
425=item $uint = $device->preferred_vector_width_long 438=item $uint = $device->preferred_vector_width_long
426 439
427Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG> and returns the result(s). 440Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG> and returns the result.
428 441
429=item $uint = $device->preferred_vector_width_float 442=item $uint = $device->preferred_vector_width_float
430 443
431Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT> and returns the result(s). 444Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT> and returns the result.
432 445
433=item $uint = $device->preferred_vector_width_double 446=item $uint = $device->preferred_vector_width_double
434 447
435Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE> and returns the result(s). 448Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE> and returns the result.
436 449
437=item $uint = $device->max_clock_frequency 450=item $uint = $device->max_clock_frequency
438 451
439Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_CLOCK_FREQUENCY> and returns the result(s). 452Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_CLOCK_FREQUENCY> and returns the result.
440 453
441=item $bitfield = $device->address_bits 454=item $bitfield = $device->address_bits
442 455
443Calls C<clGetDeviceInfo> with C<CL_DEVICE_ADDRESS_BITS> and returns the result(s). 456Calls C<clGetDeviceInfo> with C<CL_DEVICE_ADDRESS_BITS> and returns the result.
444 457
445=item $uint = $device->max_read_image_args 458=item $uint = $device->max_read_image_args
446 459
447Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_READ_IMAGE_ARGS> and returns the result(s). 460Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_READ_IMAGE_ARGS> and returns the result.
448 461
449=item $uint = $device->max_write_image_args 462=item $uint = $device->max_write_image_args
450 463
451Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WRITE_IMAGE_ARGS> and returns the result(s). 464Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WRITE_IMAGE_ARGS> and returns the result.
452 465
453=item $ulong = $device->max_mem_alloc_size 466=item $ulong = $device->max_mem_alloc_size
454 467
455Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_MEM_ALLOC_SIZE> and returns the result(s). 468Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_MEM_ALLOC_SIZE> and returns the result.
456 469
457=item $int = $device->image2d_max_width 470=item $int = $device->image2d_max_width
458 471
459Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE2D_MAX_WIDTH> and returns the result(s). 472Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE2D_MAX_WIDTH> and returns the result.
460 473
461=item $int = $device->image2d_max_height 474=item $int = $device->image2d_max_height
462 475
463Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE2D_MAX_HEIGHT> and returns the result(s). 476Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE2D_MAX_HEIGHT> and returns the result.
464 477
465=item $int = $device->image3d_max_width 478=item $int = $device->image3d_max_width
466 479
467Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE3D_MAX_WIDTH> and returns the result(s). 480Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE3D_MAX_WIDTH> and returns the result.
468 481
469=item $int = $device->image3d_max_height 482=item $int = $device->image3d_max_height
470 483
471Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE3D_MAX_HEIGHT> and returns the result(s). 484Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE3D_MAX_HEIGHT> and returns the result.
472 485
473=item $int = $device->image3d_max_depth 486=item $int = $device->image3d_max_depth
474 487
475Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE3D_MAX_DEPTH> and returns the result(s). 488Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE3D_MAX_DEPTH> and returns the result.
476 489
477=item $uint = $device->image_support 490=item $uint = $device->image_support
478 491
479Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE_SUPPORT> and returns the result(s). 492Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE_SUPPORT> and returns the result.
480 493
481=item $int = $device->max_parameter_size 494=item $int = $device->max_parameter_size
482 495
483Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_PARAMETER_SIZE> and returns the result(s). 496Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_PARAMETER_SIZE> and returns the result.
484 497
485=item $uint = $device->max_samplers 498=item $uint = $device->max_samplers
486 499
487Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_SAMPLERS> and returns the result(s). 500Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_SAMPLERS> and returns the result.
488 501
489=item $uint = $device->mem_base_addr_align 502=item $uint = $device->mem_base_addr_align
490 503
491Calls C<clGetDeviceInfo> with C<CL_DEVICE_MEM_BASE_ADDR_ALIGN> and returns the result(s). 504Calls C<clGetDeviceInfo> with C<CL_DEVICE_MEM_BASE_ADDR_ALIGN> and returns the result.
492 505
493=item $uint = $device->min_data_type_align_size 506=item $uint = $device->min_data_type_align_size
494 507
495Calls C<clGetDeviceInfo> with C<CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE> and returns the result(s). 508Calls C<clGetDeviceInfo> with C<CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE> and returns the result.
496 509
497=item $device_fp_config = $device->single_fp_config 510=item $device_fp_config = $device->single_fp_config
498 511
499Calls C<clGetDeviceInfo> with C<CL_DEVICE_SINGLE_FP_CONFIG> and returns the result(s). 512Calls C<clGetDeviceInfo> with C<CL_DEVICE_SINGLE_FP_CONFIG> and returns the result.
500 513
501=item $device_mem_cache_type = $device->global_mem_cache_type 514=item $device_mem_cache_type = $device->global_mem_cache_type
502 515
503Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_CACHE_TYPE> and returns the result(s). 516Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_CACHE_TYPE> and returns the result.
504 517
505=item $uint = $device->global_mem_cacheline_size 518=item $uint = $device->global_mem_cacheline_size
506 519
507Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE> and returns the result(s). 520Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE> and returns the result.
508 521
509=item $ulong = $device->global_mem_cache_size 522=item $ulong = $device->global_mem_cache_size
510 523
511Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_CACHE_SIZE> and returns the result(s). 524Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_CACHE_SIZE> and returns the result.
512 525
513=item $ulong = $device->global_mem_size 526=item $ulong = $device->global_mem_size
514 527
515Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_SIZE> and returns the result(s). 528Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_SIZE> and returns the result.
516 529
517=item $ulong = $device->max_constant_buffer_size 530=item $ulong = $device->max_constant_buffer_size
518 531
519Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE> and returns the result(s). 532Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE> and returns the result.
520 533
521=item $uint = $device->max_constant_args 534=item $uint = $device->max_constant_args
522 535
523Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_CONSTANT_ARGS> and returns the result(s). 536Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_CONSTANT_ARGS> and returns the result.
524 537
525=item $device_local_mem_type = $device->local_mem_type 538=item $device_local_mem_type = $device->local_mem_type
526 539
527Calls C<clGetDeviceInfo> with C<CL_DEVICE_LOCAL_MEM_TYPE> and returns the result(s). 540Calls C<clGetDeviceInfo> with C<CL_DEVICE_LOCAL_MEM_TYPE> and returns the result.
528 541
529=item $ulong = $device->local_mem_size 542=item $ulong = $device->local_mem_size
530 543
531Calls C<clGetDeviceInfo> with C<CL_DEVICE_LOCAL_MEM_SIZE> and returns the result(s). 544Calls C<clGetDeviceInfo> with C<CL_DEVICE_LOCAL_MEM_SIZE> and returns the result.
532 545
533=item $boolean = $device->error_correction_support 546=item $boolean = $device->error_correction_support
534 547
535Calls C<clGetDeviceInfo> with C<CL_DEVICE_ERROR_CORRECTION_SUPPORT> and returns the result(s). 548Calls C<clGetDeviceInfo> with C<CL_DEVICE_ERROR_CORRECTION_SUPPORT> and returns the result.
536 549
537=item $int = $device->profiling_timer_resolution 550=item $int = $device->profiling_timer_resolution
538 551
539Calls C<clGetDeviceInfo> with C<CL_DEVICE_PROFILING_TIMER_RESOLUTION> and returns the result(s). 552Calls C<clGetDeviceInfo> with C<CL_DEVICE_PROFILING_TIMER_RESOLUTION> and returns the result.
540 553
541=item $boolean = $device->endian_little 554=item $boolean = $device->endian_little
542 555
543Calls C<clGetDeviceInfo> with C<CL_DEVICE_ENDIAN_LITTLE> and returns the result(s). 556Calls C<clGetDeviceInfo> with C<CL_DEVICE_ENDIAN_LITTLE> and returns the result.
544 557
545=item $boolean = $device->available 558=item $boolean = $device->available
546 559
547Calls C<clGetDeviceInfo> with C<CL_DEVICE_AVAILABLE> and returns the result(s). 560Calls C<clGetDeviceInfo> with C<CL_DEVICE_AVAILABLE> and returns the result.
548 561
549=item $boolean = $device->compiler_available 562=item $boolean = $device->compiler_available
550 563
551Calls C<clGetDeviceInfo> with C<CL_DEVICE_COMPILER_AVAILABLE> and returns the result(s). 564Calls C<clGetDeviceInfo> with C<CL_DEVICE_COMPILER_AVAILABLE> and returns the result.
552 565
553=item $device_exec_capabilities = $device->execution_capabilities 566=item $device_exec_capabilities = $device->execution_capabilities
554 567
555Calls C<clGetDeviceInfo> with C<CL_DEVICE_EXECUTION_CAPABILITIES> and returns the result(s). 568Calls C<clGetDeviceInfo> with C<CL_DEVICE_EXECUTION_CAPABILITIES> and returns the result.
556 569
557=item $command_queue_properties = $device->properties 570=item $command_queue_properties = $device->properties
558 571
559Calls C<clGetDeviceInfo> with C<CL_DEVICE_QUEUE_PROPERTIES> and returns the result(s). 572Calls C<clGetDeviceInfo> with C<CL_DEVICE_QUEUE_PROPERTIES> and returns the result.
560 573
561=item $ = $device->platform 574=item $ = $device->platform
562 575
563Calls C<clGetDeviceInfo> with C<CL_DEVICE_PLATFORM> and returns the result(s). 576Calls C<clGetDeviceInfo> with C<CL_DEVICE_PLATFORM> and returns the result.
564 577
565=item $string = $device->name 578=item $string = $device->name
566 579
567Calls C<clGetDeviceInfo> with C<CL_DEVICE_NAME> and returns the result(s). 580Calls C<clGetDeviceInfo> with C<CL_DEVICE_NAME> and returns the result.
568 581
569=item $string = $device->vendor 582=item $string = $device->vendor
570 583
571Calls C<clGetDeviceInfo> with C<CL_DEVICE_VENDOR> and returns the result(s). 584Calls C<clGetDeviceInfo> with C<CL_DEVICE_VENDOR> and returns the result.
572 585
573=item $string = $device->driver_version 586=item $string = $device->driver_version
574 587
575Calls C<clGetDeviceInfo> with C<CL_DRIVER_VERSION> and returns the result(s). 588Calls C<clGetDeviceInfo> with C<CL_DRIVER_VERSION> and returns the result.
576 589
577=item $string = $device->profile 590=item $string = $device->profile
578 591
579Calls C<clGetDeviceInfo> with C<CL_DEVICE_PROFILE> and returns the result(s). 592Calls C<clGetDeviceInfo> with C<CL_DEVICE_PROFILE> and returns the result.
580 593
581=item $string = $device->version 594=item $string = $device->version
582 595
583Calls C<clGetDeviceInfo> with C<CL_DEVICE_VERSION> and returns the result(s). 596Calls C<clGetDeviceInfo> with C<CL_DEVICE_VERSION> and returns the result.
584 597
585=item $string = $device->extensions 598=item $string = $device->extensions
586 599
587Calls C<clGetDeviceInfo> with C<CL_DEVICE_EXTENSIONS> and returns the result(s). 600Calls C<clGetDeviceInfo> with C<CL_DEVICE_EXTENSIONS> and returns the result.
588 601
589=item $uint = $device->preferred_vector_width_half 602=item $uint = $device->preferred_vector_width_half
590 603
591Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF> and returns the result(s). 604Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF> and returns the result.
592 605
593=item $uint = $device->native_vector_width_char 606=item $uint = $device->native_vector_width_char
594 607
595Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR> and returns the result(s). 608Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR> and returns the result.
596 609
597=item $uint = $device->native_vector_width_short 610=item $uint = $device->native_vector_width_short
598 611
599Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT> and returns the result(s). 612Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT> and returns the result.
600 613
601=item $uint = $device->native_vector_width_int 614=item $uint = $device->native_vector_width_int
602 615
603Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_INT> and returns the result(s). 616Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_INT> and returns the result.
604 617
605=item $uint = $device->native_vector_width_long 618=item $uint = $device->native_vector_width_long
606 619
607Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG> and returns the result(s). 620Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG> and returns the result.
608 621
609=item $uint = $device->native_vector_width_float 622=item $uint = $device->native_vector_width_float
610 623
611Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT> and returns the result(s). 624Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT> and returns the result.
612 625
613=item $uint = $device->native_vector_width_double 626=item $uint = $device->native_vector_width_double
614 627
615Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE> and returns the result(s). 628Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE> and returns the result.
616 629
617=item $uint = $device->native_vector_width_half 630=item $uint = $device->native_vector_width_half
618 631
619Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF> and returns the result(s). 632Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF> and returns the result.
620 633
621=item $device_fp_config = $device->double_fp_config 634=item $device_fp_config = $device->double_fp_config
622 635
623Calls C<clGetDeviceInfo> with C<CL_DEVICE_DOUBLE_FP_CONFIG> and returns the result(s). 636Calls C<clGetDeviceInfo> with C<CL_DEVICE_DOUBLE_FP_CONFIG> and returns the result.
624 637
625=item $device_fp_config = $device->half_fp_config 638=item $device_fp_config = $device->half_fp_config
626 639
627Calls C<clGetDeviceInfo> with C<CL_DEVICE_HALF_FP_CONFIG> and returns the result(s). 640Calls C<clGetDeviceInfo> with C<CL_DEVICE_HALF_FP_CONFIG> and returns the result.
628 641
629=item $boolean = $device->host_unified_memory 642=item $boolean = $device->host_unified_memory
630 643
631Calls C<clGetDeviceInfo> with C<CL_DEVICE_HOST_UNIFIED_MEMORY> and returns the result(s). 644Calls C<clGetDeviceInfo> with C<CL_DEVICE_HOST_UNIFIED_MEMORY> and returns the result.
632 645
633=item $device = $device->parent_device_ext 646=item $device = $device->parent_device_ext
634 647
635Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARENT_DEVICE_EXT> and returns the result(s). 648Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARENT_DEVICE_EXT> and returns the result.
636 649
637=item @device_partition_property_exts = $device->partition_types_ext 650=item @device_partition_property_exts = $device->partition_types_ext
638 651
639Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARTITION_TYPES_EXT> and returns the result(s). 652Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARTITION_TYPES_EXT> and returns the result.
640 653
641=item @device_partition_property_exts = $device->affinity_domains_ext 654=item @device_partition_property_exts = $device->affinity_domains_ext
642 655
643Calls C<clGetDeviceInfo> with C<CL_DEVICE_AFFINITY_DOMAINS_EXT> and returns the result(s). 656Calls C<clGetDeviceInfo> with C<CL_DEVICE_AFFINITY_DOMAINS_EXT> and returns the result.
644 657
645=item $uint = $device->reference_count_ext 658=item $uint = $device->reference_count_ext
646 659
647Calls C<clGetDeviceInfo> with C<CL_DEVICE_REFERENCE_COUNT_EXT > and returns the result(s). 660Calls C<clGetDeviceInfo> with C<CL_DEVICE_REFERENCE_COUNT_EXT > and returns the result.
648 661
649=item @device_partition_property_exts = $device->partition_style_ext 662=item @device_partition_property_exts = $device->partition_style_ext
650 663
651Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARTITION_STYLE_EXT> and returns the result(s). 664Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARTITION_STYLE_EXT> and returns the result.
652 665
653=for gengetinfo end device 666=for gengetinfo end device
654 667
655=back 668=back
656 669
670 683
671L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateUserEvent.html> 684L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateUserEvent.html>
672 685
673=item $buf = $ctx->buffer ($flags, $len) 686=item $buf = $ctx->buffer ($flags, $len)
674 687
675Creates a new OpenCL::Buffer object with the given flags and octet-size. 688Creates a new OpenCL::Buffer (actually OpenCL::BufferObj) object with the
689given flags and octet-size.
676 690
677L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateBuffer.html> 691L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateBuffer.html>
678 692
679=item $buf = $ctx->buffer_sv ($flags, $data) 693=item $buf = $ctx->buffer_sv ($flags, $data)
680 694
681Creates a new OpenCL::Buffer object and initialise it with the given data values. 695Creates a new OpenCL::Buffer (actually OpenCL::BufferObj) object and
696initialise it with the given data values.
682 697
683=item $img = $ctx->image2d ($flags, $channel_order, $channel_type, $width, $height, $row_pitch = 0, $data = undef) 698=item $img = $ctx->image2d ($flags, $channel_order, $channel_type, $width, $height, $row_pitch = 0, $data = undef)
684 699
685Creates a new OpenCL::Image2D object and optionally initialises it with the given data values. 700Creates a new OpenCL::Image2D object and optionally initialises it with
701the given data values.
686 702
687L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateImage2D.html> 703L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateImage2D.html>
688 704
689=item $img = $ctx->image3d ($flags, $channel_order, $channel_type, $width, $height, $depth, $row_pitch = 0, $slice_pitch = 0, $data = undef) 705=item $img = $ctx->image3d ($flags, $channel_order, $channel_type, $width, $height, $depth, $row_pitch = 0, $slice_pitch = 0, $data = undef)
690 706
691Creates a new OpenCL::Image3D object and optionally initialises it with the given data values. 707Creates a new OpenCL::Image3D object and optionally initialises it with
708the given data values.
692 709
693L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateImage3D.html> 710L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateImage3D.html>
711
712=item $buffer = $ctx->gl_buffer ($flags, $bufobj)
713
714Creates a new OpenCL::Buffer (actually OpenCL::BufferObj) object that refers to the given
715OpenGL buffer object.
716
717http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLBuffer.html
718
719=item $ctx->gl_texture2d ($flags, $target, $miplevel, $texture)
720
721Creates a new OpenCL::Image2D object that refers to the given OpenGL
7222D texture object.
723
724http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLTexture2D.html
725
726=item $ctx->gl_texture3d ($flags, $target, $miplevel, $texture)
727
728Creates a new OpenCL::Image3D object that refers to the given OpenGL
7293D texture object.
730
731http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLTexture3D.html
732
733=item $ctx->gl_renderbuffer ($flags, $renderbuffer)
734
735Creates a new OpenCL::Image2D object that refers to the given OpenGL
736render buffer.
737
738http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLRenderbuffer.html
694 739
695=item @formats = $ctx->supported_image_formats ($flags, $image_type) 740=item @formats = $ctx->supported_image_formats ($flags, $image_type)
696 741
697Returns a list of matching image formats - each format is an arrayref with 742Returns a list of matching image formats - each format is an arrayref with
698two values, $channel_order and $channel_type, in it. 743two values, $channel_order and $channel_type, in it.
717 762
718L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetContextInfo.html> 763L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetContextInfo.html>
719 764
720=for gengetinfo begin context 765=for gengetinfo begin context
721 766
722
723=item $uint = $context->reference_count 767=item $uint = $context->reference_count
724 768
725Calls C<clGetContextInfo> with C<CL_CONTEXT_REFERENCE_COUNT> and returns the result(s). 769Calls C<clGetContextInfo> with C<CL_CONTEXT_REFERENCE_COUNT> and returns the result.
726 770
727=item @devices = $context->devices 771=item @devices = $context->devices
728 772
729Calls C<clGetContextInfo> with C<CL_CONTEXT_DEVICES> and returns the result(s). 773Calls C<clGetContextInfo> with C<CL_CONTEXT_DEVICES> and returns the result.
730 774
731=item @property_ints = $context->properties 775=item @property_ints = $context->properties
732 776
733Calls C<clGetContextInfo> with C<CL_CONTEXT_PROPERTIES> and returns the result(s). 777Calls C<clGetContextInfo> with C<CL_CONTEXT_PROPERTIES> and returns the result.
734 778
735=item $uint = $context->num_devices 779=item $uint = $context->num_devices
736 780
737Calls C<clGetContextInfo> with C<CL_CONTEXT_NUM_DEVICES> and returns the result(s). 781Calls C<clGetContextInfo> with C<CL_CONTEXT_NUM_DEVICES> and returns the result.
738 782
739=for gengetinfo end context 783=for gengetinfo end context
740 784
741=back 785=back
742 786
774 818
775=item $ev = $queue->enqueue_copy_buffer ($src, $dst, $src_offset, $dst_offset, $len, $wait_events...) 819=item $ev = $queue->enqueue_copy_buffer ($src, $dst, $src_offset, $dst_offset, $len, $wait_events...)
776 820
777L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBuffer.html> 821L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBuffer.html>
778 822
823=item $ev = $queue->enqueue_read_buffer_rect (OpenCL::Memory buf, cl_bool blocking, $buf_x, $buf_y, $buf_z, $host_x, $host_y, $host_z, $width, $height, $depth, $buf_row_pitch, $buf_slice_pitch, $host_row_pitch, $host_slice_pitch, $data, $wait_events...)
824
825http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueReadBufferRect.html
826
827=item $ev = $queue->enqueue_write_buffer_rect (OpenCL::Memory buf, cl_bool blocking, $buf_x, $buf_y, $buf_z, $host_x, $host_y, $host_z, $width, $height, $depth, $buf_row_pitch, $buf_slice_pitch, $host_row_pitch, $host_slice_pitch, $data, $wait_events...)
828
829http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueWriteBufferRect.html
830
779=item $ev = $queue->enqueue_read_image ($src, $blocking, $x, $y, $z, $width, $height, $depth, $row_pitch, $slice_pitch, $data, $wait_events...) 831=item $ev = $queue->enqueue_read_image ($src, $blocking, $x, $y, $z, $width, $height, $depth, $row_pitch, $slice_pitch, $data, $wait_events...)
780 832
833L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBufferRect.html>
834
835=item $ev = $queue->enqueue_copy_buffer_to_image ($src_buffer, $dst_image, $src_offset, $dst_x, $dst_y, $dst_z, $width, $height, $depth, $wait_events...)
836
781L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueReadImage.html> 837L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueReadImage.html>
782 838
783=item $ev = $queue->enqueue_write_image ($src, $blocking, $x, $y, $z, $width, $height, $depth, $row_pitch, $slice_pitch, $data, $wait_events...) 839=item $ev = $queue->enqueue_write_image ($src, $blocking, $x, $y, $z, $width, $height, $depth, $row_pitch, $slice_pitch, $data, $wait_events...)
784 840
785L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueWriteImage.html> 841L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueWriteImage.html>
786 842
843=item $ev = $queue->enqueue_copy_image ($src_image, $dst_image, $src_x, $src_y, $src_z, $dst_x, $dst_y, $dst_z, $width, $height, $depth, $wait_events...)
844
845L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyImage.html>
846
847=item $ev = $queue->enqueue_copy_image_to_buffer ($src_image, $dst_image, $src_x, $src_y, $src_z, $width, $height, $depth, $dst_offset, $wait_events...)
848
849L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyImageToBuffer.html>
850
787=item $ev = $queue->enqueue_copy_buffer_rect ($src, $dst, $src_x, $src_y, $src_z, $dst_x, $dst_y, $dst_z, $width, $height, $depth, $src_row_pitch, $src_slice_pitch, $dst_row_pitch, $dst_slice_pitch, $wait_event...) 851=item $ev = $queue->enqueue_copy_buffer_rect ($src, $dst, $src_x, $src_y, $src_z, $dst_x, $dst_y, $dst_z, $width, $height, $depth, $src_row_pitch, $src_slice_pitch, $dst_row_pitch, $dst_slice_pitch, $wait_event...)
788 852
789Yeah. 853Yeah.
790 854
791L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBufferRect.html>
792
793=item $ev = $queue->enqueue_copy_buffer_to_image ($src_buffer, $dst_image, $src_offset, $dst_x, $dst_y, $dst_z, $width, $height, $depth, $wait_events...)
794
795L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBufferToImage.html>. 855L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBufferToImage.html>.
796
797=item $ev = $queue->enqueue_copy_image ($src_image, $dst_image, $src_x, $src_y, $src_z, $dst_x, $dst_y, $dst_z, $width, $height, $depth, $wait_events...)
798
799L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyImage.html>
800
801=item $ev = $queue->enqueue_copy_image_to_buffer ($src_image, $dst_image, $src_x, $src_y, $src_z, $width, $height, $depth, $dst_offset, $wait_events...)
802
803L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyImageToBuffer.html>
804 856
805=item $ev = $queue->enqueue_task ($kernel, $wait_events...) 857=item $ev = $queue->enqueue_task ($kernel, $wait_events...)
806 858
807L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueTask.html> 859L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueTask.html>
808 860
822reference to an array of local work sizes, with the same number of 874reference to an array of local work sizes, with the same number of
823elements as @$global_work_size. 875elements as @$global_work_size.
824 876
825L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueNDRangeKernel.html> 877L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueNDRangeKernel.html>
826 878
827=item $ev = $queue->enqueue_marker 879=item $ev = $queue->enqueue_marker ($wait_events...)
828 880
829L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueMarker.html> 881L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueMarker.html>
830 882
883=item $ev = $queue->enqueue_acquire_gl_objects ([object, ...], $wait_events...)
884
885Enqueues a list (an array-ref of OpenCL::Memory objects) to be acquired
886for subsequent OpenCL usage.
887
888L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueAcquireGLObjects.html>
889
890=item $ev = $queue->enqueue_release_gl_objects ([object, ...], $wait_events...)
891
892Enqueues a list (an array-ref of OpenCL::Memory objects) to be released
893for subsequent OpenGL usage.
894
895L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueReleaseGLObjects.html>
896
831=item $ev = $queue->enqueue_wait_for_events ($wait_events...) 897=item $ev = $queue->enqueue_wait_for_events ($wait_events...)
832 898
833L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueWaitForEvents.html> 899L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueWaitForEvents.html>
834 900
835=item $queue->enqueue_barrier 901=item $queue->enqueue_barrier
850 916
851L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetCommandQueueInfo.html> 917L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetCommandQueueInfo.html>
852 918
853=for gengetinfo begin command_queue 919=for gengetinfo begin command_queue
854 920
855
856=item $ctx = $command_queue->context 921=item $ctx = $command_queue->context
857 922
858Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_CONTEXT> and returns the result(s). 923Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_CONTEXT> and returns the result.
859 924
860=item $device = $command_queue->device 925=item $device = $command_queue->device
861 926
862Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_DEVICE> and returns the result(s). 927Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_DEVICE> and returns the result.
863 928
864=item $uint = $command_queue->reference_count 929=item $uint = $command_queue->reference_count
865 930
866Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_REFERENCE_COUNT> and returns the result(s). 931Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_REFERENCE_COUNT> and returns the result.
867 932
868=item $command_queue_properties = $command_queue->properties 933=item $command_queue_properties = $command_queue->properties
869 934
870Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_PROPERTIES> and returns the result(s). 935Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_PROPERTIES> and returns the result.
871 936
872=for gengetinfo end command_queue 937=for gengetinfo end command_queue
873 938
874=back 939=back
875 940
886 951
887L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetMemObjectInfo.html> 952L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetMemObjectInfo.html>
888 953
889=for gengetinfo begin mem 954=for gengetinfo begin mem
890 955
891
892=item $mem_object_type = $mem->type 956=item $mem_object_type = $mem->type
893 957
894Calls C<clGetMemObjectInfo> with C<CL_MEM_TYPE> and returns the result(s). 958Calls C<clGetMemObjectInfo> with C<CL_MEM_TYPE> and returns the result.
895 959
896=item $mem_flags = $mem->flags 960=item $mem_flags = $mem->flags
897 961
898Calls C<clGetMemObjectInfo> with C<CL_MEM_FLAGS> and returns the result(s). 962Calls C<clGetMemObjectInfo> with C<CL_MEM_FLAGS> and returns the result.
899 963
900=item $int = $mem->size 964=item $int = $mem->size
901 965
902Calls C<clGetMemObjectInfo> with C<CL_MEM_SIZE> and returns the result(s). 966Calls C<clGetMemObjectInfo> with C<CL_MEM_SIZE> and returns the result.
903 967
904=item $ptr_value = $mem->host_ptr 968=item $ptr_value = $mem->host_ptr
905 969
906Calls C<clGetMemObjectInfo> with C<CL_MEM_HOST_PTR> and returns the result(s). 970Calls C<clGetMemObjectInfo> with C<CL_MEM_HOST_PTR> and returns the result.
907 971
908=item $uint = $mem->map_count 972=item $uint = $mem->map_count
909 973
910Calls C<clGetMemObjectInfo> with C<CL_MEM_MAP_COUNT> and returns the result(s). 974Calls C<clGetMemObjectInfo> with C<CL_MEM_MAP_COUNT> and returns the result.
911 975
912=item $uint = $mem->reference_count 976=item $uint = $mem->reference_count
913 977
914Calls C<clGetMemObjectInfo> with C<CL_MEM_REFERENCE_COUNT> and returns the result(s). 978Calls C<clGetMemObjectInfo> with C<CL_MEM_REFERENCE_COUNT> and returns the result.
915 979
916=item $ctx = $mem->context 980=item $ctx = $mem->context
917 981
918Calls C<clGetMemObjectInfo> with C<CL_MEM_CONTEXT> and returns the result(s). 982Calls C<clGetMemObjectInfo> with C<CL_MEM_CONTEXT> and returns the result.
919 983
920=item $mem = $mem->associated_memobject 984=item $mem = $mem->associated_memobject
921 985
922Calls C<clGetMemObjectInfo> with C<CL_MEM_ASSOCIATED_MEMOBJECT> and returns the result(s). 986Calls C<clGetMemObjectInfo> with C<CL_MEM_ASSOCIATED_MEMOBJECT> and returns the result.
923 987
924=item $int = $mem->offset 988=item $int = $mem->offset
925 989
926Calls C<clGetMemObjectInfo> with C<CL_MEM_OFFSET> and returns the result(s). 990Calls C<clGetMemObjectInfo> with C<CL_MEM_OFFSET> and returns the result.
927 991
928=for gengetinfo end mem 992=for gengetinfo end mem
993
994=item ($type, $name) = $mem->gl_object_info
995
996Returns the OpenGL object type (e.g. OpenCL::GL_OBJECT_TEXTURE2D) and the
997object "name" (e.g. the texture name) used to create this memory object.
998
999L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetGLObjectInfo.html>
1000
1001=back
1002
1003=head2 THE OpenCL::Buffer CLASS
1004
1005This is a subclass of OpenCL::Memory, and the superclass of
1006OpenCL::BufferObj. Its purpose is simply to distinguish between buffers
1007and sub-buffers.
1008
1009=head2 THE OpenCL::BufferObj CLASS
1010
1011This is a subclass of OpenCL::Buffer and thus OpenCL::Memory. It exists
1012because one cna create sub buffers of OpenLC::BufferObj objects, but not
1013sub buffers from these sub buffers.
1014
1015=over 4
1016
1017=item $subbuf = $buf_obj->sub_buffer_region ($flags, $origin, $size)
1018
1019Creates an OpenCL::Buffer objects from this buffer and returns it. The
1020C<buffer_create_type> is assumed to be C<CL_BUFFER_CREATE_TYPE_REGION>.
1021
1022L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateSubBuffer.html>
929 1023
930=back 1024=back
931 1025
932=head2 THE OpenCL::Image CLASS 1026=head2 THE OpenCL::Image CLASS
933 1027
944 1038
945L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetImageInfo.html> 1039L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetImageInfo.html>
946 1040
947=for gengetinfo begin image 1041=for gengetinfo begin image
948 1042
949
950=item $int = $image->element_size 1043=item $int = $image->element_size
951 1044
952Calls C<clGetImageInfo> with C<CL_IMAGE_ELEMENT_SIZE> and returns the result(s). 1045Calls C<clGetImageInfo> with C<CL_IMAGE_ELEMENT_SIZE> and returns the result.
953 1046
954=item $int = $image->row_pitch 1047=item $int = $image->row_pitch
955 1048
956Calls C<clGetImageInfo> with C<CL_IMAGE_ROW_PITCH> and returns the result(s). 1049Calls C<clGetImageInfo> with C<CL_IMAGE_ROW_PITCH> and returns the result.
957 1050
958=item $int = $image->slice_pitch 1051=item $int = $image->slice_pitch
959 1052
960Calls C<clGetImageInfo> with C<CL_IMAGE_SLICE_PITCH> and returns the result(s). 1053Calls C<clGetImageInfo> with C<CL_IMAGE_SLICE_PITCH> and returns the result.
961 1054
962=item $int = $image->width 1055=item $int = $image->width
963 1056
964Calls C<clGetImageInfo> with C<CL_IMAGE_WIDTH> and returns the result(s). 1057Calls C<clGetImageInfo> with C<CL_IMAGE_WIDTH> and returns the result.
965 1058
966=item $int = $image->height 1059=item $int = $image->height
967 1060
968Calls C<clGetImageInfo> with C<CL_IMAGE_HEIGHT> and returns the result(s). 1061Calls C<clGetImageInfo> with C<CL_IMAGE_HEIGHT> and returns the result.
969 1062
970=item $int = $image->depth 1063=item $int = $image->depth
971 1064
972Calls C<clGetImageInfo> with C<CL_IMAGE_DEPTH> and returns the result(s). 1065Calls C<clGetImageInfo> with C<CL_IMAGE_DEPTH> and returns the result.
973 1066
974=for gengetinfo end image 1067=for gengetinfo end image
975 1068
1069=for gengetinfo begin gl_texture
1070
1071=item $GLenum = $gl_texture->target
1072
1073Calls C<clGetGLTextureInfo> with C<CL_GL_TEXTURE_TARGET> and returns the result.
1074
1075=item $GLint = $gl_texture->gl_mipmap_level
1076
1077Calls C<clGetGLTextureInfo> with C<CL_GL_MIPMAP_LEVEL> and returns the result.
1078
1079=for gengetinfo end gl_texture
1080
976=back 1081=back
977 1082
978=head2 THE OpenCL::Sampler CLASS 1083=head2 THE OpenCL::Sampler CLASS
979 1084
980=over 4 1085=over 4
985 1090
986L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetSamplerInfo.html> 1091L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetSamplerInfo.html>
987 1092
988=for gengetinfo begin sampler 1093=for gengetinfo begin sampler
989 1094
990
991=item $uint = $sampler->reference_count 1095=item $uint = $sampler->reference_count
992 1096
993Calls C<clGetSamplerInfo> with C<CL_SAMPLER_REFERENCE_COUNT> and returns the result(s). 1097Calls C<clGetSamplerInfo> with C<CL_SAMPLER_REFERENCE_COUNT> and returns the result.
994 1098
995=item $ctx = $sampler->context 1099=item $ctx = $sampler->context
996 1100
997Calls C<clGetSamplerInfo> with C<CL_SAMPLER_CONTEXT> and returns the result(s). 1101Calls C<clGetSamplerInfo> with C<CL_SAMPLER_CONTEXT> and returns the result.
998 1102
999=item $addressing_mode = $sampler->normalized_coords 1103=item $addressing_mode = $sampler->normalized_coords
1000 1104
1001Calls C<clGetSamplerInfo> with C<CL_SAMPLER_NORMALIZED_COORDS> and returns the result(s). 1105Calls C<clGetSamplerInfo> with C<CL_SAMPLER_NORMALIZED_COORDS> and returns the result.
1002 1106
1003=item $filter_mode = $sampler->addressing_mode 1107=item $filter_mode = $sampler->addressing_mode
1004 1108
1005Calls C<clGetSamplerInfo> with C<CL_SAMPLER_ADDRESSING_MODE> and returns the result(s). 1109Calls C<clGetSamplerInfo> with C<CL_SAMPLER_ADDRESSING_MODE> and returns the result.
1006 1110
1007=item $boolean = $sampler->filter_mode 1111=item $boolean = $sampler->filter_mode
1008 1112
1009Calls C<clGetSamplerInfo> with C<CL_SAMPLER_FILTER_MODE> and returns the result(s). 1113Calls C<clGetSamplerInfo> with C<CL_SAMPLER_FILTER_MODE> and returns the result.
1010 1114
1011=for gengetinfo end sampler 1115=for gengetinfo end sampler
1012 1116
1013=back 1117=back
1014 1118
1036 1140
1037L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateKernel.html> 1141L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateKernel.html>
1038 1142
1039=for gengetinfo begin program_build 1143=for gengetinfo begin program_build
1040 1144
1041
1042=item $build_status = $program->build_status ($device) 1145=item $build_status = $program->build_status ($device)
1043 1146
1044Calls C<clGetProgramBuildInfo> with C<CL_PROGRAM_BUILD_STATUS> and returns the result(s). 1147Calls C<clGetProgramBuildInfo> with C<CL_PROGRAM_BUILD_STATUS> and returns the result.
1045 1148
1046=item $string = $program->build_options ($device) 1149=item $string = $program->build_options ($device)
1047 1150
1048Calls C<clGetProgramBuildInfo> with C<CL_PROGRAM_BUILD_OPTIONS> and returns the result(s). 1151Calls C<clGetProgramBuildInfo> with C<CL_PROGRAM_BUILD_OPTIONS> and returns the result.
1049 1152
1050=item $string = $program->build_log ($device) 1153=item $string = $program->build_log ($device)
1051 1154
1052Calls C<clGetProgramBuildInfo> with C<CL_PROGRAM_BUILD_LOG> and returns the result(s). 1155Calls C<clGetProgramBuildInfo> with C<CL_PROGRAM_BUILD_LOG> and returns the result.
1053 1156
1054=for gengetinfo end program_build 1157=for gengetinfo end program_build
1055 1158
1056=item $packed_value = $program->info ($name) 1159=item $packed_value = $program->info ($name)
1057 1160
1059 1162
1060L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetProgramInfo.html> 1163L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetProgramInfo.html>
1061 1164
1062=for gengetinfo begin program 1165=for gengetinfo begin program
1063 1166
1064
1065=item $uint = $program->reference_count 1167=item $uint = $program->reference_count
1066 1168
1067Calls C<clGetProgramInfo> with C<CL_PROGRAM_REFERENCE_COUNT> and returns the result(s). 1169Calls C<clGetProgramInfo> with C<CL_PROGRAM_REFERENCE_COUNT> and returns the result.
1068 1170
1069=item $ctx = $program->context 1171=item $ctx = $program->context
1070 1172
1071Calls C<clGetProgramInfo> with C<CL_PROGRAM_CONTEXT> and returns the result(s). 1173Calls C<clGetProgramInfo> with C<CL_PROGRAM_CONTEXT> and returns the result.
1072 1174
1073=item $uint = $program->num_devices 1175=item $uint = $program->num_devices
1074 1176
1075Calls C<clGetProgramInfo> with C<CL_PROGRAM_NUM_DEVICES> and returns the result(s). 1177Calls C<clGetProgramInfo> with C<CL_PROGRAM_NUM_DEVICES> and returns the result.
1076 1178
1077=item @devices = $program->devices 1179=item @devices = $program->devices
1078 1180
1079Calls C<clGetProgramInfo> with C<CL_PROGRAM_DEVICES> and returns the result(s). 1181Calls C<clGetProgramInfo> with C<CL_PROGRAM_DEVICES> and returns the result.
1080 1182
1081=item $string = $program->source 1183=item $string = $program->source
1082 1184
1083Calls C<clGetProgramInfo> with C<CL_PROGRAM_SOURCE> and returns the result(s). 1185Calls C<clGetProgramInfo> with C<CL_PROGRAM_SOURCE> and returns the result.
1084 1186
1085=item @ints = $program->binary_sizes 1187=item @ints = $program->binary_sizes
1086 1188
1087Calls C<clGetProgramInfo> with C<CL_PROGRAM_BINARY_SIZES> and returns the result(s). 1189Calls C<clGetProgramInfo> with C<CL_PROGRAM_BINARY_SIZES> and returns the result.
1088 1190
1089=for gengetinfo end program 1191=for gengetinfo end program
1090 1192
1193=item @blobs = $program->binaries
1194
1195Returns a string for the compiled binary for every device associated with
1196the program, empty strings indicate missing programs, and an empty result
1197means no program binaries are available.
1198
1199These "binaries" are often, in fact, informative low-level assembly
1200sources.
1201
1202L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetProgramInfo.html>
1203
1091=back 1204=back
1092 1205
1093=head2 THE OpenCL::Kernel CLASS 1206=head2 THE OpenCL::Kernel CLASS
1094 1207
1095=over 4 1208=over 4
1100 1213
1101L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetKernelInfo.html> 1214L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetKernelInfo.html>
1102 1215
1103=for gengetinfo begin kernel 1216=for gengetinfo begin kernel
1104 1217
1105
1106=item $string = $kernel->function_name 1218=item $string = $kernel->function_name
1107 1219
1108Calls C<clGetKernelInfo> with C<CL_KERNEL_FUNCTION_NAME> and returns the result(s). 1220Calls C<clGetKernelInfo> with C<CL_KERNEL_FUNCTION_NAME> and returns the result.
1109 1221
1110=item $uint = $kernel->num_args 1222=item $uint = $kernel->num_args
1111 1223
1112Calls C<clGetKernelInfo> with C<CL_KERNEL_NUM_ARGS> and returns the result(s). 1224Calls C<clGetKernelInfo> with C<CL_KERNEL_NUM_ARGS> and returns the result.
1113 1225
1114=item $uint = $kernel->reference_count 1226=item $uint = $kernel->reference_count
1115 1227
1116Calls C<clGetKernelInfo> with C<CL_KERNEL_REFERENCE_COUNT> and returns the result(s). 1228Calls C<clGetKernelInfo> with C<CL_KERNEL_REFERENCE_COUNT> and returns the result.
1117 1229
1118=item $ctx = $kernel->context 1230=item $ctx = $kernel->context
1119 1231
1120Calls C<clGetKernelInfo> with C<CL_KERNEL_CONTEXT> and returns the result(s). 1232Calls C<clGetKernelInfo> with C<CL_KERNEL_CONTEXT> and returns the result.
1121 1233
1122=item $program = $kernel->program 1234=item $program = $kernel->program
1123 1235
1124Calls C<clGetKernelInfo> with C<CL_KERNEL_PROGRAM> and returns the result(s). 1236Calls C<clGetKernelInfo> with C<CL_KERNEL_PROGRAM> and returns the result.
1125 1237
1126=for gengetinfo end kernel 1238=for gengetinfo end kernel
1127 1239
1128=item $packed_value = $kernel->work_group_info ($device, $name) 1240=item $packed_value = $kernel->work_group_info ($device, $name)
1129 1241
1134 1246
1135L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetKernelWorkGroupInfo.html> 1247L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetKernelWorkGroupInfo.html>
1136 1248
1137=for gengetinfo begin kernel_work_group 1249=for gengetinfo begin kernel_work_group
1138 1250
1139
1140=item $int = $kernel->work_group_size ($device) 1251=item $int = $kernel->work_group_size ($device)
1141 1252
1142Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_WORK_GROUP_SIZE> and returns the result(s). 1253Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_WORK_GROUP_SIZE> and returns the result.
1143 1254
1144=item @ints = $kernel->compile_work_group_size ($device) 1255=item @ints = $kernel->compile_work_group_size ($device)
1145 1256
1146Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_COMPILE_WORK_GROUP_SIZE> and returns the result(s). 1257Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_COMPILE_WORK_GROUP_SIZE> and returns the result.
1147 1258
1148=item $ulong = $kernel->local_mem_size ($device) 1259=item $ulong = $kernel->local_mem_size ($device)
1149 1260
1150Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_LOCAL_MEM_SIZE> and returns the result(s). 1261Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_LOCAL_MEM_SIZE> and returns the result.
1151 1262
1152=item $int = $kernel->preferred_work_group_size_multiple ($device) 1263=item $int = $kernel->preferred_work_group_size_multiple ($device)
1153 1264
1154Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE> and returns the result(s). 1265Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE> and returns the result.
1155 1266
1156=item $ulong = $kernel->private_mem_size ($device) 1267=item $ulong = $kernel->private_mem_size ($device)
1157 1268
1158Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_PRIVATE_MEM_SIZE> and returns the result(s). 1269Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_PRIVATE_MEM_SIZE> and returns the result.
1159 1270
1160=for gengetinfo end kernel_work_group 1271=for gengetinfo end kernel_work_group
1161 1272
1162=item $kernel->set_TYPE ($index, $value) 1273=item $kernel->set_TYPE ($index, $value)
1163 1274
1195 1306
1196L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetEventInfo.html> 1307L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetEventInfo.html>
1197 1308
1198=for gengetinfo begin event 1309=for gengetinfo begin event
1199 1310
1200
1201=item $queue = $event->command_queue 1311=item $queue = $event->command_queue
1202 1312
1203Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_QUEUE> and returns the result(s). 1313Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_QUEUE> and returns the result.
1204 1314
1205=item $command_type = $event->command_type 1315=item $command_type = $event->command_type
1206 1316
1207Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_TYPE> and returns the result(s). 1317Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_TYPE> and returns the result.
1208 1318
1209=item $uint = $event->reference_count 1319=item $uint = $event->reference_count
1210 1320
1211Calls C<clGetEventInfo> with C<CL_EVENT_REFERENCE_COUNT> and returns the result(s). 1321Calls C<clGetEventInfo> with C<CL_EVENT_REFERENCE_COUNT> and returns the result.
1212 1322
1213=item $uint = $event->command_execution_status 1323=item $uint = $event->command_execution_status
1214 1324
1215Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_EXECUTION_STATUS> and returns the result(s). 1325Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_EXECUTION_STATUS> and returns the result.
1216 1326
1217=item $ctx = $event->context 1327=item $ctx = $event->context
1218 1328
1219Calls C<clGetEventInfo> with C<CL_EVENT_CONTEXT> and returns the result(s). 1329Calls C<clGetEventInfo> with C<CL_EVENT_CONTEXT> and returns the result.
1220 1330
1221=for gengetinfo end event 1331=for gengetinfo end event
1222 1332
1223=item $packed_value = $ev->profiling_info ($name) 1333=item $packed_value = $ev->profiling_info ($name)
1224 1334
1229 1339
1230L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetProfilingInfo.html> 1340L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetProfilingInfo.html>
1231 1341
1232=for gengetinfo begin profiling 1342=for gengetinfo begin profiling
1233 1343
1234
1235=item $ulong = $event->profiling_command_queued 1344=item $ulong = $event->profiling_command_queued
1236 1345
1237Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_QUEUED> and returns the result(s). 1346Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_QUEUED> and returns the result.
1238 1347
1239=item $ulong = $event->profiling_command_submit 1348=item $ulong = $event->profiling_command_submit
1240 1349
1241Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_SUBMIT> and returns the result(s). 1350Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_SUBMIT> and returns the result.
1242 1351
1243=item $ulong = $event->profiling_command_start 1352=item $ulong = $event->profiling_command_start
1244 1353
1245Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_START> and returns the result(s). 1354Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_START> and returns the result.
1246 1355
1247=item $ulong = $event->profiling_command_end 1356=item $ulong = $event->profiling_command_end
1248 1357
1249Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_END> and returns the result(s). 1358Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_END> and returns the result.
1250 1359
1251=for gengetinfo end profiling 1360=for gengetinfo end profiling
1252 1361
1253=back 1362=back
1254 1363
1269package OpenCL; 1378package OpenCL;
1270 1379
1271use common::sense; 1380use common::sense;
1272 1381
1273BEGIN { 1382BEGIN {
1274 our $VERSION = '0.55'; 1383 our $VERSION = '0.92';
1275 1384
1276 require XSLoader; 1385 require XSLoader;
1277 XSLoader::load (__PACKAGE__, $VERSION); 1386 XSLoader::load (__PACKAGE__, $VERSION);
1278 1387
1279 @OpenCL::Buffer::ISA = 1388 @OpenCL::Buffer::ISA =
1280 @OpenCL::Image::ISA = OpenCL::Memory::; 1389 @OpenCL::Image::ISA = OpenCL::Memory::;
1281 1390
1391 @OpenCL::BufferObj::ISA = OpenCL::Buffer::;
1392
1282 @OpenCL::Image2D::ISA = 1393 @OpenCL::Image2D::ISA =
1283 @OpenCL::Image3D::ISA = OpenCL::Image::; 1394 @OpenCL::Image3D::ISA = OpenCL::Image::;
1284 1395
1285 @OpenCL::UserEvent::ISA = OpenCL::Event::; 1396 @OpenCL::UserEvent::ISA = OpenCL::Event::;
1286} 1397}
1287 1398
12881; 13991;
1289 1400
1290=head1 AUTHOR 1401=head1 AUTHOR

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines