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.41 by root, Fri Apr 20 08:57:09 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.
210 # enqueue an async read 210 # enqueue an async read
211 $ev = $queue->enqueue_read_buffer ($output, 0, 0, OpenCL::SIZEOF_FLOAT * 4, my $data, $ev); 211 $ev = $queue->enqueue_read_buffer ($output, 0, 0, OpenCL::SIZEOF_FLOAT * 4, my $data, $ev);
212 212
213 # wait for the last event to complete 213 # wait for the last event to complete
214 $ev->wait; 214 $ev->wait;
215
216=head2 Use the OpenGL module to share a texture between OpenCL and OpenGL and draw some julia
217set tunnel effect.
218
219This is quite a long example to get you going.
220
221 use OpenGL ":all";
222 use OpenCL;
223
224 # open a window and create a gl texture
225 OpenGL::glpOpenWindow width => 256, height => 256;
226 my $texid = glGenTextures_p 1;
227 glBindTexture GL_TEXTURE_2D, $texid;
228 glTexImage2D_c GL_TEXTURE_2D, 0, GL_RGBA8, 256, 256, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0;
229
230 # find and use the first opencl device that let's us get a shared opengl context
231 my $platform;
232 my $dev;
233 my $ctx;
234
235 for (OpenCL::platforms) {
236 $platform = $_;
237 for ($platform->devices) {
238 $dev = $_;
239 $ctx = $platform->context ([OpenCL::GLX_DISPLAY_KHR, undef, OpenCL::GL_CONTEXT_KHR, undef], [$dev])
240 and last;
241 }
242 }
243
244 $ctx
245 or die "cannot find suitable OpenCL device\n";
246
247 my $queue = $ctx->queue ($dev);
248
249 # now attach an opencl image2d object to the opengl texture
250 my $tex = $ctx->gl_texture2d (OpenCL::MEM_WRITE_ONLY, GL_TEXTURE_2D, 0, $texid);
251
252 # now the boring opencl code
253 my $src = <<EOF;
254 kernel void
255 juliatunnel (write_only image2d_t img, float time)
256 {
257 float2 p = (float2)(get_global_id (0), get_global_id (1)) / 256.f * 2.f - 1.f;
258
259 float2 m = (float2)(1.f, p.y) / fabs (p.x);
260 m.x = fabs (fmod (m.x + time * 0.05f, 4.f)) - 2.f;
261
262 float2 z = m;
263 float2 c = (float2)(sin (time * 0.05005), cos (time * 0.06001));
264
265 for (int i = 0; i < 25 && dot (z, z) < 4.f; ++i)
266 z = (float2)(z.x * z.x - z.y * z.y, 2.f * z.x * z.y) + c;
267
268 float3 colour = (float3)(z.x, z.y, z.x * z.y);
269 write_imagef (img, (int2)(get_global_id (0), get_global_id (1)), (float4)(colour * p.x * p.x, 1.));
270 }
271 EOF
272 my $prog = $ctx->program_with_source ($src);
273 eval { $prog->build ($dev); 1 }
274 or die $prog->build_log ($dev);
275
276 my $kernel = $prog->kernel ("juliatunnel");
277
278 # program compiled, kernel ready, now draw and loop
279
280 for (my $time; ; ++$time) {
281 # acquire objects from opengl
282 $queue->enqueue_acquire_gl_objects ([$tex]);
283
284 # configure and run our kernel
285 $kernel->set_image2d (0, $tex);
286 $kernel->set_float (1, $time);
287 $queue->enqueue_nd_range_kernel ($kernel, undef, [256, 256], undef);
288
289 # release objects to opengl again
290 $queue->enqueue_release_gl_objects ([$tex]);
291
292 # wait
293 $queue->finish;
294
295 # now draw the texture, the defaults should be all right
296 glTexParameterf GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST;
297
298 glEnable GL_TEXTURE_2D;
299 glBegin GL_QUADS;
300 glTexCoord2f 0, 1; glVertex3i -1, -1, -1;
301 glTexCoord2f 0, 0; glVertex3i 1, -1, -1;
302 glTexCoord2f 1, 0; glVertex3i 1, 1, -1;
303 glTexCoord2f 1, 1; glVertex3i -1, 1, -1;
304 glEnd;
305
306 glXSwapBuffers;
307
308 select undef, undef, undef, 1/60;
309 }
215 310
216=head1 DOCUMENTATION 311=head1 DOCUMENTATION
217 312
218=head2 BASIC CONVENTIONS 313=head2 BASIC CONVENTIONS
219 314
271 ulong IV - Q 366 ulong IV - Q
272 float NV float f 367 float NV float f
273 half IV ushort S 368 half IV ushort S
274 double NV double d 369 double NV double d
275 370
371=head2 GLX SUPPORT
372
373Due to the sad state that OpenGL support is in in Perl (mostly the OpenGL
374module, which has little to no documentation and has little to no support
375for glX), this module, as a special extension, treats context creation
376properties C<OpenCL::GLX_DISPLAY_KHR> and C<OpenCL::GL_CONTEXT_KHR>
377specially: If either or both of these are C<undef>, then the OpenCL
378module tries to dynamically resolve C<glXGetCurrentDisplay> and
379C<glXGetCurrentContext>, call these functions and use their return values
380instead.
381
382For this to work, the OpenGL library must be loaded, a GLX context must
383have been created and be made current, and C<dlsym> must be available and
384capable of finding the function via C<RTLD_DEFAULT>.
385
276=head2 THE OpenCL PACKAGE 386=head2 THE OpenCL PACKAGE
277 387
278=over 4 388=over 4
279 389
280=item $int = OpenCL::errno 390=item $int = OpenCL::errno
286 396
287Comverts an error value into a human readable string. 397Comverts an error value into a human readable string.
288 398
289=item $str = OpenCL::enum2str $enum 399=item $str = OpenCL::enum2str $enum
290 400
291Converts most enum values (inof parameter names, image format constants, 401Converts most enum values (of parameter names, image format constants,
292object types, addressing and filter modes, command types etc.) into a 402object types, addressing and filter modes, command types etc.) into a
293human readbale string. When confronted with some random integer it can be 403human readable string. When confronted with some random integer it can be
294very helpful to pass it through this function to maybe get some readable 404very helpful to pass it through this function to maybe get some readable
295string out of it. 405string out of it.
296 406
297=item @platforms = OpenCL::platforms 407=item @platforms = OpenCL::platforms
298 408
326 436
327Tries to create a context. Never worked for me, and you need devices explicitly anyway. 437Tries to create a context. Never worked for me, and you need devices explicitly anyway.
328 438
329L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateContextFromType.html> 439L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateContextFromType.html>
330 440
331=item $ctx = $device->context ($properties = undef, @$devices, $notify = undef) 441=item $ctx = $platform->context ($properties = undef, @$devices, $notify = undef)
332 442
333Create a new OpenCL::Context object using the given device object(s)- a 443Create a new OpenCL::Context object using the given device object(s)- a
334CL_CONTEXT_PLATFORM property is supplied automatically. 444CL_CONTEXT_PLATFORM property is supplied automatically.
335 445
336L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateContext.html> 446L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateContext.html>
348 458
349=for gengetinfo begin platform 459=for gengetinfo begin platform
350 460
351=item $string = $platform->profile 461=item $string = $platform->profile
352 462
353Calls C<clGetPlatformInfo> with C<CL_PLATFORM_PROFILE> and returns the result(s). 463Calls C<clGetPlatformInfo> with C<CL_PLATFORM_PROFILE> and returns the result.
354 464
355=item $string = $platform->version 465=item $string = $platform->version
356 466
357Calls C<clGetPlatformInfo> with C<CL_PLATFORM_VERSION> and returns the result(s). 467Calls C<clGetPlatformInfo> with C<CL_PLATFORM_VERSION> and returns the result.
358 468
359=item $string = $platform->name 469=item $string = $platform->name
360 470
361Calls C<clGetPlatformInfo> with C<CL_PLATFORM_NAME> and returns the result(s). 471Calls C<clGetPlatformInfo> with C<CL_PLATFORM_NAME> and returns the result.
362 472
363=item $string = $platform->vendor 473=item $string = $platform->vendor
364 474
365Calls C<clGetPlatformInfo> with C<CL_PLATFORM_VENDOR> and returns the result(s). 475Calls C<clGetPlatformInfo> with C<CL_PLATFORM_VENDOR> and returns the result.
366 476
367=item $string = $platform->extensions 477=item $string = $platform->extensions
368 478
369Calls C<clGetPlatformInfo> with C<CL_PLATFORM_EXTENSIONS> and returns the result(s). 479Calls C<clGetPlatformInfo> with C<CL_PLATFORM_EXTENSIONS> and returns the result.
370 480
371=for gengetinfo end platform 481=for gengetinfo end platform
372 482
373=back 483=back
374 484
384 494
385=for gengetinfo begin device 495=for gengetinfo begin device
386 496
387=item $device_type = $device->type 497=item $device_type = $device->type
388 498
389Calls C<clGetDeviceInfo> with C<CL_DEVICE_TYPE> and returns the result(s). 499Calls C<clGetDeviceInfo> with C<CL_DEVICE_TYPE> and returns the result.
390 500
391=item $uint = $device->vendor_id 501=item $uint = $device->vendor_id
392 502
393Calls C<clGetDeviceInfo> with C<CL_DEVICE_VENDOR_ID> and returns the result(s). 503Calls C<clGetDeviceInfo> with C<CL_DEVICE_VENDOR_ID> and returns the result.
394 504
395=item $uint = $device->max_compute_units 505=item $uint = $device->max_compute_units
396 506
397Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_COMPUTE_UNITS> and returns the result(s). 507Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_COMPUTE_UNITS> and returns the result.
398 508
399=item $uint = $device->max_work_item_dimensions 509=item $uint = $device->max_work_item_dimensions
400 510
401Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS> and returns the result(s). 511Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS> and returns the result.
402 512
403=item $int = $device->max_work_group_size 513=item $int = $device->max_work_group_size
404 514
405Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WORK_GROUP_SIZE> and returns the result(s). 515Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WORK_GROUP_SIZE> and returns the result.
406 516
407=item @ints = $device->max_work_item_sizes 517=item @ints = $device->max_work_item_sizes
408 518
409Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WORK_ITEM_SIZES> and returns the result(s). 519Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WORK_ITEM_SIZES> and returns the result.
410 520
411=item $uint = $device->preferred_vector_width_char 521=item $uint = $device->preferred_vector_width_char
412 522
413Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR> and returns the result(s). 523Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR> and returns the result.
414 524
415=item $uint = $device->preferred_vector_width_short 525=item $uint = $device->preferred_vector_width_short
416 526
417Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT> and returns the result(s). 527Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT> and returns the result.
418 528
419=item $uint = $device->preferred_vector_width_int 529=item $uint = $device->preferred_vector_width_int
420 530
421Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT> and returns the result(s). 531Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT> and returns the result.
422 532
423=item $uint = $device->preferred_vector_width_long 533=item $uint = $device->preferred_vector_width_long
424 534
425Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG> and returns the result(s). 535Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG> and returns the result.
426 536
427=item $uint = $device->preferred_vector_width_float 537=item $uint = $device->preferred_vector_width_float
428 538
429Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT> and returns the result(s). 539Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT> and returns the result.
430 540
431=item $uint = $device->preferred_vector_width_double 541=item $uint = $device->preferred_vector_width_double
432 542
433Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE> and returns the result(s). 543Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE> and returns the result.
434 544
435=item $uint = $device->max_clock_frequency 545=item $uint = $device->max_clock_frequency
436 546
437Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_CLOCK_FREQUENCY> and returns the result(s). 547Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_CLOCK_FREQUENCY> and returns the result.
438 548
439=item $bitfield = $device->address_bits 549=item $bitfield = $device->address_bits
440 550
441Calls C<clGetDeviceInfo> with C<CL_DEVICE_ADDRESS_BITS> and returns the result(s). 551Calls C<clGetDeviceInfo> with C<CL_DEVICE_ADDRESS_BITS> and returns the result.
442 552
443=item $uint = $device->max_read_image_args 553=item $uint = $device->max_read_image_args
444 554
445Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_READ_IMAGE_ARGS> and returns the result(s). 555Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_READ_IMAGE_ARGS> and returns the result.
446 556
447=item $uint = $device->max_write_image_args 557=item $uint = $device->max_write_image_args
448 558
449Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WRITE_IMAGE_ARGS> and returns the result(s). 559Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_WRITE_IMAGE_ARGS> and returns the result.
450 560
451=item $ulong = $device->max_mem_alloc_size 561=item $ulong = $device->max_mem_alloc_size
452 562
453Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_MEM_ALLOC_SIZE> and returns the result(s). 563Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_MEM_ALLOC_SIZE> and returns the result.
454 564
455=item $int = $device->image2d_max_width 565=item $int = $device->image2d_max_width
456 566
457Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE2D_MAX_WIDTH> and returns the result(s). 567Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE2D_MAX_WIDTH> and returns the result.
458 568
459=item $int = $device->image2d_max_height 569=item $int = $device->image2d_max_height
460 570
461Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE2D_MAX_HEIGHT> and returns the result(s). 571Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE2D_MAX_HEIGHT> and returns the result.
462 572
463=item $int = $device->image3d_max_width 573=item $int = $device->image3d_max_width
464 574
465Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE3D_MAX_WIDTH> and returns the result(s). 575Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE3D_MAX_WIDTH> and returns the result.
466 576
467=item $int = $device->image3d_max_height 577=item $int = $device->image3d_max_height
468 578
469Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE3D_MAX_HEIGHT> and returns the result(s). 579Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE3D_MAX_HEIGHT> and returns the result.
470 580
471=item $int = $device->image3d_max_depth 581=item $int = $device->image3d_max_depth
472 582
473Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE3D_MAX_DEPTH> and returns the result(s). 583Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE3D_MAX_DEPTH> and returns the result.
474 584
475=item $uint = $device->image_support 585=item $uint = $device->image_support
476 586
477Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE_SUPPORT> and returns the result(s). 587Calls C<clGetDeviceInfo> with C<CL_DEVICE_IMAGE_SUPPORT> and returns the result.
478 588
479=item $int = $device->max_parameter_size 589=item $int = $device->max_parameter_size
480 590
481Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_PARAMETER_SIZE> and returns the result(s). 591Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_PARAMETER_SIZE> and returns the result.
482 592
483=item $uint = $device->max_samplers 593=item $uint = $device->max_samplers
484 594
485Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_SAMPLERS> and returns the result(s). 595Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_SAMPLERS> and returns the result.
486 596
487=item $uint = $device->mem_base_addr_align 597=item $uint = $device->mem_base_addr_align
488 598
489Calls C<clGetDeviceInfo> with C<CL_DEVICE_MEM_BASE_ADDR_ALIGN> and returns the result(s). 599Calls C<clGetDeviceInfo> with C<CL_DEVICE_MEM_BASE_ADDR_ALIGN> and returns the result.
490 600
491=item $uint = $device->min_data_type_align_size 601=item $uint = $device->min_data_type_align_size
492 602
493Calls C<clGetDeviceInfo> with C<CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE> and returns the result(s). 603Calls C<clGetDeviceInfo> with C<CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE> and returns the result.
494 604
495=item $device_fp_config = $device->single_fp_config 605=item $device_fp_config = $device->single_fp_config
496 606
497Calls C<clGetDeviceInfo> with C<CL_DEVICE_SINGLE_FP_CONFIG> and returns the result(s). 607Calls C<clGetDeviceInfo> with C<CL_DEVICE_SINGLE_FP_CONFIG> and returns the result.
498 608
499=item $device_mem_cache_type = $device->global_mem_cache_type 609=item $device_mem_cache_type = $device->global_mem_cache_type
500 610
501Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_CACHE_TYPE> and returns the result(s). 611Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_CACHE_TYPE> and returns the result.
502 612
503=item $uint = $device->global_mem_cacheline_size 613=item $uint = $device->global_mem_cacheline_size
504 614
505Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE> and returns the result(s). 615Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE> and returns the result.
506 616
507=item $ulong = $device->global_mem_cache_size 617=item $ulong = $device->global_mem_cache_size
508 618
509Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_CACHE_SIZE> and returns the result(s). 619Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_CACHE_SIZE> and returns the result.
510 620
511=item $ulong = $device->global_mem_size 621=item $ulong = $device->global_mem_size
512 622
513Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_SIZE> and returns the result(s). 623Calls C<clGetDeviceInfo> with C<CL_DEVICE_GLOBAL_MEM_SIZE> and returns the result.
514 624
515=item $ulong = $device->max_constant_buffer_size 625=item $ulong = $device->max_constant_buffer_size
516 626
517Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE> and returns the result(s). 627Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE> and returns the result.
518 628
519=item $uint = $device->max_constant_args 629=item $uint = $device->max_constant_args
520 630
521Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_CONSTANT_ARGS> and returns the result(s). 631Calls C<clGetDeviceInfo> with C<CL_DEVICE_MAX_CONSTANT_ARGS> and returns the result.
522 632
523=item $device_local_mem_type = $device->local_mem_type 633=item $device_local_mem_type = $device->local_mem_type
524 634
525Calls C<clGetDeviceInfo> with C<CL_DEVICE_LOCAL_MEM_TYPE> and returns the result(s). 635Calls C<clGetDeviceInfo> with C<CL_DEVICE_LOCAL_MEM_TYPE> and returns the result.
526 636
527=item $ulong = $device->local_mem_size 637=item $ulong = $device->local_mem_size
528 638
529Calls C<clGetDeviceInfo> with C<CL_DEVICE_LOCAL_MEM_SIZE> and returns the result(s). 639Calls C<clGetDeviceInfo> with C<CL_DEVICE_LOCAL_MEM_SIZE> and returns the result.
530 640
531=item $boolean = $device->error_correction_support 641=item $boolean = $device->error_correction_support
532 642
533Calls C<clGetDeviceInfo> with C<CL_DEVICE_ERROR_CORRECTION_SUPPORT> and returns the result(s). 643Calls C<clGetDeviceInfo> with C<CL_DEVICE_ERROR_CORRECTION_SUPPORT> and returns the result.
534 644
535=item $int = $device->profiling_timer_resolution 645=item $int = $device->profiling_timer_resolution
536 646
537Calls C<clGetDeviceInfo> with C<CL_DEVICE_PROFILING_TIMER_RESOLUTION> and returns the result(s). 647Calls C<clGetDeviceInfo> with C<CL_DEVICE_PROFILING_TIMER_RESOLUTION> and returns the result.
538 648
539=item $boolean = $device->endian_little 649=item $boolean = $device->endian_little
540 650
541Calls C<clGetDeviceInfo> with C<CL_DEVICE_ENDIAN_LITTLE> and returns the result(s). 651Calls C<clGetDeviceInfo> with C<CL_DEVICE_ENDIAN_LITTLE> and returns the result.
542 652
543=item $boolean = $device->available 653=item $boolean = $device->available
544 654
545Calls C<clGetDeviceInfo> with C<CL_DEVICE_AVAILABLE> and returns the result(s). 655Calls C<clGetDeviceInfo> with C<CL_DEVICE_AVAILABLE> and returns the result.
546 656
547=item $boolean = $device->compiler_available 657=item $boolean = $device->compiler_available
548 658
549Calls C<clGetDeviceInfo> with C<CL_DEVICE_COMPILER_AVAILABLE> and returns the result(s). 659Calls C<clGetDeviceInfo> with C<CL_DEVICE_COMPILER_AVAILABLE> and returns the result.
550 660
551=item $device_exec_capabilities = $device->execution_capabilities 661=item $device_exec_capabilities = $device->execution_capabilities
552 662
553Calls C<clGetDeviceInfo> with C<CL_DEVICE_EXECUTION_CAPABILITIES> and returns the result(s). 663Calls C<clGetDeviceInfo> with C<CL_DEVICE_EXECUTION_CAPABILITIES> and returns the result.
554 664
555=item $command_queue_properties = $device->properties 665=item $command_queue_properties = $device->properties
556 666
557Calls C<clGetDeviceInfo> with C<CL_DEVICE_QUEUE_PROPERTIES> and returns the result(s). 667Calls C<clGetDeviceInfo> with C<CL_DEVICE_QUEUE_PROPERTIES> and returns the result.
558 668
559=item $ = $device->platform 669=item $ = $device->platform
560 670
561Calls C<clGetDeviceInfo> with C<CL_DEVICE_PLATFORM> and returns the result(s). 671Calls C<clGetDeviceInfo> with C<CL_DEVICE_PLATFORM> and returns the result.
562 672
563=item $string = $device->name 673=item $string = $device->name
564 674
565Calls C<clGetDeviceInfo> with C<CL_DEVICE_NAME> and returns the result(s). 675Calls C<clGetDeviceInfo> with C<CL_DEVICE_NAME> and returns the result.
566 676
567=item $string = $device->vendor 677=item $string = $device->vendor
568 678
569Calls C<clGetDeviceInfo> with C<CL_DEVICE_VENDOR> and returns the result(s). 679Calls C<clGetDeviceInfo> with C<CL_DEVICE_VENDOR> and returns the result.
570 680
571=item $string = $device->driver_version 681=item $string = $device->driver_version
572 682
573Calls C<clGetDeviceInfo> with C<CL_DRIVER_VERSION> and returns the result(s). 683Calls C<clGetDeviceInfo> with C<CL_DRIVER_VERSION> and returns the result.
574 684
575=item $string = $device->profile 685=item $string = $device->profile
576 686
577Calls C<clGetDeviceInfo> with C<CL_DEVICE_PROFILE> and returns the result(s). 687Calls C<clGetDeviceInfo> with C<CL_DEVICE_PROFILE> and returns the result.
578 688
579=item $string = $device->version 689=item $string = $device->version
580 690
581Calls C<clGetDeviceInfo> with C<CL_DEVICE_VERSION> and returns the result(s). 691Calls C<clGetDeviceInfo> with C<CL_DEVICE_VERSION> and returns the result.
582 692
583=item $string = $device->extensions 693=item $string = $device->extensions
584 694
585Calls C<clGetDeviceInfo> with C<CL_DEVICE_EXTENSIONS> and returns the result(s). 695Calls C<clGetDeviceInfo> with C<CL_DEVICE_EXTENSIONS> and returns the result.
586 696
587=item $uint = $device->preferred_vector_width_half 697=item $uint = $device->preferred_vector_width_half
588 698
589Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF> and returns the result(s). 699Calls C<clGetDeviceInfo> with C<CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF> and returns the result.
590 700
591=item $uint = $device->native_vector_width_char 701=item $uint = $device->native_vector_width_char
592 702
593Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR> and returns the result(s). 703Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR> and returns the result.
594 704
595=item $uint = $device->native_vector_width_short 705=item $uint = $device->native_vector_width_short
596 706
597Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT> and returns the result(s). 707Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT> and returns the result.
598 708
599=item $uint = $device->native_vector_width_int 709=item $uint = $device->native_vector_width_int
600 710
601Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_INT> and returns the result(s). 711Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_INT> and returns the result.
602 712
603=item $uint = $device->native_vector_width_long 713=item $uint = $device->native_vector_width_long
604 714
605Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG> and returns the result(s). 715Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG> and returns the result.
606 716
607=item $uint = $device->native_vector_width_float 717=item $uint = $device->native_vector_width_float
608 718
609Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT> and returns the result(s). 719Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT> and returns the result.
610 720
611=item $uint = $device->native_vector_width_double 721=item $uint = $device->native_vector_width_double
612 722
613Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE> and returns the result(s). 723Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE> and returns the result.
614 724
615=item $uint = $device->native_vector_width_half 725=item $uint = $device->native_vector_width_half
616 726
617Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF> and returns the result(s). 727Calls C<clGetDeviceInfo> with C<CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF> and returns the result.
618 728
619=item $device_fp_config = $device->double_fp_config 729=item $device_fp_config = $device->double_fp_config
620 730
621Calls C<clGetDeviceInfo> with C<CL_DEVICE_DOUBLE_FP_CONFIG> and returns the result(s). 731Calls C<clGetDeviceInfo> with C<CL_DEVICE_DOUBLE_FP_CONFIG> and returns the result.
622 732
623=item $device_fp_config = $device->half_fp_config 733=item $device_fp_config = $device->half_fp_config
624 734
625Calls C<clGetDeviceInfo> with C<CL_DEVICE_HALF_FP_CONFIG> and returns the result(s). 735Calls C<clGetDeviceInfo> with C<CL_DEVICE_HALF_FP_CONFIG> and returns the result.
626 736
627=item $boolean = $device->host_unified_memory 737=item $boolean = $device->host_unified_memory
628 738
629Calls C<clGetDeviceInfo> with C<CL_DEVICE_HOST_UNIFIED_MEMORY> and returns the result(s). 739Calls C<clGetDeviceInfo> with C<CL_DEVICE_HOST_UNIFIED_MEMORY> and returns the result.
630 740
631=item $device = $device->parent_device_ext 741=item $device = $device->parent_device_ext
632 742
633Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARENT_DEVICE_EXT> and returns the result(s). 743Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARENT_DEVICE_EXT> and returns the result.
634 744
635=item @device_partition_property_exts = $device->partition_types_ext 745=item @device_partition_property_exts = $device->partition_types_ext
636 746
637Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARTITION_TYPES_EXT> and returns the result(s). 747Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARTITION_TYPES_EXT> and returns the result.
638 748
639=item @device_partition_property_exts = $device->affinity_domains_ext 749=item @device_partition_property_exts = $device->affinity_domains_ext
640 750
641Calls C<clGetDeviceInfo> with C<CL_DEVICE_AFFINITY_DOMAINS_EXT> and returns the result(s). 751Calls C<clGetDeviceInfo> with C<CL_DEVICE_AFFINITY_DOMAINS_EXT> and returns the result.
642 752
643=item $uint = $device->reference_count_ext 753=item $uint = $device->reference_count_ext
644 754
645Calls C<clGetDeviceInfo> with C<CL_DEVICE_REFERENCE_COUNT_EXT > and returns the result(s). 755Calls C<clGetDeviceInfo> with C<CL_DEVICE_REFERENCE_COUNT_EXT > and returns the result.
646 756
647=item @device_partition_property_exts = $device->partition_style_ext 757=item @device_partition_property_exts = $device->partition_style_ext
648 758
649Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARTITION_STYLE_EXT> and returns the result(s). 759Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARTITION_STYLE_EXT> and returns the result.
650 760
651=for gengetinfo end device 761=for gengetinfo end device
652 762
653=back 763=back
654 764
668 778
669L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateUserEvent.html> 779L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateUserEvent.html>
670 780
671=item $buf = $ctx->buffer ($flags, $len) 781=item $buf = $ctx->buffer ($flags, $len)
672 782
673Creates a new OpenCL::Buffer object with the given flags and octet-size. 783Creates a new OpenCL::Buffer (actually OpenCL::BufferObj) object with the
784given flags and octet-size.
674 785
675L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateBuffer.html> 786L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateBuffer.html>
676 787
677=item $buf = $ctx->buffer_sv ($flags, $data) 788=item $buf = $ctx->buffer_sv ($flags, $data)
678 789
679Creates a new OpenCL::Buffer object and initialise it with the given data values. 790Creates a new OpenCL::Buffer (actually OpenCL::BufferObj) object and
791initialise it with the given data values.
680 792
681=item $img = $ctx->image2d ($flags, $channel_order, $channel_type, $width, $height, $row_pitch = 0, $data = undef) 793=item $img = $ctx->image2d ($flags, $channel_order, $channel_type, $width, $height, $row_pitch = 0, $data = undef)
682 794
683Creates a new OpenCL::Image2D object and optionally initialises it with the given data values. 795Creates a new OpenCL::Image2D object and optionally initialises it with
796the given data values.
684 797
685L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateImage2D.html> 798L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateImage2D.html>
686 799
687=item $img = $ctx->image3d ($flags, $channel_order, $channel_type, $width, $height, $depth, $row_pitch = 0, $slice_pitch = 0, $data = undef) 800=item $img = $ctx->image3d ($flags, $channel_order, $channel_type, $width, $height, $depth, $row_pitch = 0, $slice_pitch = 0, $data = undef)
688 801
689Creates a new OpenCL::Image3D object and optionally initialises it with the given data values. 802Creates a new OpenCL::Image3D object and optionally initialises it with
803the given data values.
690 804
691L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateImage3D.html> 805L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateImage3D.html>
806
807=item $buffer = $ctx->gl_buffer ($flags, $bufobj)
808
809Creates a new OpenCL::Buffer (actually OpenCL::BufferObj) object that refers to the given
810OpenGL buffer object.
811
812http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLBuffer.html
813
814=item $ctx->gl_texture2d ($flags, $target, $miplevel, $texture)
815
816Creates a new OpenCL::Image2D object that refers to the given OpenGL
8172D texture object.
818
819http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLTexture2D.html
820
821=item $ctx->gl_texture3d ($flags, $target, $miplevel, $texture)
822
823Creates a new OpenCL::Image3D object that refers to the given OpenGL
8243D texture object.
825
826http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLTexture3D.html
827
828=item $ctx->gl_renderbuffer ($flags, $renderbuffer)
829
830Creates a new OpenCL::Image2D object that refers to the given OpenGL
831render buffer.
832
833http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLRenderbuffer.html
692 834
693=item @formats = $ctx->supported_image_formats ($flags, $image_type) 835=item @formats = $ctx->supported_image_formats ($flags, $image_type)
694 836
695Returns a list of matching image formats - each format is an arrayref with 837Returns a list of matching image formats - each format is an arrayref with
696two values, $channel_order and $channel_type, in it. 838two values, $channel_order and $channel_type, in it.
717 859
718=for gengetinfo begin context 860=for gengetinfo begin context
719 861
720=item $uint = $context->reference_count 862=item $uint = $context->reference_count
721 863
722Calls C<clGetContextInfo> with C<CL_CONTEXT_REFERENCE_COUNT> and returns the result(s). 864Calls C<clGetContextInfo> with C<CL_CONTEXT_REFERENCE_COUNT> and returns the result.
723 865
724=item @devices = $context->devices 866=item @devices = $context->devices
725 867
726Calls C<clGetContextInfo> with C<CL_CONTEXT_DEVICES> and returns the result(s). 868Calls C<clGetContextInfo> with C<CL_CONTEXT_DEVICES> and returns the result.
727 869
728=item @property_ints = $context->properties 870=item @property_ints = $context->properties
729 871
730Calls C<clGetContextInfo> with C<CL_CONTEXT_PROPERTIES> and returns the result(s). 872Calls C<clGetContextInfo> with C<CL_CONTEXT_PROPERTIES> and returns the result.
731 873
732=item $uint = $context->num_devices 874=item $uint = $context->num_devices
733 875
734Calls C<clGetContextInfo> with C<CL_CONTEXT_NUM_DEVICES> and returns the result(s). 876Calls C<clGetContextInfo> with C<CL_CONTEXT_NUM_DEVICES> and returns the result.
735 877
736=for gengetinfo end context 878=for gengetinfo end context
737 879
738=back 880=back
739 881
771 913
772=item $ev = $queue->enqueue_copy_buffer ($src, $dst, $src_offset, $dst_offset, $len, $wait_events...) 914=item $ev = $queue->enqueue_copy_buffer ($src, $dst, $src_offset, $dst_offset, $len, $wait_events...)
773 915
774L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBuffer.html> 916L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBuffer.html>
775 917
918=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...)
919
920http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueReadBufferRect.html
921
922=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...)
923
924http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueWriteBufferRect.html
925
776=item $ev = $queue->enqueue_read_image ($src, $blocking, $x, $y, $z, $width, $height, $depth, $row_pitch, $slice_pitch, $data, $wait_events...) 926=item $ev = $queue->enqueue_read_image ($src, $blocking, $x, $y, $z, $width, $height, $depth, $row_pitch, $slice_pitch, $data, $wait_events...)
777 927
928L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBufferRect.html>
929
930=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...)
931
778L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueReadImage.html> 932L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueReadImage.html>
779 933
780=item $ev = $queue->enqueue_write_image ($src, $blocking, $x, $y, $z, $width, $height, $depth, $row_pitch, $slice_pitch, $data, $wait_events...) 934=item $ev = $queue->enqueue_write_image ($src, $blocking, $x, $y, $z, $width, $height, $depth, $row_pitch, $slice_pitch, $data, $wait_events...)
781 935
782L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueWriteImage.html> 936L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueWriteImage.html>
783 937
938=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...)
939
940L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyImage.html>
941
942=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...)
943
944L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyImageToBuffer.html>
945
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...) 946=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 947
786Yeah. 948Yeah.
787 949
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>. 950L<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 951
802=item $ev = $queue->enqueue_task ($kernel, $wait_events...) 952=item $ev = $queue->enqueue_task ($kernel, $wait_events...)
803 953
804L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueTask.html> 954L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueTask.html>
805 955
819reference to an array of local work sizes, with the same number of 969reference to an array of local work sizes, with the same number of
820elements as @$global_work_size. 970elements as @$global_work_size.
821 971
822L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueNDRangeKernel.html> 972L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueNDRangeKernel.html>
823 973
824=item $ev = $queue->enqueue_marker 974=item $ev = $queue->enqueue_marker ($wait_events...)
825 975
826L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueMarker.html> 976L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueMarker.html>
827 977
978=item $ev = $queue->enqueue_acquire_gl_objects ([object, ...], $wait_events...)
979
980Enqueues a list (an array-ref of OpenCL::Memory objects) to be acquired
981for subsequent OpenCL usage.
982
983L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueAcquireGLObjects.html>
984
985=item $ev = $queue->enqueue_release_gl_objects ([object, ...], $wait_events...)
986
987Enqueues a list (an array-ref of OpenCL::Memory objects) to be released
988for subsequent OpenGL usage.
989
990L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueReleaseGLObjects.html>
991
828=item $ev = $queue->enqueue_wait_for_events ($wait_events...) 992=item $ev = $queue->enqueue_wait_for_events ($wait_events...)
829 993
830L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueWaitForEvents.html> 994L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueWaitForEvents.html>
831 995
832=item $queue->enqueue_barrier 996=item $queue->enqueue_barrier
849 1013
850=for gengetinfo begin command_queue 1014=for gengetinfo begin command_queue
851 1015
852=item $ctx = $command_queue->context 1016=item $ctx = $command_queue->context
853 1017
854Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_CONTEXT> and returns the result(s). 1018Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_CONTEXT> and returns the result.
855 1019
856=item $device = $command_queue->device 1020=item $device = $command_queue->device
857 1021
858Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_DEVICE> and returns the result(s). 1022Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_DEVICE> and returns the result.
859 1023
860=item $uint = $command_queue->reference_count 1024=item $uint = $command_queue->reference_count
861 1025
862Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_REFERENCE_COUNT> and returns the result(s). 1026Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_REFERENCE_COUNT> and returns the result.
863 1027
864=item $command_queue_properties = $command_queue->properties 1028=item $command_queue_properties = $command_queue->properties
865 1029
866Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_PROPERTIES> and returns the result(s). 1030Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_PROPERTIES> and returns the result.
867 1031
868=for gengetinfo end command_queue 1032=for gengetinfo end command_queue
869 1033
870=back 1034=back
871 1035
884 1048
885=for gengetinfo begin mem 1049=for gengetinfo begin mem
886 1050
887=item $mem_object_type = $mem->type 1051=item $mem_object_type = $mem->type
888 1052
889Calls C<clGetMemObjectInfo> with C<CL_MEM_TYPE> and returns the result(s). 1053Calls C<clGetMemObjectInfo> with C<CL_MEM_TYPE> and returns the result.
890 1054
891=item $mem_flags = $mem->flags 1055=item $mem_flags = $mem->flags
892 1056
893Calls C<clGetMemObjectInfo> with C<CL_MEM_FLAGS> and returns the result(s). 1057Calls C<clGetMemObjectInfo> with C<CL_MEM_FLAGS> and returns the result.
894 1058
895=item $int = $mem->size 1059=item $int = $mem->size
896 1060
897Calls C<clGetMemObjectInfo> with C<CL_MEM_SIZE> and returns the result(s). 1061Calls C<clGetMemObjectInfo> with C<CL_MEM_SIZE> and returns the result.
898 1062
899=item $ptr_value = $mem->host_ptr 1063=item $ptr_value = $mem->host_ptr
900 1064
901Calls C<clGetMemObjectInfo> with C<CL_MEM_HOST_PTR> and returns the result(s). 1065Calls C<clGetMemObjectInfo> with C<CL_MEM_HOST_PTR> and returns the result.
902 1066
903=item $uint = $mem->map_count 1067=item $uint = $mem->map_count
904 1068
905Calls C<clGetMemObjectInfo> with C<CL_MEM_MAP_COUNT> and returns the result(s). 1069Calls C<clGetMemObjectInfo> with C<CL_MEM_MAP_COUNT> and returns the result.
906 1070
907=item $uint = $mem->reference_count 1071=item $uint = $mem->reference_count
908 1072
909Calls C<clGetMemObjectInfo> with C<CL_MEM_REFERENCE_COUNT> and returns the result(s). 1073Calls C<clGetMemObjectInfo> with C<CL_MEM_REFERENCE_COUNT> and returns the result.
910 1074
911=item $ctx = $mem->context 1075=item $ctx = $mem->context
912 1076
913Calls C<clGetMemObjectInfo> with C<CL_MEM_CONTEXT> and returns the result(s). 1077Calls C<clGetMemObjectInfo> with C<CL_MEM_CONTEXT> and returns the result.
914 1078
915=item $mem = $mem->associated_memobject 1079=item $mem = $mem->associated_memobject
916 1080
917Calls C<clGetMemObjectInfo> with C<CL_MEM_ASSOCIATED_MEMOBJECT> and returns the result(s). 1081Calls C<clGetMemObjectInfo> with C<CL_MEM_ASSOCIATED_MEMOBJECT> and returns the result.
918 1082
919=item $int = $mem->offset 1083=item $int = $mem->offset
920 1084
921Calls C<clGetMemObjectInfo> with C<CL_MEM_OFFSET> and returns the result(s). 1085Calls C<clGetMemObjectInfo> with C<CL_MEM_OFFSET> and returns the result.
922 1086
923=for gengetinfo end mem 1087=for gengetinfo end mem
1088
1089=item ($type, $name) = $mem->gl_object_info
1090
1091Returns the OpenGL object type (e.g. OpenCL::GL_OBJECT_TEXTURE2D) and the
1092object "name" (e.g. the texture name) used to create this memory object.
1093
1094L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetGLObjectInfo.html>
1095
1096=back
1097
1098=head2 THE OpenCL::Buffer CLASS
1099
1100This is a subclass of OpenCL::Memory, and the superclass of
1101OpenCL::BufferObj. Its purpose is simply to distinguish between buffers
1102and sub-buffers.
1103
1104=head2 THE OpenCL::BufferObj CLASS
1105
1106This is a subclass of OpenCL::Buffer and thus OpenCL::Memory. It exists
1107because one cna create sub buffers of OpenLC::BufferObj objects, but not
1108sub buffers from these sub buffers.
1109
1110=over 4
1111
1112=item $subbuf = $buf_obj->sub_buffer_region ($flags, $origin, $size)
1113
1114Creates an OpenCL::Buffer objects from this buffer and returns it. The
1115C<buffer_create_type> is assumed to be C<CL_BUFFER_CREATE_TYPE_REGION>.
1116
1117L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateSubBuffer.html>
924 1118
925=back 1119=back
926 1120
927=head2 THE OpenCL::Image CLASS 1121=head2 THE OpenCL::Image CLASS
928 1122
941 1135
942=for gengetinfo begin image 1136=for gengetinfo begin image
943 1137
944=item $int = $image->element_size 1138=item $int = $image->element_size
945 1139
946Calls C<clGetImageInfo> with C<CL_IMAGE_ELEMENT_SIZE> and returns the result(s). 1140Calls C<clGetImageInfo> with C<CL_IMAGE_ELEMENT_SIZE> and returns the result.
947 1141
948=item $int = $image->row_pitch 1142=item $int = $image->row_pitch
949 1143
950Calls C<clGetImageInfo> with C<CL_IMAGE_ROW_PITCH> and returns the result(s). 1144Calls C<clGetImageInfo> with C<CL_IMAGE_ROW_PITCH> and returns the result.
951 1145
952=item $int = $image->slice_pitch 1146=item $int = $image->slice_pitch
953 1147
954Calls C<clGetImageInfo> with C<CL_IMAGE_SLICE_PITCH> and returns the result(s). 1148Calls C<clGetImageInfo> with C<CL_IMAGE_SLICE_PITCH> and returns the result.
955 1149
956=item $int = $image->width 1150=item $int = $image->width
957 1151
958Calls C<clGetImageInfo> with C<CL_IMAGE_WIDTH> and returns the result(s). 1152Calls C<clGetImageInfo> with C<CL_IMAGE_WIDTH> and returns the result.
959 1153
960=item $int = $image->height 1154=item $int = $image->height
961 1155
962Calls C<clGetImageInfo> with C<CL_IMAGE_HEIGHT> and returns the result(s). 1156Calls C<clGetImageInfo> with C<CL_IMAGE_HEIGHT> and returns the result.
963 1157
964=item $int = $image->depth 1158=item $int = $image->depth
965 1159
966Calls C<clGetImageInfo> with C<CL_IMAGE_DEPTH> and returns the result(s). 1160Calls C<clGetImageInfo> with C<CL_IMAGE_DEPTH> and returns the result.
967 1161
968=for gengetinfo end image 1162=for gengetinfo end image
969 1163
1164=for gengetinfo begin gl_texture
1165
1166=item $GLenum = $gl_texture->target
1167
1168Calls C<clGetGLTextureInfo> with C<CL_GL_TEXTURE_TARGET> and returns the result.
1169
1170=item $GLint = $gl_texture->gl_mipmap_level
1171
1172Calls C<clGetGLTextureInfo> with C<CL_GL_MIPMAP_LEVEL> and returns the result.
1173
1174=for gengetinfo end gl_texture
1175
970=back 1176=back
971 1177
972=head2 THE OpenCL::Sampler CLASS 1178=head2 THE OpenCL::Sampler CLASS
973 1179
974=over 4 1180=over 4
981 1187
982=for gengetinfo begin sampler 1188=for gengetinfo begin sampler
983 1189
984=item $uint = $sampler->reference_count 1190=item $uint = $sampler->reference_count
985 1191
986Calls C<clGetSamplerInfo> with C<CL_SAMPLER_REFERENCE_COUNT> and returns the result(s). 1192Calls C<clGetSamplerInfo> with C<CL_SAMPLER_REFERENCE_COUNT> and returns the result.
987 1193
988=item $ctx = $sampler->context 1194=item $ctx = $sampler->context
989 1195
990Calls C<clGetSamplerInfo> with C<CL_SAMPLER_CONTEXT> and returns the result(s). 1196Calls C<clGetSamplerInfo> with C<CL_SAMPLER_CONTEXT> and returns the result.
991 1197
992=item $addressing_mode = $sampler->normalized_coords 1198=item $addressing_mode = $sampler->normalized_coords
993 1199
994Calls C<clGetSamplerInfo> with C<CL_SAMPLER_NORMALIZED_COORDS> and returns the result(s). 1200Calls C<clGetSamplerInfo> with C<CL_SAMPLER_NORMALIZED_COORDS> and returns the result.
995 1201
996=item $filter_mode = $sampler->addressing_mode 1202=item $filter_mode = $sampler->addressing_mode
997 1203
998Calls C<clGetSamplerInfo> with C<CL_SAMPLER_ADDRESSING_MODE> and returns the result(s). 1204Calls C<clGetSamplerInfo> with C<CL_SAMPLER_ADDRESSING_MODE> and returns the result.
999 1205
1000=item $boolean = $sampler->filter_mode 1206=item $boolean = $sampler->filter_mode
1001 1207
1002Calls C<clGetSamplerInfo> with C<CL_SAMPLER_FILTER_MODE> and returns the result(s). 1208Calls C<clGetSamplerInfo> with C<CL_SAMPLER_FILTER_MODE> and returns the result.
1003 1209
1004=for gengetinfo end sampler 1210=for gengetinfo end sampler
1005 1211
1006=back 1212=back
1007 1213
1031 1237
1032=for gengetinfo begin program_build 1238=for gengetinfo begin program_build
1033 1239
1034=item $build_status = $program->build_status ($device) 1240=item $build_status = $program->build_status ($device)
1035 1241
1036Calls C<clGetProgramBuildInfo> with C<CL_PROGRAM_BUILD_STATUS> and returns the result(s). 1242Calls C<clGetProgramBuildInfo> with C<CL_PROGRAM_BUILD_STATUS> and returns the result.
1037 1243
1038=item $string = $program->build_options ($device) 1244=item $string = $program->build_options ($device)
1039 1245
1040Calls C<clGetProgramBuildInfo> with C<CL_PROGRAM_BUILD_OPTIONS> and returns the result(s). 1246Calls C<clGetProgramBuildInfo> with C<CL_PROGRAM_BUILD_OPTIONS> and returns the result.
1041 1247
1042=item $string = $program->build_log ($device) 1248=item $string = $program->build_log ($device)
1043 1249
1044Calls C<clGetProgramBuildInfo> with C<CL_PROGRAM_BUILD_LOG> and returns the result(s). 1250Calls C<clGetProgramBuildInfo> with C<CL_PROGRAM_BUILD_LOG> and returns the result.
1045 1251
1046=for gengetinfo end program_build 1252=for gengetinfo end program_build
1047 1253
1048=item $packed_value = $program->info ($name) 1254=item $packed_value = $program->info ($name)
1049 1255
1053 1259
1054=for gengetinfo begin program 1260=for gengetinfo begin program
1055 1261
1056=item $uint = $program->reference_count 1262=item $uint = $program->reference_count
1057 1263
1058Calls C<clGetProgramInfo> with C<CL_PROGRAM_REFERENCE_COUNT> and returns the result(s). 1264Calls C<clGetProgramInfo> with C<CL_PROGRAM_REFERENCE_COUNT> and returns the result.
1059 1265
1060=item $ctx = $program->context 1266=item $ctx = $program->context
1061 1267
1062Calls C<clGetProgramInfo> with C<CL_PROGRAM_CONTEXT> and returns the result(s). 1268Calls C<clGetProgramInfo> with C<CL_PROGRAM_CONTEXT> and returns the result.
1063 1269
1064=item $uint = $program->num_devices 1270=item $uint = $program->num_devices
1065 1271
1066Calls C<clGetProgramInfo> with C<CL_PROGRAM_NUM_DEVICES> and returns the result(s). 1272Calls C<clGetProgramInfo> with C<CL_PROGRAM_NUM_DEVICES> and returns the result.
1067 1273
1068=item @devices = $program->devices 1274=item @devices = $program->devices
1069 1275
1070Calls C<clGetProgramInfo> with C<CL_PROGRAM_DEVICES> and returns the result(s). 1276Calls C<clGetProgramInfo> with C<CL_PROGRAM_DEVICES> and returns the result.
1071 1277
1072=item $string = $program->source 1278=item $string = $program->source
1073 1279
1074Calls C<clGetProgramInfo> with C<CL_PROGRAM_SOURCE> and returns the result(s). 1280Calls C<clGetProgramInfo> with C<CL_PROGRAM_SOURCE> and returns the result.
1075 1281
1076=item @ints = $program->binary_sizes 1282=item @ints = $program->binary_sizes
1077 1283
1078Calls C<clGetProgramInfo> with C<CL_PROGRAM_BINARY_SIZES> and returns the result(s). 1284Calls C<clGetProgramInfo> with C<CL_PROGRAM_BINARY_SIZES> and returns the result.
1079 1285
1080=for gengetinfo end program 1286=for gengetinfo end program
1081 1287
1082=item @blobs = $program->binaries 1288=item @blobs = $program->binaries
1083 1289
1104 1310
1105=for gengetinfo begin kernel 1311=for gengetinfo begin kernel
1106 1312
1107=item $string = $kernel->function_name 1313=item $string = $kernel->function_name
1108 1314
1109Calls C<clGetKernelInfo> with C<CL_KERNEL_FUNCTION_NAME> and returns the result(s). 1315Calls C<clGetKernelInfo> with C<CL_KERNEL_FUNCTION_NAME> and returns the result.
1110 1316
1111=item $uint = $kernel->num_args 1317=item $uint = $kernel->num_args
1112 1318
1113Calls C<clGetKernelInfo> with C<CL_KERNEL_NUM_ARGS> and returns the result(s). 1319Calls C<clGetKernelInfo> with C<CL_KERNEL_NUM_ARGS> and returns the result.
1114 1320
1115=item $uint = $kernel->reference_count 1321=item $uint = $kernel->reference_count
1116 1322
1117Calls C<clGetKernelInfo> with C<CL_KERNEL_REFERENCE_COUNT> and returns the result(s). 1323Calls C<clGetKernelInfo> with C<CL_KERNEL_REFERENCE_COUNT> and returns the result.
1118 1324
1119=item $ctx = $kernel->context 1325=item $ctx = $kernel->context
1120 1326
1121Calls C<clGetKernelInfo> with C<CL_KERNEL_CONTEXT> and returns the result(s). 1327Calls C<clGetKernelInfo> with C<CL_KERNEL_CONTEXT> and returns the result.
1122 1328
1123=item $program = $kernel->program 1329=item $program = $kernel->program
1124 1330
1125Calls C<clGetKernelInfo> with C<CL_KERNEL_PROGRAM> and returns the result(s). 1331Calls C<clGetKernelInfo> with C<CL_KERNEL_PROGRAM> and returns the result.
1126 1332
1127=for gengetinfo end kernel 1333=for gengetinfo end kernel
1128 1334
1129=item $packed_value = $kernel->work_group_info ($device, $name) 1335=item $packed_value = $kernel->work_group_info ($device, $name)
1130 1336
1137 1343
1138=for gengetinfo begin kernel_work_group 1344=for gengetinfo begin kernel_work_group
1139 1345
1140=item $int = $kernel->work_group_size ($device) 1346=item $int = $kernel->work_group_size ($device)
1141 1347
1142Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_WORK_GROUP_SIZE> and returns the result(s). 1348Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_WORK_GROUP_SIZE> and returns the result.
1143 1349
1144=item @ints = $kernel->compile_work_group_size ($device) 1350=item @ints = $kernel->compile_work_group_size ($device)
1145 1351
1146Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_COMPILE_WORK_GROUP_SIZE> and returns the result(s). 1352Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_COMPILE_WORK_GROUP_SIZE> and returns the result.
1147 1353
1148=item $ulong = $kernel->local_mem_size ($device) 1354=item $ulong = $kernel->local_mem_size ($device)
1149 1355
1150Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_LOCAL_MEM_SIZE> and returns the result(s). 1356Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_LOCAL_MEM_SIZE> and returns the result.
1151 1357
1152=item $int = $kernel->preferred_work_group_size_multiple ($device) 1358=item $int = $kernel->preferred_work_group_size_multiple ($device)
1153 1359
1154Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE> and returns the result(s). 1360Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE> and returns the result.
1155 1361
1156=item $ulong = $kernel->private_mem_size ($device) 1362=item $ulong = $kernel->private_mem_size ($device)
1157 1363
1158Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_PRIVATE_MEM_SIZE> and returns the result(s). 1364Calls C<clGetKernelWorkGroupInfo> with C<CL_KERNEL_PRIVATE_MEM_SIZE> and returns the result.
1159 1365
1160=for gengetinfo end kernel_work_group 1366=for gengetinfo end kernel_work_group
1161 1367
1162=item $kernel->set_TYPE ($index, $value) 1368=item $kernel->set_TYPE ($index, $value)
1163 1369
1164This is a family of methods to set the kernel argument with the number C<$index> to the give C<$value>. 1370This is a family of methods to set the kernel argument with the number C<$index> to the give C<$value>.
1165 1371
1166TYPE is one of C<char>, C<uchar>, C<short>, C<ushort>, C<int>, C<uint>, 1372TYPE is one of C<char>, C<uchar>, C<short>, C<ushort>, C<int>, C<uint>,
1167C<long>, C<ulong>, C<half>, C<float>, C<double>, C<memory>, C<buffer>, 1373C<long>, C<ulong>, C<half>, C<float>, C<double>, C<memory>, C<buffer>,
1168C<image2d>, C<image3d>, C<sampler> or C<event>. 1374C<image2d>, C<image3d>, C<sampler>, C<local> or C<event>.
1169 1375
1170Chars and integers (including the half type) are specified as integers, 1376Chars and integers (including the half type) are specified as integers,
1171float and double as floating point values, memory/buffer/image2d/image3d 1377float and double as floating point values, memory/buffer/image2d/image3d
1172must be an object of that type or C<undef>, and sampler and event must be 1378must be an object of that type or C<undef>, local-memory arguments are
1173objects of that type. 1379set by specifying the size, and sampler and event must be objects of that
1380type.
1174 1381
1175L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clSetKernelArg.html> 1382L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clSetKernelArg.html>
1176 1383
1177=back 1384=back
1178 1385
1197 1404
1198=for gengetinfo begin event 1405=for gengetinfo begin event
1199 1406
1200=item $queue = $event->command_queue 1407=item $queue = $event->command_queue
1201 1408
1202Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_QUEUE> and returns the result(s). 1409Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_QUEUE> and returns the result.
1203 1410
1204=item $command_type = $event->command_type 1411=item $command_type = $event->command_type
1205 1412
1206Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_TYPE> and returns the result(s). 1413Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_TYPE> and returns the result.
1207 1414
1208=item $uint = $event->reference_count 1415=item $uint = $event->reference_count
1209 1416
1210Calls C<clGetEventInfo> with C<CL_EVENT_REFERENCE_COUNT> and returns the result(s). 1417Calls C<clGetEventInfo> with C<CL_EVENT_REFERENCE_COUNT> and returns the result.
1211 1418
1212=item $uint = $event->command_execution_status 1419=item $uint = $event->command_execution_status
1213 1420
1214Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_EXECUTION_STATUS> and returns the result(s). 1421Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_EXECUTION_STATUS> and returns the result.
1215 1422
1216=item $ctx = $event->context 1423=item $ctx = $event->context
1217 1424
1218Calls C<clGetEventInfo> with C<CL_EVENT_CONTEXT> and returns the result(s). 1425Calls C<clGetEventInfo> with C<CL_EVENT_CONTEXT> and returns the result.
1219 1426
1220=for gengetinfo end event 1427=for gengetinfo end event
1221 1428
1222=item $packed_value = $ev->profiling_info ($name) 1429=item $packed_value = $ev->profiling_info ($name)
1223 1430
1230 1437
1231=for gengetinfo begin profiling 1438=for gengetinfo begin profiling
1232 1439
1233=item $ulong = $event->profiling_command_queued 1440=item $ulong = $event->profiling_command_queued
1234 1441
1235Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_QUEUED> and returns the result(s). 1442Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_QUEUED> and returns the result.
1236 1443
1237=item $ulong = $event->profiling_command_submit 1444=item $ulong = $event->profiling_command_submit
1238 1445
1239Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_SUBMIT> and returns the result(s). 1446Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_SUBMIT> and returns the result.
1240 1447
1241=item $ulong = $event->profiling_command_start 1448=item $ulong = $event->profiling_command_start
1242 1449
1243Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_START> and returns the result(s). 1450Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_START> and returns the result.
1244 1451
1245=item $ulong = $event->profiling_command_end 1452=item $ulong = $event->profiling_command_end
1246 1453
1247Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_END> and returns the result(s). 1454Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_END> and returns the result.
1248 1455
1249=for gengetinfo end profiling 1456=for gengetinfo end profiling
1250 1457
1251=back 1458=back
1252 1459
1267package OpenCL; 1474package OpenCL;
1268 1475
1269use common::sense; 1476use common::sense;
1270 1477
1271BEGIN { 1478BEGIN {
1272 our $VERSION = '0.55'; 1479 our $VERSION = '0.95';
1273 1480
1274 require XSLoader; 1481 require XSLoader;
1275 XSLoader::load (__PACKAGE__, $VERSION); 1482 XSLoader::load (__PACKAGE__, $VERSION);
1276 1483
1277 @OpenCL::Buffer::ISA = 1484 @OpenCL::Buffer::ISA =
1278 @OpenCL::Image::ISA = OpenCL::Memory::; 1485 @OpenCL::Image::ISA = OpenCL::Memory::;
1279 1486
1487 @OpenCL::BufferObj::ISA = OpenCL::Buffer::;
1488
1280 @OpenCL::Image2D::ISA = 1489 @OpenCL::Image2D::ISA =
1281 @OpenCL::Image3D::ISA = OpenCL::Image::; 1490 @OpenCL::Image3D::ISA = OpenCL::Image::;
1282 1491
1283 @OpenCL::UserEvent::ISA = OpenCL::Event::; 1492 @OpenCL::UserEvent::ISA = OpenCL::Event::;
1284} 1493}
1285 1494
12861; 14951;
1287 1496
1288=head1 AUTHOR 1497=head1 AUTHOR

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines