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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines