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

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

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines