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

Comparing OpenCL/OpenCL.pm (file contents):
Revision 1.22 by root, Sun Nov 20 10:25:17 2011 UTC vs.
Revision 1.32 by root, Thu Apr 19 12:12:03 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 OpenGL sharing
277
278This module can be optionally compiled with support for
279OpenGL sharing. The sharing functions are only available when
280C<OpenCL::HAVE_OPENGL> returns true, otherwise they are absent and cannot
281be called.
282
276=head2 THE OpenCL PACKAGE 283=head2 THE OpenCL PACKAGE
277 284
278=over 4 285=over 4
279 286
280=item $int = OpenCL::errno 287=item $int = OpenCL::errno
286 293
287Comverts an error value into a human readable string. 294Comverts an error value into a human readable string.
288 295
289=item $str = OpenCL::enum2str $enum 296=item $str = OpenCL::enum2str $enum
290 297
291Converts most enum values (inof parameter names, image format constants, 298Converts most enum values (of parameter names, image format constants,
292object types, addressing and filter modes, command types etc.) into a 299object types, addressing and filter modes, command types etc.) into a
293human readbale string. When confronted with some random integer it can be 300human readable string. When confronted with some random integer it can be
294very helpful to pass it through this function to maybe get some readable 301very helpful to pass it through this function to maybe get some readable
295string out of it. 302string out of it.
296 303
297=item @platforms = OpenCL::platforms 304=item @platforms = OpenCL::platforms
298 305
326 333
327Tries to create a context. Never worked for me, and you need devices explicitly anyway. 334Tries to create a context. Never worked for me, and you need devices explicitly anyway.
328 335
329L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateContextFromType.html> 336L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateContextFromType.html>
330 337
331=item $ctx = $device->context ($properties = undef, @$devices, $notify = undef) 338=item $ctx = $platform->context ($properties = undef, @$devices, $notify = undef)
332 339
333Create a new OpenCL::Context object using the given device object(s)- a 340Create a new OpenCL::Context object using the given device object(s)- a
334CL_CONTEXT_PLATFORM property is supplied automatically. 341CL_CONTEXT_PLATFORM property is supplied automatically.
335 342
336L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateContext.html> 343L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateContext.html>
348 355
349=for gengetinfo begin platform 356=for gengetinfo begin platform
350 357
351=item $string = $platform->profile 358=item $string = $platform->profile
352 359
353Calls C<clGetPlatformInfo> with C<CL_PLATFORM_PROFILE> and returns the result(s). 360Calls C<clGetPlatformInfo> with C<CL_PLATFORM_PROFILE> and returns the result.
354 361
355=item $string = $platform->version 362=item $string = $platform->version
356 363
357Calls C<clGetPlatformInfo> with C<CL_PLATFORM_VERSION> and returns the result(s). 364Calls C<clGetPlatformInfo> with C<CL_PLATFORM_VERSION> and returns the result.
358 365
359=item $string = $platform->name 366=item $string = $platform->name
360 367
361Calls C<clGetPlatformInfo> with C<CL_PLATFORM_NAME> and returns the result(s). 368Calls C<clGetPlatformInfo> with C<CL_PLATFORM_NAME> and returns the result.
362 369
363=item $string = $platform->vendor 370=item $string = $platform->vendor
364 371
365Calls C<clGetPlatformInfo> with C<CL_PLATFORM_VENDOR> and returns the result(s). 372Calls C<clGetPlatformInfo> with C<CL_PLATFORM_VENDOR> and returns the result.
366 373
367=item $string = $platform->extensions 374=item $string = $platform->extensions
368 375
369Calls C<clGetPlatformInfo> with C<CL_PLATFORM_EXTENSIONS> and returns the result(s). 376Calls C<clGetPlatformInfo> with C<CL_PLATFORM_EXTENSIONS> and returns the result.
370 377
371=for gengetinfo end platform 378=for gengetinfo end platform
372 379
373=back 380=back
374 381
384 391
385=for gengetinfo begin device 392=for gengetinfo begin device
386 393
387=item $device_type = $device->type 394=item $device_type = $device->type
388 395
389Calls C<clGetDeviceInfo> with C<CL_DEVICE_TYPE> and returns the result(s). 396Calls C<clGetDeviceInfo> with C<CL_DEVICE_TYPE> and returns the result.
390 397
391=item $uint = $device->vendor_id 398=item $uint = $device->vendor_id
392 399
393Calls C<clGetDeviceInfo> with C<CL_DEVICE_VENDOR_ID> and returns the result(s). 400Calls C<clGetDeviceInfo> with C<CL_DEVICE_VENDOR_ID> and returns the result.
394 401
395=item $uint = $device->max_compute_units 402=item $uint = $device->max_compute_units
396 403
397Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_COMPUTE_UNITS> and returns the result(s). 404Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_COMPUTE_UNITS> and returns the result.
398 405
399=item $uint = $device->max_work_item_dimensions 406=item $uint = $device->max_work_item_dimensions
400 407
401Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS> and returns the result(s). 408Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS> and returns the result.
402 409
403=item $int = $device->max_work_group_size 410=item $int = $device->max_work_group_size
404 411
405Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WORK_GROUP_SIZE> and returns the result(s). 412Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WORK_GROUP_SIZE> and returns the result.
406 413
407=item @ints = $device->max_work_item_sizes 414=item @ints = $device->max_work_item_sizes
408 415
409Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WORK_ITEM_SIZES> and returns the result(s). 416Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WORK_ITEM_SIZES> and returns the result.
410 417
411=item $uint = $device->preferred_vector_width_char 418=item $uint = $device->preferred_vector_width_char
412 419
413Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR> and returns the result(s). 420Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR> and returns the result.
414 421
415=item $uint = $device->preferred_vector_width_short 422=item $uint = $device->preferred_vector_width_short
416 423
417Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT> and returns the result(s). 424Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT> and returns the result.
418 425
419=item $uint = $device->preferred_vector_width_int 426=item $uint = $device->preferred_vector_width_int
420 427
421Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT> and returns the result(s). 428Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT> and returns the result.
422 429
423=item $uint = $device->preferred_vector_width_long 430=item $uint = $device->preferred_vector_width_long
424 431
425Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG> and returns the result(s). 432Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG> and returns the result.
426 433
427=item $uint = $device->preferred_vector_width_float 434=item $uint = $device->preferred_vector_width_float
428 435
429Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT> and returns the result(s). 436Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT> and returns the result.
430 437
431=item $uint = $device->preferred_vector_width_double 438=item $uint = $device->preferred_vector_width_double
432 439
433Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE> and returns the result(s). 440Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE> and returns the result.
434 441
435=item $uint = $device->max_clock_frequency 442=item $uint = $device->max_clock_frequency
436 443
437Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_CLOCK_FREQUENCY> and returns the result(s). 444Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_CLOCK_FREQUENCY> and returns the result.
438 445
439=item $bitfield = $device->address_bits 446=item $bitfield = $device->address_bits
440 447
441Calls C<clGetDeviceInfo> with C<CL_DEVICE_ADDRESS_BITS> and returns the result(s). 448Calls C<clGetDeviceInfo> with C<CL_DEVICE_ADDRESS_BITS> and returns the result.
442 449
443=item $uint = $device->max_read_image_args 450=item $uint = $device->max_read_image_args
444 451
445Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_READ_IMAGE_ARGS> and returns the result(s). 452Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_READ_IMAGE_ARGS> and returns the result.
446 453
447=item $uint = $device->max_write_image_args 454=item $uint = $device->max_write_image_args
448 455
449Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WRITE_IMAGE_ARGS> and returns the result(s). 456Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WRITE_IMAGE_ARGS> and returns the result.
450 457
451=item $ulong = $device->max_mem_alloc_size 458=item $ulong = $device->max_mem_alloc_size
452 459
453Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_MEM_ALLOC_SIZE> and returns the result(s). 460Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_MEM_ALLOC_SIZE> and returns the result.
454 461
455=item $int = $device->image2d_max_width 462=item $int = $device->image2d_max_width
456 463
457Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE2D_MAX_WIDTH> and returns the result(s). 464Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE2D_MAX_WIDTH> and returns the result.
458 465
459=item $int = $device->image2d_max_height 466=item $int = $device->image2d_max_height
460 467
461Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE2D_MAX_HEIGHT> and returns the result(s). 468Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE2D_MAX_HEIGHT> and returns the result.
462 469
463=item $int = $device->image3d_max_width 470=item $int = $device->image3d_max_width
464 471
465Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE3D_MAX_WIDTH> and returns the result(s). 472Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE3D_MAX_WIDTH> and returns the result.
466 473
467=item $int = $device->image3d_max_height 474=item $int = $device->image3d_max_height
468 475
469Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE3D_MAX_HEIGHT> and returns the result(s). 476Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE3D_MAX_HEIGHT> and returns the result.
470 477
471=item $int = $device->image3d_max_depth 478=item $int = $device->image3d_max_depth
472 479
473Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE3D_MAX_DEPTH> and returns the result(s). 480Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE3D_MAX_DEPTH> and returns the result.
474 481
475=item $uint = $device->image_support 482=item $uint = $device->image_support
476 483
477Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE_SUPPORT> and returns the result(s). 484Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE_SUPPORT> and returns the result.
478 485
479=item $int = $device->max_parameter_size 486=item $int = $device->max_parameter_size
480 487
481Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_PARAMETER_SIZE> and returns the result(s). 488Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_PARAMETER_SIZE> and returns the result.
482 489
483=item $uint = $device->max_samplers 490=item $uint = $device->max_samplers
484 491
485Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_SAMPLERS> and returns the result(s). 492Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_SAMPLERS> and returns the result.
486 493
487=item $uint = $device->mem_base_addr_align 494=item $uint = $device->mem_base_addr_align
488 495
489Calls C<clGetDeviceInfo> with C<CL_DEVICE_MEM_BASE_ADDR_ALIGN> and returns the result(s). 496Calls C<clGetDeviceInfo> with C<CL_DEVICE_MEM_BASE_ADDR_ALIGN> and returns the result.
490 497
491=item $uint = $device->min_data_type_align_size 498=item $uint = $device->min_data_type_align_size
492 499
493Calls C<clGetDeviceInfo> with C<CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE> and returns the result(s). 500Calls C<clGetDeviceInfo> with C<CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE> and returns the result.
494 501
495=item $device_fp_config = $device->single_fp_config 502=item $device_fp_config = $device->single_fp_config
496 503
497Calls C<clGetDeviceInfo> with C<CL_DEVICE_SINGLE_FP_CONFIG> and returns the result(s). 504Calls C<clGetDeviceInfo> with C<CL_DEVICE_SINGLE_FP_CONFIG> and returns the result.
498 505
499=item $device_mem_cache_type = $device->global_mem_cache_type 506=item $device_mem_cache_type = $device->global_mem_cache_type
500 507
501Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_CACHE_TYPE> and returns the result(s). 508Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_CACHE_TYPE> and returns the result.
502 509
503=item $uint = $device->global_mem_cacheline_size 510=item $uint = $device->global_mem_cacheline_size
504 511
505Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE> and returns the result(s). 512Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE> and returns the result.
506 513
507=item $ulong = $device->global_mem_cache_size 514=item $ulong = $device->global_mem_cache_size
508 515
509Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_CACHE_SIZE> and returns the result(s). 516Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_CACHE_SIZE> and returns the result.
510 517
511=item $ulong = $device->global_mem_size 518=item $ulong = $device->global_mem_size
512 519
513Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_SIZE> and returns the result(s). 520Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_SIZE> and returns the result.
514 521
515=item $ulong = $device->max_constant_buffer_size 522=item $ulong = $device->max_constant_buffer_size
516 523
517Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE> and returns the result(s). 524Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE> and returns the result.
518 525
519=item $uint = $device->max_constant_args 526=item $uint = $device->max_constant_args
520 527
521Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_CONSTANT_ARGS> and returns the result(s). 528Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_CONSTANT_ARGS> and returns the result.
522 529
523=item $device_local_mem_type = $device->local_mem_type 530=item $device_local_mem_type = $device->local_mem_type
524 531
525Calls C<clGetDeviceInfo> with C<CL_DEVICE_LOCAL_MEM_TYPE> and returns the result(s). 532Calls C<clGetDeviceInfo> with C<CL_DEVICE_LOCAL_MEM_TYPE> and returns the result.
526 533
527=item $ulong = $device->local_mem_size 534=item $ulong = $device->local_mem_size
528 535
529Calls C<clGetDeviceInfo> with C<CL_DEVICE_LOCAL_MEM_SIZE> and returns the result(s). 536Calls C<clGetDeviceInfo> with C<CL_DEVICE_LOCAL_MEM_SIZE> and returns the result.
530 537
531=item $boolean = $device->error_correction_support 538=item $boolean = $device->error_correction_support
532 539
533Calls C<clGetDeviceInfo> with C<CL_DEVICE_ERROR_CORRECTION_SUPPORT> and returns the result(s). 540Calls C<clGetDeviceInfo> with C<CL_DEVICE_ERROR_CORRECTION_SUPPORT> and returns the result.
534 541
535=item $int = $device->profiling_timer_resolution 542=item $int = $device->profiling_timer_resolution
536 543
537Calls C<clGetDeviceInfo> with C<CL_DEVICE_PROFILING_TIMER_RESOLUTION> and returns the result(s). 544Calls C<clGetDeviceInfo> with C<CL_DEVICE_PROFILING_TIMER_RESOLUTION> and returns the result.
538 545
539=item $boolean = $device->endian_little 546=item $boolean = $device->endian_little
540 547
541Calls C<clGetDeviceInfo> with C<CL_DEVICE_ENDIAN_LITTLE> and returns the result(s). 548Calls C<clGetDeviceInfo> with C<CL_DEVICE_ENDIAN_LITTLE> and returns the result.
542 549
543=item $boolean = $device->available 550=item $boolean = $device->available
544 551
545Calls C<clGetDeviceInfo> with C<CL_DEVICE_AVAILABLE> and returns the result(s). 552Calls C<clGetDeviceInfo> with C<CL_DEVICE_AVAILABLE> and returns the result.
546 553
547=item $boolean = $device->compiler_available 554=item $boolean = $device->compiler_available
548 555
549Calls C<clGetDeviceInfo> with C<CL_DEVICE_COMPILER_AVAILABLE> and returns the result(s). 556Calls C<clGetDeviceInfo> with C<CL_DEVICE_COMPILER_AVAILABLE> and returns the result.
550 557
551=item $device_exec_capabilities = $device->execution_capabilities 558=item $device_exec_capabilities = $device->execution_capabilities
552 559
553Calls C<clGetDeviceInfo> with C<CL_DEVICE_EXECUTION_CAPABILITIES> and returns the result(s). 560Calls C<clGetDeviceInfo> with C<CL_DEVICE_EXECUTION_CAPABILITIES> and returns the result.
554 561
555=item $command_queue_properties = $device->properties 562=item $command_queue_properties = $device->properties
556 563
557Calls C<clGetDeviceInfo> with C<CL_DEVICE_QUEUE_PROPERTIES> and returns the result(s). 564Calls C<clGetDeviceInfo> with C<CL_DEVICE_QUEUE_PROPERTIES> and returns the result.
558 565
559=item $ = $device->platform 566=item $ = $device->platform
560 567
561Calls C<clGetDeviceInfo> with C<CL_DEVICE_PLATFORM> and returns the result(s). 568Calls C<clGetDeviceInfo> with C<CL_DEVICE_PLATFORM> and returns the result.
562 569
563=item $string = $device->name 570=item $string = $device->name
564 571
565Calls C<clGetDeviceInfo> with C<CL_DEVICE_NAME> and returns the result(s). 572Calls C<clGetDeviceInfo> with C<CL_DEVICE_NAME> and returns the result.
566 573
567=item $string = $device->vendor 574=item $string = $device->vendor
568 575
569Calls C<clGetDeviceInfo> with C<CL_DEVICE_VENDOR> and returns the result(s). 576Calls C<clGetDeviceInfo> with C<CL_DEVICE_VENDOR> and returns the result.
570 577
571=item $string = $device->driver_version 578=item $string = $device->driver_version
572 579
573Calls C<clGetDeviceInfo> with C<CL_DRIVER_VERSION> and returns the result(s). 580Calls C<clGetDeviceInfo> with C<CL_DRIVER_VERSION> and returns the result.
574 581
575=item $string = $device->profile 582=item $string = $device->profile
576 583
577Calls C<clGetDeviceInfo> with C<CL_DEVICE_PROFILE> and returns the result(s). 584Calls C<clGetDeviceInfo> with C<CL_DEVICE_PROFILE> and returns the result.
578 585
579=item $string = $device->version 586=item $string = $device->version
580 587
581Calls C<clGetDeviceInfo> with C<CL_DEVICE_VERSION> and returns the result(s). 588Calls C<clGetDeviceInfo> with C<CL_DEVICE_VERSION> and returns the result.
582 589
583=item $string = $device->extensions 590=item $string = $device->extensions
584 591
585Calls C<clGetDeviceInfo> with C<CL_DEVICE_EXTENSIONS> and returns the result(s). 592Calls C<clGetDeviceInfo> with C<CL_DEVICE_EXTENSIONS> and returns the result.
586 593
587=item $uint = $device->preferred_vector_width_half 594=item $uint = $device->preferred_vector_width_half
588 595
589Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF> and returns the result(s). 596Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF> and returns the result.
590 597
591=item $uint = $device->native_vector_width_char 598=item $uint = $device->native_vector_width_char
592 599
593Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR> and returns the result(s). 600Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR> and returns the result.
594 601
595=item $uint = $device->native_vector_width_short 602=item $uint = $device->native_vector_width_short
596 603
597Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT> and returns the result(s). 604Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT> and returns the result.
598 605
599=item $uint = $device->native_vector_width_int 606=item $uint = $device->native_vector_width_int
600 607
601Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_INT> and returns the result(s). 608Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_INT> and returns the result.
602 609
603=item $uint = $device->native_vector_width_long 610=item $uint = $device->native_vector_width_long
604 611
605Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG> and returns the result(s). 612Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG> and returns the result.
606 613
607=item $uint = $device->native_vector_width_float 614=item $uint = $device->native_vector_width_float
608 615
609Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT> and returns the result(s). 616Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT> and returns the result.
610 617
611=item $uint = $device->native_vector_width_double 618=item $uint = $device->native_vector_width_double
612 619
613Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE> and returns the result(s). 620Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE> and returns the result.
614 621
615=item $uint = $device->native_vector_width_half 622=item $uint = $device->native_vector_width_half
616 623
617Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF> and returns the result(s). 624Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF> and returns the result.
618 625
619=item $device_fp_config = $device->double_fp_config 626=item $device_fp_config = $device->double_fp_config
620 627
621Calls C<clGetDeviceInfo> with C<CL_DEVICE_DOUBLE_FP_CONFIG> and returns the result(s). 628Calls C<clGetDeviceInfo> with C<CL_DEVICE_DOUBLE_FP_CONFIG> and returns the result.
622 629
623=item $device_fp_config = $device->half_fp_config 630=item $device_fp_config = $device->half_fp_config
624 631
625Calls C<clGetDeviceInfo> with C<CL_DEVICE_HALF_FP_CONFIG> and returns the result(s). 632Calls C<clGetDeviceInfo> with C<CL_DEVICE_HALF_FP_CONFIG> and returns the result.
626 633
627=item $boolean = $device->host_unified_memory 634=item $boolean = $device->host_unified_memory
628 635
629Calls C<clGetDeviceInfo> with C<CL_DEVICE_HOST_UNIFIED_MEMORY> and returns the result(s). 636Calls C<clGetDeviceInfo> with C<CL_DEVICE_HOST_UNIFIED_MEMORY> and returns the result.
630 637
631=item $device = $device->parent_device_ext 638=item $device = $device->parent_device_ext
632 639
633Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARENT_DEVICE_EXT> and returns the result(s). 640Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARENT_DEVICE_EXT> and returns the result.
634 641
635=item @device_partition_property_exts = $device->partition_types_ext 642=item @device_partition_property_exts = $device->partition_types_ext
636 643
637Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARTITION_TYPES_EXT> and returns the result(s). 644Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARTITION_TYPES_EXT> and returns the result.
638 645
639=item @device_partition_property_exts = $device->affinity_domains_ext 646=item @device_partition_property_exts = $device->affinity_domains_ext
640 647
641Calls C<clGetDeviceInfo> with C<CL_DEVICE_AFFINITY_DOMAINS_EXT> and returns the result(s). 648Calls C<clGetDeviceInfo> with C<CL_DEVICE_AFFINITY_DOMAINS_EXT> and returns the result.
642 649
643=item $uint = $device->reference_count_ext 650=item $uint = $device->reference_count_ext
644 651
645Calls C<clGetDeviceInfo> with C<CL_DEVICE_REFERENCE_COUNT_EXT > and returns the result(s). 652Calls C<clGetDeviceInfo> with C<CL_DEVICE_REFERENCE_COUNT_EXT > and returns the result.
646 653
647=item @device_partition_property_exts = $device->partition_style_ext 654=item @device_partition_property_exts = $device->partition_style_ext
648 655
649Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARTITION_STYLE_EXT> and returns the result(s). 656Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARTITION_STYLE_EXT> and returns the result.
650 657
651=for gengetinfo end device 658=for gengetinfo end device
652 659
653=back 660=back
654 661
668 675
669L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateUserEvent.html> 676L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateUserEvent.html>
670 677
671=item $buf = $ctx->buffer ($flags, $len) 678=item $buf = $ctx->buffer ($flags, $len)
672 679
673Creates a new OpenCL::Buffer object with the given flags and octet-size. 680Creates a new OpenCL::Buffer (actually OpenCL::BufferObj) object with the
681given flags and octet-size.
674 682
675L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateBuffer.html> 683L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateBuffer.html>
676 684
677=item $buf = $ctx->buffer_sv ($flags, $data) 685=item $buf = $ctx->buffer_sv ($flags, $data)
678 686
679Creates a new OpenCL::Buffer object and initialise it with the given data values. 687Creates a new OpenCL::Buffer (actually OpenCL::BufferObj) object and
688initialise it with the given data values.
680 689
681=item $img = $ctx->image2d ($flags, $channel_order, $channel_type, $width, $height, $row_pitch = 0, $data = undef) 690=item $img = $ctx->image2d ($flags, $channel_order, $channel_type, $width, $height, $row_pitch = 0, $data = undef)
682 691
683Creates a new OpenCL::Image2D object and optionally initialises it with the given data values. 692Creates a new OpenCL::Image2D object and optionally initialises it with
693the given data values.
684 694
685L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateImage2D.html> 695L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateImage2D.html>
686 696
687=item $img = $ctx->image3d ($flags, $channel_order, $channel_type, $width, $height, $depth, $row_pitch = 0, $slice_pitch = 0, $data = undef) 697=item $img = $ctx->image3d ($flags, $channel_order, $channel_type, $width, $height, $depth, $row_pitch = 0, $slice_pitch = 0, $data = undef)
688 698
689Creates a new OpenCL::Image3D object and optionally initialises it with the given data values. 699Creates a new OpenCL::Image3D object and optionally initialises it with
700the given data values.
690 701
691L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateImage3D.html> 702L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateImage3D.html>
692 703
693=item @formats = $ctx->supported_image_formats ($flags, $image_type) 704=item @formats = $ctx->supported_image_formats ($flags, $image_type)
694 705
717 728
718=for gengetinfo begin context 729=for gengetinfo begin context
719 730
720=item $uint = $context->reference_count 731=item $uint = $context->reference_count
721 732
722Calls C<clGetContextInfo> with C<CL_CONTEXT_REFERENCE_COUNT> and returns the result(s). 733Calls C<clGetContextInfo> with C<CL_CONTEXT_REFERENCE_COUNT> and returns the result.
723 734
724=item @devices = $context->devices 735=item @devices = $context->devices
725 736
726Calls C<clGetContextInfo> with C<CL_CONTEXT_DEVICES> and returns the result(s). 737Calls C<clGetContextInfo> with C<CL_CONTEXT_DEVICES> and returns the result.
727 738
728=item @property_ints = $context->properties 739=item @property_ints = $context->properties
729 740
730Calls C<clGetContextInfo> with C<CL_CONTEXT_PROPERTIES> and returns the result(s). 741Calls C<clGetContextInfo> with C<CL_CONTEXT_PROPERTIES> and returns the result.
731 742
732=item $uint = $context->num_devices 743=item $uint = $context->num_devices
733 744
734Calls C<clGetContextInfo> with C<CL_CONTEXT_NUM_DEVICES> and returns the result(s). 745Calls C<clGetContextInfo> with C<CL_CONTEXT_NUM_DEVICES> and returns the result.
735 746
736=for gengetinfo end context 747=for gengetinfo end context
737 748
738=back 749=back
739 750
771 782
772=item $ev = $queue->enqueue_copy_buffer ($src, $dst, $src_offset, $dst_offset, $len, $wait_events...) 783=item $ev = $queue->enqueue_copy_buffer ($src, $dst, $src_offset, $dst_offset, $len, $wait_events...)
773 784
774L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBuffer.html> 785L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBuffer.html>
775 786
787=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...)
788
789http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueReadBufferRect.html
790
791=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...)
792
793http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueWriteBufferRect.html
794
776=item $ev = $queue->enqueue_read_image ($src, $blocking, $x, $y, $z, $width, $height, $depth, $row_pitch, $slice_pitch, $data, $wait_events...) 795=item $ev = $queue->enqueue_read_image ($src, $blocking, $x, $y, $z, $width, $height, $depth, $row_pitch, $slice_pitch, $data, $wait_events...)
777 796
797L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBufferRect.html>
798
799=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...)
800
778L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueReadImage.html> 801L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueReadImage.html>
779 802
780=item $ev = $queue->enqueue_write_image ($src, $blocking, $x, $y, $z, $width, $height, $depth, $row_pitch, $slice_pitch, $data, $wait_events...) 803=item $ev = $queue->enqueue_write_image ($src, $blocking, $x, $y, $z, $width, $height, $depth, $row_pitch, $slice_pitch, $data, $wait_events...)
781 804
782L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueWriteImage.html> 805L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueWriteImage.html>
783 806
807=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...)
808
809L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyImage.html>
810
811=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...)
812
813L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyImageToBuffer.html>
814
784=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...) 815=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...)
785 816
786Yeah. 817Yeah.
787 818
788L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBufferRect.html>
789
790=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...)
791
792L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBufferToImage.html>. 819L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBufferToImage.html>.
793
794=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...)
795
796L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyImage.html>
797
798=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...)
799
800L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyImageToBuffer.html>
801 820
802=item $ev = $queue->enqueue_task ($kernel, $wait_events...) 821=item $ev = $queue->enqueue_task ($kernel, $wait_events...)
803 822
804L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueTask.html> 823L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueTask.html>
805 824
849 868
850=for gengetinfo begin command_queue 869=for gengetinfo begin command_queue
851 870
852=item $ctx = $command_queue->context 871=item $ctx = $command_queue->context
853 872
854Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_CONTEXT> and returns the result(s). 873Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_CONTEXT> and returns the result.
855 874
856=item $device = $command_queue->device 875=item $device = $command_queue->device
857 876
858Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_DEVICE> and returns the result(s). 877Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_DEVICE> and returns the result.
859 878
860=item $uint = $command_queue->reference_count 879=item $uint = $command_queue->reference_count
861 880
862Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_REFERENCE_COUNT> and returns the result(s). 881Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_REFERENCE_COUNT> and returns the result.
863 882
864=item $command_queue_properties = $command_queue->properties 883=item $command_queue_properties = $command_queue->properties
865 884
866Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_PROPERTIES> and returns the result(s). 885Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_PROPERTIES> and returns the result.
867 886
868=for gengetinfo end command_queue 887=for gengetinfo end command_queue
869 888
870=back 889=back
871 890
884 903
885=for gengetinfo begin mem 904=for gengetinfo begin mem
886 905
887=item $mem_object_type = $mem->type 906=item $mem_object_type = $mem->type
888 907
889Calls C<clGetMemObjectInfo> with C<CL_MEM_TYPE> and returns the result(s). 908Calls C<clGetMemObjectInfo> with C<CL_MEM_TYPE> and returns the result.
890 909
891=item $mem_flags = $mem->flags 910=item $mem_flags = $mem->flags
892 911
893Calls C<clGetMemObjectInfo> with C<CL_MEM_FLAGS> and returns the result(s). 912Calls C<clGetMemObjectInfo> with C<CL_MEM_FLAGS> and returns the result.
894 913
895=item $int = $mem->size 914=item $int = $mem->size
896 915
897Calls C<clGetMemObjectInfo> with C<CL_MEM_SIZE> and returns the result(s). 916Calls C<clGetMemObjectInfo> with C<CL_MEM_SIZE> and returns the result.
898 917
899=item $ptr_value = $mem->host_ptr 918=item $ptr_value = $mem->host_ptr
900 919
901Calls C<clGetMemObjectInfo> with C<CL_MEM_HOST_PTR> and returns the result(s). 920Calls C<clGetMemObjectInfo> with C<CL_MEM_HOST_PTR> and returns the result.
902 921
903=item $uint = $mem->map_count 922=item $uint = $mem->map_count
904 923
905Calls C<clGetMemObjectInfo> with C<CL_MEM_MAP_COUNT> and returns the result(s). 924Calls C<clGetMemObjectInfo> with C<CL_MEM_MAP_COUNT> and returns the result.
906 925
907=item $uint = $mem->reference_count 926=item $uint = $mem->reference_count
908 927
909Calls C<clGetMemObjectInfo> with C<CL_MEM_REFERENCE_COUNT> and returns the result(s). 928Calls C<clGetMemObjectInfo> with C<CL_MEM_REFERENCE_COUNT> and returns the result.
910 929
911=item $ctx = $mem->context 930=item $ctx = $mem->context
912 931
913Calls C<clGetMemObjectInfo> with C<CL_MEM_CONTEXT> and returns the result(s). 932Calls C<clGetMemObjectInfo> with C<CL_MEM_CONTEXT> and returns the result.
914 933
915=item $mem = $mem->associated_memobject 934=item $mem = $mem->associated_memobject
916 935
917Calls C<clGetMemObjectInfo> with C<CL_MEM_ASSOCIATED_MEMOBJECT> and returns the result(s). 936Calls C<clGetMemObjectInfo> with C<CL_MEM_ASSOCIATED_MEMOBJECT> and returns the result.
918 937
919=item $int = $mem->offset 938=item $int = $mem->offset
920 939
921Calls C<clGetMemObjectInfo> with C<CL_MEM_OFFSET> and returns the result(s). 940Calls C<clGetMemObjectInfo> with C<CL_MEM_OFFSET> and returns the result.
922 941
923=for gengetinfo end mem 942=for gengetinfo end mem
943
944=back
945
946=head2 THE OpenCL::Buffer CLASS
947
948This is a subclass of OpenCL::Memory, and the superclass of
949OpenCL::BufferObj. Its purpose is simply to distinguish between buffers
950and sub-buffers.
951
952=head2 THE OpenCL::BufferObj CLASS
953
954This is a subclass of OpenCL::Buffer and thus OpenCL::Memory. It exists
955because one cna create sub buffers of OpenLC::BufferObj objects, but not
956sub buffers from these sub buffers.
957
958=over 4
959
960=item $subbuf = $buf_obj->sub_buffer_region ($flags, $origin, $size)
961
962Creates an OpenCL::Buffer objects from this buffer and returns it. The
963C<buffer_create_type> is assumed to be C<CL_BUFFER_CREATE_TYPE_REGION>.
964
965L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateSubBuffer.html>
924 966
925=back 967=back
926 968
927=head2 THE OpenCL::Image CLASS 969=head2 THE OpenCL::Image CLASS
928 970
941 983
942=for gengetinfo begin image 984=for gengetinfo begin image
943 985
944=item $int = $image->element_size 986=item $int = $image->element_size
945 987
946Calls C<clGetImageInfo> with C<CL_IMAGE_ELEMENT_SIZE> and returns the result(s). 988Calls C<clGetImageInfo> with C<CL_IMAGE_ELEMENT_SIZE> and returns the result.
947 989
948=item $int = $image->row_pitch 990=item $int = $image->row_pitch
949 991
950Calls C<clGetImageInfo> with C<CL_IMAGE_ROW_PITCH> and returns the result(s). 992Calls C<clGetImageInfo> with C<CL_IMAGE_ROW_PITCH> and returns the result.
951 993
952=item $int = $image->slice_pitch 994=item $int = $image->slice_pitch
953 995
954Calls C<clGetImageInfo> with C<CL_IMAGE_SLICE_PITCH> and returns the result(s). 996Calls C<clGetImageInfo> with C<CL_IMAGE_SLICE_PITCH> and returns the result.
955 997
956=item $int = $image->width 998=item $int = $image->width
957 999
958Calls C<clGetImageInfo> with C<CL_IMAGE_WIDTH> and returns the result(s). 1000Calls C<clGetImageInfo> with C<CL_IMAGE_WIDTH> and returns the result.
959 1001
960=item $int = $image->height 1002=item $int = $image->height
961 1003
962Calls C<clGetImageInfo> with C<CL_IMAGE_HEIGHT> and returns the result(s). 1004Calls C<clGetImageInfo> with C<CL_IMAGE_HEIGHT> and returns the result.
963 1005
964=item $int = $image->depth 1006=item $int = $image->depth
965 1007
966Calls C<clGetImageInfo> with C<CL_IMAGE_DEPTH> and returns the result(s). 1008Calls C<clGetImageInfo> with C<CL_IMAGE_DEPTH> and returns the result.
967 1009
968=for gengetinfo end image 1010=for gengetinfo end image
969 1011
970=back 1012=back
971 1013
981 1023
982=for gengetinfo begin sampler 1024=for gengetinfo begin sampler
983 1025
984=item $uint = $sampler->reference_count 1026=item $uint = $sampler->reference_count
985 1027
986Calls C<clGetSamplerInfo> with C<CL_SAMPLER_REFERENCE_COUNT> and returns the result(s). 1028Calls C<clGetSamplerInfo> with C<CL_SAMPLER_REFERENCE_COUNT> and returns the result.
987 1029
988=item $ctx = $sampler->context 1030=item $ctx = $sampler->context
989 1031
990Calls C<clGetSamplerInfo> with C<CL_SAMPLER_CONTEXT> and returns the result(s). 1032Calls C<clGetSamplerInfo> with C<CL_SAMPLER_CONTEXT> and returns the result.
991 1033
992=item $addressing_mode = $sampler->normalized_coords 1034=item $addressing_mode = $sampler->normalized_coords
993 1035
994Calls C<clGetSamplerInfo> with C<CL_SAMPLER_NORMALIZED_COORDS> and returns the result(s). 1036Calls C<clGetSamplerInfo> with C<CL_SAMPLER_NORMALIZED_COORDS> and returns the result.
995 1037
996=item $filter_mode = $sampler->addressing_mode 1038=item $filter_mode = $sampler->addressing_mode
997 1039
998Calls C<clGetSamplerInfo> with C<CL_SAMPLER_ADDRESSING_MODE> and returns the result(s). 1040Calls C<clGetSamplerInfo> with C<CL_SAMPLER_ADDRESSING_MODE> and returns the result.
999 1041
1000=item $boolean = $sampler->filter_mode 1042=item $boolean = $sampler->filter_mode
1001 1043
1002Calls C<clGetSamplerInfo> with C<CL_SAMPLER_FILTER_MODE> and returns the result(s). 1044Calls C<clGetSamplerInfo> with C<CL_SAMPLER_FILTER_MODE> and returns the result.
1003 1045
1004=for gengetinfo end sampler 1046=for gengetinfo end sampler
1005 1047
1006=back 1048=back
1007 1049
1031 1073
1032=for gengetinfo begin program_build 1074=for gengetinfo begin program_build
1033 1075
1034=item $build_status = $program->build_status ($device) 1076=item $build_status = $program->build_status ($device)
1035 1077
1036Calls C<clGetProgramBuildInfo> with C<CL_PROGRAM_BUILD_STATUS> and returns the result(s). 1078Calls C<clGetProgramBuildInfo> with C<CL_PROGRAM_BUILD_STATUS> and returns the result.
1037 1079
1038=item $string = $program->build_options ($device) 1080=item $string = $program->build_options ($device)
1039 1081
1040Calls C<clGetProgramBuildInfo> with C<CL_PROGRAM_BUILD_OPTIONS> and returns the result(s). 1082Calls C<clGetProgramBuildInfo> with C<CL_PROGRAM_BUILD_OPTIONS> and returns the result.
1041 1083
1042=item $string = $program->build_log ($device) 1084=item $string = $program->build_log ($device)
1043 1085
1044Calls C<clGetProgramBuildInfo> with C<CL_PROGRAM_BUILD_LOG> and returns the result(s). 1086Calls C<clGetProgramBuildInfo> with C<CL_PROGRAM_BUILD_LOG> and returns the result.
1045 1087
1046=for gengetinfo end program_build 1088=for gengetinfo end program_build
1047 1089
1048=item $packed_value = $program->info ($name) 1090=item $packed_value = $program->info ($name)
1049 1091
1053 1095
1054=for gengetinfo begin program 1096=for gengetinfo begin program
1055 1097
1056=item $uint = $program->reference_count 1098=item $uint = $program->reference_count
1057 1099
1058Calls C<clGetProgramInfo> with C<CL_PROGRAM_REFERENCE_COUNT> and returns the result(s). 1100Calls C<clGetProgramInfo> with C<CL_PROGRAM_REFERENCE_COUNT> and returns the result.
1059 1101
1060=item $ctx = $program->context 1102=item $ctx = $program->context
1061 1103
1062Calls C<clGetProgramInfo> with C<CL_PROGRAM_CONTEXT> and returns the result(s). 1104Calls C<clGetProgramInfo> with C<CL_PROGRAM_CONTEXT> and returns the result.
1063 1105
1064=item $uint = $program->num_devices 1106=item $uint = $program->num_devices
1065 1107
1066Calls C<clGetProgramInfo> with C<CL_PROGRAM_NUM_DEVICES> and returns the result(s). 1108Calls C<clGetProgramInfo> with C<CL_PROGRAM_NUM_DEVICES> and returns the result.
1067 1109
1068=item @devices = $program->devices 1110=item @devices = $program->devices
1069 1111
1070Calls C<clGetProgramInfo> with C<CL_PROGRAM_DEVICES> and returns the result(s). 1112Calls C<clGetProgramInfo> with C<CL_PROGRAM_DEVICES> and returns the result.
1071 1113
1072=item $string = $program->source 1114=item $string = $program->source
1073 1115
1074Calls C<clGetProgramInfo> with C<CL_PROGRAM_SOURCE> and returns the result(s). 1116Calls C<clGetProgramInfo> with C<CL_PROGRAM_SOURCE> and returns the result.
1075 1117
1076=item @ints = $program->binary_sizes 1118=item @ints = $program->binary_sizes
1077 1119
1078Calls C<clGetProgramInfo> with C<CL_PROGRAM_BINARY_SIZES> and returns the result(s). 1120Calls C<clGetProgramInfo> with C<CL_PROGRAM_BINARY_SIZES> and returns the result.
1079 1121
1080=for gengetinfo end program 1122=for gengetinfo end program
1081 1123
1124=item @blobs = $program->binaries
1125
1126Returns a string for the compiled binary for every device associated with
1127the program, empty strings indicate missing programs, and an empty result
1128means no program binaries are available.
1129
1130These "binaries" are often, in fact, informative low-level assembly
1131sources.
1132
1133L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetProgramInfo.html>
1134
1082=back 1135=back
1083 1136
1084=head2 THE OpenCL::Kernel CLASS 1137=head2 THE OpenCL::Kernel CLASS
1085 1138
1086=over 4 1139=over 4
1093 1146
1094=for gengetinfo begin kernel 1147=for gengetinfo begin kernel
1095 1148
1096=item $string = $kernel->function_name 1149=item $string = $kernel->function_name
1097 1150
1098Calls C<clGetKernelInfo> with C<CL_KERNEL_FUNCTION_NAME> and returns the result(s). 1151Calls C<clGetKernelInfo> with C<CL_KERNEL_FUNCTION_NAME> and returns the result.
1099 1152
1100=item $uint = $kernel->num_args 1153=item $uint = $kernel->num_args
1101 1154
1102Calls C<clGetKernelInfo> with C<CL_KERNEL_NUM_ARGS> and returns the result(s). 1155Calls C<clGetKernelInfo> with C<CL_KERNEL_NUM_ARGS> and returns the result.
1103 1156
1104=item $uint = $kernel->reference_count 1157=item $uint = $kernel->reference_count
1105 1158
1106Calls C<clGetKernelInfo> with C<CL_KERNEL_REFERENCE_COUNT> and returns the result(s). 1159Calls C<clGetKernelInfo> with C<CL_KERNEL_REFERENCE_COUNT> and returns the result.
1107 1160
1108=item $ctx = $kernel->context 1161=item $ctx = $kernel->context
1109 1162
1110Calls C<clGetKernelInfo> with C<CL_KERNEL_CONTEXT> and returns the result(s). 1163Calls C<clGetKernelInfo> with C<CL_KERNEL_CONTEXT> and returns the result.
1111 1164
1112=item $program = $kernel->program 1165=item $program = $kernel->program
1113 1166
1114Calls C<clGetKernelInfo> with C<CL_KERNEL_PROGRAM> and returns the result(s). 1167Calls C<clGetKernelInfo> with C<CL_KERNEL_PROGRAM> and returns the result.
1115 1168
1116=for gengetinfo end kernel 1169=for gengetinfo end kernel
1117 1170
1118=item $packed_value = $kernel->work_group_info ($device, $name) 1171=item $packed_value = $kernel->work_group_info ($device, $name)
1119 1172
1126 1179
1127=for gengetinfo begin kernel_work_group 1180=for gengetinfo begin kernel_work_group
1128 1181
1129=item $int = $kernel->work_group_size ($device) 1182=item $int = $kernel->work_group_size ($device)
1130 1183
1131Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_WORK_GROUP_SIZE> and returns the result(s). 1184Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_WORK_GROUP_SIZE> and returns the result.
1132 1185
1133=item @ints = $kernel->compile_work_group_size ($device) 1186=item @ints = $kernel->compile_work_group_size ($device)
1134 1187
1135Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_COMPILE_WORK_GROUP_SIZE> and returns the result(s). 1188Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_COMPILE_WORK_GROUP_SIZE> and returns the result.
1136 1189
1137=item $ulong = $kernel->local_mem_size ($device) 1190=item $ulong = $kernel->local_mem_size ($device)
1138 1191
1139Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_LOCAL_MEM_SIZE> and returns the result(s). 1192Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_LOCAL_MEM_SIZE> and returns the result.
1140 1193
1141=item $int = $kernel->preferred_work_group_size_multiple ($device) 1194=item $int = $kernel->preferred_work_group_size_multiple ($device)
1142 1195
1143Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE> and returns the result(s). 1196Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE> and returns the result.
1144 1197
1145=item $ulong = $kernel->private_mem_size ($device) 1198=item $ulong = $kernel->private_mem_size ($device)
1146 1199
1147Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_PRIVATE_MEM_SIZE> and returns the result(s). 1200Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_PRIVATE_MEM_SIZE> and returns the result.
1148 1201
1149=for gengetinfo end kernel_work_group 1202=for gengetinfo end kernel_work_group
1150 1203
1151=item $kernel->set_TYPE ($index, $value) 1204=item $kernel->set_TYPE ($index, $value)
1152 1205
1186 1239
1187=for gengetinfo begin event 1240=for gengetinfo begin event
1188 1241
1189=item $queue = $event->command_queue 1242=item $queue = $event->command_queue
1190 1243
1191Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_QUEUE> and returns the result(s). 1244Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_QUEUE> and returns the result.
1192 1245
1193=item $command_type = $event->command_type 1246=item $command_type = $event->command_type
1194 1247
1195Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_TYPE> and returns the result(s). 1248Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_TYPE> and returns the result.
1196 1249
1197=item $uint = $event->reference_count 1250=item $uint = $event->reference_count
1198 1251
1199Calls C<clGetEventInfo> with C<CL_EVENT_REFERENCE_COUNT> and returns the result(s). 1252Calls C<clGetEventInfo> with C<CL_EVENT_REFERENCE_COUNT> and returns the result.
1200 1253
1201=item $uint = $event->command_execution_status 1254=item $uint = $event->command_execution_status
1202 1255
1203Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_EXECUTION_STATUS> and returns the result(s). 1256Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_EXECUTION_STATUS> and returns the result.
1204 1257
1205=item $ctx = $event->context 1258=item $ctx = $event->context
1206 1259
1207Calls C<clGetEventInfo> with C<CL_EVENT_CONTEXT> and returns the result(s). 1260Calls C<clGetEventInfo> with C<CL_EVENT_CONTEXT> and returns the result.
1208 1261
1209=for gengetinfo end event 1262=for gengetinfo end event
1210 1263
1211=item $packed_value = $ev->profiling_info ($name) 1264=item $packed_value = $ev->profiling_info ($name)
1212 1265
1219 1272
1220=for gengetinfo begin profiling 1273=for gengetinfo begin profiling
1221 1274
1222=item $ulong = $event->profiling_command_queued 1275=item $ulong = $event->profiling_command_queued
1223 1276
1224Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_QUEUED> and returns the result(s). 1277Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_QUEUED> and returns the result.
1225 1278
1226=item $ulong = $event->profiling_command_submit 1279=item $ulong = $event->profiling_command_submit
1227 1280
1228Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_SUBMIT> and returns the result(s). 1281Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_SUBMIT> and returns the result.
1229 1282
1230=item $ulong = $event->profiling_command_start 1283=item $ulong = $event->profiling_command_start
1231 1284
1232Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_START> and returns the result(s). 1285Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_START> and returns the result.
1233 1286
1234=item $ulong = $event->profiling_command_end 1287=item $ulong = $event->profiling_command_end
1235 1288
1236Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_END> and returns the result(s). 1289Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_END> and returns the result.
1237 1290
1238=for gengetinfo end profiling 1291=for gengetinfo end profiling
1239 1292
1240=back 1293=back
1241 1294
1256package OpenCL; 1309package OpenCL;
1257 1310
1258use common::sense; 1311use common::sense;
1259 1312
1260BEGIN { 1313BEGIN {
1261 our $VERSION = '0.55'; 1314 our $VERSION = '0.92';
1262 1315
1263 require XSLoader; 1316 require XSLoader;
1264 XSLoader::load (__PACKAGE__, $VERSION); 1317 XSLoader::load (__PACKAGE__, $VERSION);
1265 1318
1266 @OpenCL::Buffer::ISA = 1319 @OpenCL::Buffer::ISA =
1267 @OpenCL::Image::ISA = OpenCL::Memory::; 1320 @OpenCL::Image::ISA = OpenCL::Memory::;
1268 1321
1322 @OpenCL::BufferObj::ISA = OpenCL::Buffer::;
1323
1269 @OpenCL::Image2D::ISA = 1324 @OpenCL::Image2D::ISA =
1270 @OpenCL::Image3D::ISA = OpenCL::Image::; 1325 @OpenCL::Image3D::ISA = OpenCL::Image::;
1271 1326
1272 @OpenCL::UserEvent::ISA = OpenCL::Event::; 1327 @OpenCL::UserEvent::ISA = OpenCL::Event::;
1273} 1328}
1274 1329
12751; 13301;
1276 1331
1277=head1 AUTHOR 1332=head1 AUTHOR

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines