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

Comparing OpenCL/OpenCL.pm (file contents):
Revision 1.21 by root, Sun Nov 20 10:21:27 2011 UTC vs.
Revision 1.40 by root, Thu Apr 19 22:33:27 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
322 432
323Returns a list of matching OpenCL::Device objects. 433Returns a list of matching OpenCL::Device objects.
324 434
325=item $ctx = $platform->context_from_type ($properties, $type = OpenCL::DEVICE_TYPE_DEFAULT, $notify = undef) 435=item $ctx = $platform->context_from_type ($properties, $type = OpenCL::DEVICE_TYPE_DEFAULT, $notify = undef)
326 436
327Tries to create a context. Never worked for me, and you need devices explitly 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>
337 447
338=item $packed_value = $platform->info ($name) 448=item $packed_value = $platform->info ($name)
339 449
340Calls C<clGetPlatformInfo> and returns the packed, raw value - for 450Calls C<clGetPlatformInfo> and returns the packed, raw value - for
341strings, this will be the string, for other values you probably need to 451strings, this will be the string (possibly including terminating \0), for
342use the correct C<unpack>. 452other values you probably need to use the correct C<unpack>.
343 453
344It's best to avoid this method and use one of the predefined C<get_*> 454It's best to avoid this method and use one of the following convenience
345methods. 455wrappers.
346 456
347L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetPlatformInfo.html> 457L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetPlatformInfo.html>
348 458
349=for gengetinfo begin platform 459=for gengetinfo begin platform
350 460
351
352=item $string = $platform->profile 461=item $string = $platform->profile
353 462
354Calls C<clGetPlatformInfo> with C<CL_PLATFORM_PROFILE> and returns the result(s). 463Calls C<clGetPlatformInfo> with C<CL_PLATFORM_PROFILE> and returns the result.
355 464
356=item $string = $platform->version 465=item $string = $platform->version
357 466
358Calls C<clGetPlatformInfo> with C<CL_PLATFORM_VERSION> and returns the result(s). 467Calls C<clGetPlatformInfo> with C<CL_PLATFORM_VERSION> and returns the result.
359 468
360=item $string = $platform->name 469=item $string = $platform->name
361 470
362Calls C<clGetPlatformInfo> with C<CL_PLATFORM_NAME> and returns the result(s). 471Calls C<clGetPlatformInfo> with C<CL_PLATFORM_NAME> and returns the result.
363 472
364=item $string = $platform->vendor 473=item $string = $platform->vendor
365 474
366Calls C<clGetPlatformInfo> with C<CL_PLATFORM_VENDOR> and returns the result(s). 475Calls C<clGetPlatformInfo> with C<CL_PLATFORM_VENDOR> and returns the result.
367 476
368=item $string = $platform->extensions 477=item $string = $platform->extensions
369 478
370Calls C<clGetPlatformInfo> with C<CL_PLATFORM_EXTENSIONS> and returns the result(s). 479Calls C<clGetPlatformInfo> with C<CL_PLATFORM_EXTENSIONS> and returns the result.
371 480
372=for gengetinfo end platform 481=for gengetinfo end platform
373 482
374=back 483=back
375 484
383 492
384L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetDeviceInfo.html> 493L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetDeviceInfo.html>
385 494
386=for gengetinfo begin device 495=for gengetinfo begin device
387 496
388
389=item $device_type = $device->type 497=item $device_type = $device->type
390 498
391Calls C<clGetDeviceInfo> with C<CL_DEVICE_TYPE> and returns the result(s). 499Calls C<clGetDeviceInfo> with C<CL_DEVICE_TYPE> and returns the result.
392 500
393=item $uint = $device->vendor_id 501=item $uint = $device->vendor_id
394 502
395Calls 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.
396 504
397=item $uint = $device->max_compute_units 505=item $uint = $device->max_compute_units
398 506
399Calls 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.
400 508
401=item $uint = $device->max_work_item_dimensions 509=item $uint = $device->max_work_item_dimensions
402 510
403Calls 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.
404 512
405=item $int = $device->max_work_group_size 513=item $int = $device->max_work_group_size
406 514
407Calls 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.
408 516
409=item @ints = $device->max_work_item_sizes 517=item @ints = $device->max_work_item_sizes
410 518
411Calls 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.
412 520
413=item $uint = $device->preferred_vector_width_char 521=item $uint = $device->preferred_vector_width_char
414 522
415Calls 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.
416 524
417=item $uint = $device->preferred_vector_width_short 525=item $uint = $device->preferred_vector_width_short
418 526
419Calls 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.
420 528
421=item $uint = $device->preferred_vector_width_int 529=item $uint = $device->preferred_vector_width_int
422 530
423Calls 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.
424 532
425=item $uint = $device->preferred_vector_width_long 533=item $uint = $device->preferred_vector_width_long
426 534
427Calls 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.
428 536
429=item $uint = $device->preferred_vector_width_float 537=item $uint = $device->preferred_vector_width_float
430 538
431Calls 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.
432 540
433=item $uint = $device->preferred_vector_width_double 541=item $uint = $device->preferred_vector_width_double
434 542
435Calls 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.
436 544
437=item $uint = $device->max_clock_frequency 545=item $uint = $device->max_clock_frequency
438 546
439Calls 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.
440 548
441=item $bitfield = $device->address_bits 549=item $bitfield = $device->address_bits
442 550
443Calls 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.
444 552
445=item $uint = $device->max_read_image_args 553=item $uint = $device->max_read_image_args
446 554
447Calls 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.
448 556
449=item $uint = $device->max_write_image_args 557=item $uint = $device->max_write_image_args
450 558
451Calls 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.
452 560
453=item $ulong = $device->max_mem_alloc_size 561=item $ulong = $device->max_mem_alloc_size
454 562
455Calls 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.
456 564
457=item $int = $device->image2d_max_width 565=item $int = $device->image2d_max_width
458 566
459Calls 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.
460 568
461=item $int = $device->image2d_max_height 569=item $int = $device->image2d_max_height
462 570
463Calls 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.
464 572
465=item $int = $device->image3d_max_width 573=item $int = $device->image3d_max_width
466 574
467Calls 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.
468 576
469=item $int = $device->image3d_max_height 577=item $int = $device->image3d_max_height
470 578
471Calls 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.
472 580
473=item $int = $device->image3d_max_depth 581=item $int = $device->image3d_max_depth
474 582
475Calls 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.
476 584
477=item $uint = $device->image_support 585=item $uint = $device->image_support
478 586
479Calls 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.
480 588
481=item $int = $device->max_parameter_size 589=item $int = $device->max_parameter_size
482 590
483Calls 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.
484 592
485=item $uint = $device->max_samplers 593=item $uint = $device->max_samplers
486 594
487Calls 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.
488 596
489=item $uint = $device->mem_base_addr_align 597=item $uint = $device->mem_base_addr_align
490 598
491Calls 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.
492 600
493=item $uint = $device->min_data_type_align_size 601=item $uint = $device->min_data_type_align_size
494 602
495Calls 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.
496 604
497=item $device_fp_config = $device->single_fp_config 605=item $device_fp_config = $device->single_fp_config
498 606
499Calls 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.
500 608
501=item $device_mem_cache_type = $device->global_mem_cache_type 609=item $device_mem_cache_type = $device->global_mem_cache_type
502 610
503Calls 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.
504 612
505=item $uint = $device->global_mem_cacheline_size 613=item $uint = $device->global_mem_cacheline_size
506 614
507Calls 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.
508 616
509=item $ulong = $device->global_mem_cache_size 617=item $ulong = $device->global_mem_cache_size
510 618
511Calls 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.
512 620
513=item $ulong = $device->global_mem_size 621=item $ulong = $device->global_mem_size
514 622
515Calls 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.
516 624
517=item $ulong = $device->max_constant_buffer_size 625=item $ulong = $device->max_constant_buffer_size
518 626
519Calls 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.
520 628
521=item $uint = $device->max_constant_args 629=item $uint = $device->max_constant_args
522 630
523Calls 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.
524 632
525=item $device_local_mem_type = $device->local_mem_type 633=item $device_local_mem_type = $device->local_mem_type
526 634
527Calls 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.
528 636
529=item $ulong = $device->local_mem_size 637=item $ulong = $device->local_mem_size
530 638
531Calls 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.
532 640
533=item $boolean = $device->error_correction_support 641=item $boolean = $device->error_correction_support
534 642
535Calls 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.
536 644
537=item $int = $device->profiling_timer_resolution 645=item $int = $device->profiling_timer_resolution
538 646
539Calls 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.
540 648
541=item $boolean = $device->endian_little 649=item $boolean = $device->endian_little
542 650
543Calls 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.
544 652
545=item $boolean = $device->available 653=item $boolean = $device->available
546 654
547Calls C<clGetDeviceInfo> with C<CL_DEVICE_AVAILABLE> and returns the result(s). 655Calls C<clGetDeviceInfo> with C<CL_DEVICE_AVAILABLE> and returns the result.
548 656
549=item $boolean = $device->compiler_available 657=item $boolean = $device->compiler_available
550 658
551Calls 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.
552 660
553=item $device_exec_capabilities = $device->execution_capabilities 661=item $device_exec_capabilities = $device->execution_capabilities
554 662
555Calls 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.
556 664
557=item $command_queue_properties = $device->properties 665=item $command_queue_properties = $device->properties
558 666
559Calls 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.
560 668
561=item $ = $device->platform 669=item $ = $device->platform
562 670
563Calls C<clGetDeviceInfo> with C<CL_DEVICE_PLATFORM> and returns the result(s). 671Calls C<clGetDeviceInfo> with C<CL_DEVICE_PLATFORM> and returns the result.
564 672
565=item $string = $device->name 673=item $string = $device->name
566 674
567Calls C<clGetDeviceInfo> with C<CL_DEVICE_NAME> and returns the result(s). 675Calls C<clGetDeviceInfo> with C<CL_DEVICE_NAME> and returns the result.
568 676
569=item $string = $device->vendor 677=item $string = $device->vendor
570 678
571Calls C<clGetDeviceInfo> with C<CL_DEVICE_VENDOR> and returns the result(s). 679Calls C<clGetDeviceInfo> with C<CL_DEVICE_VENDOR> and returns the result.
572 680
573=item $string = $device->driver_version 681=item $string = $device->driver_version
574 682
575Calls C<clGetDeviceInfo> with C<CL_DRIVER_VERSION> and returns the result(s). 683Calls C<clGetDeviceInfo> with C<CL_DRIVER_VERSION> and returns the result.
576 684
577=item $string = $device->profile 685=item $string = $device->profile
578 686
579Calls C<clGetDeviceInfo> with C<CL_DEVICE_PROFILE> and returns the result(s). 687Calls C<clGetDeviceInfo> with C<CL_DEVICE_PROFILE> and returns the result.
580 688
581=item $string = $device->version 689=item $string = $device->version
582 690
583Calls C<clGetDeviceInfo> with C<CL_DEVICE_VERSION> and returns the result(s). 691Calls C<clGetDeviceInfo> with C<CL_DEVICE_VERSION> and returns the result.
584 692
585=item $string = $device->extensions 693=item $string = $device->extensions
586 694
587Calls C<clGetDeviceInfo> with C<CL_DEVICE_EXTENSIONS> and returns the result(s). 695Calls C<clGetDeviceInfo> with C<CL_DEVICE_EXTENSIONS> and returns the result.
588 696
589=item $uint = $device->preferred_vector_width_half 697=item $uint = $device->preferred_vector_width_half
590 698
591Calls 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.
592 700
593=item $uint = $device->native_vector_width_char 701=item $uint = $device->native_vector_width_char
594 702
595Calls 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.
596 704
597=item $uint = $device->native_vector_width_short 705=item $uint = $device->native_vector_width_short
598 706
599Calls 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.
600 708
601=item $uint = $device->native_vector_width_int 709=item $uint = $device->native_vector_width_int
602 710
603Calls 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.
604 712
605=item $uint = $device->native_vector_width_long 713=item $uint = $device->native_vector_width_long
606 714
607Calls 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.
608 716
609=item $uint = $device->native_vector_width_float 717=item $uint = $device->native_vector_width_float
610 718
611Calls 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.
612 720
613=item $uint = $device->native_vector_width_double 721=item $uint = $device->native_vector_width_double
614 722
615Calls 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.
616 724
617=item $uint = $device->native_vector_width_half 725=item $uint = $device->native_vector_width_half
618 726
619Calls 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.
620 728
621=item $device_fp_config = $device->double_fp_config 729=item $device_fp_config = $device->double_fp_config
622 730
623Calls 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.
624 732
625=item $device_fp_config = $device->half_fp_config 733=item $device_fp_config = $device->half_fp_config
626 734
627Calls 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.
628 736
629=item $boolean = $device->host_unified_memory 737=item $boolean = $device->host_unified_memory
630 738
631Calls 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.
632 740
633=item $device = $device->parent_device_ext 741=item $device = $device->parent_device_ext
634 742
635Calls 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.
636 744
637=item @device_partition_property_exts = $device->partition_types_ext 745=item @device_partition_property_exts = $device->partition_types_ext
638 746
639Calls 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.
640 748
641=item @device_partition_property_exts = $device->affinity_domains_ext 749=item @device_partition_property_exts = $device->affinity_domains_ext
642 750
643Calls 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.
644 752
645=item $uint = $device->reference_count_ext 753=item $uint = $device->reference_count_ext
646 754
647Calls 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.
648 756
649=item @device_partition_property_exts = $device->partition_style_ext 757=item @device_partition_property_exts = $device->partition_style_ext
650 758
651Calls 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.
652 760
653=for gengetinfo end device 761=for gengetinfo end device
654 762
655=back 763=back
656 764
670 778
671L<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>
672 780
673=item $buf = $ctx->buffer ($flags, $len) 781=item $buf = $ctx->buffer ($flags, $len)
674 782
675Creates 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.
676 785
677L<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>
678 787
679=item $buf = $ctx->buffer_sv ($flags, $data) 788=item $buf = $ctx->buffer_sv ($flags, $data)
680 789
681Creates 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.
682 792
683=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)
684 794
685Creates 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.
686 797
687L<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>
688 799
689=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)
690 801
691Creates 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.
692 804
693L<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
694 834
695=item @formats = $ctx->supported_image_formats ($flags, $image_type) 835=item @formats = $ctx->supported_image_formats ($flags, $image_type)
696 836
697Returns 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
698two values, $channel_order and $channel_type, in it. 838two values, $channel_order and $channel_type, in it.
717 857
718L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetContextInfo.html> 858L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetContextInfo.html>
719 859
720=for gengetinfo begin context 860=for gengetinfo begin context
721 861
722
723=item $uint = $context->reference_count 862=item $uint = $context->reference_count
724 863
725Calls 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.
726 865
727=item @devices = $context->devices 866=item @devices = $context->devices
728 867
729Calls C<clGetContextInfo> with C<CL_CONTEXT_DEVICES> and returns the result(s). 868Calls C<clGetContextInfo> with C<CL_CONTEXT_DEVICES> and returns the result.
730 869
731=item @property_ints = $context->properties 870=item @property_ints = $context->properties
732 871
733Calls C<clGetContextInfo> with C<CL_CONTEXT_PROPERTIES> and returns the result(s). 872Calls C<clGetContextInfo> with C<CL_CONTEXT_PROPERTIES> and returns the result.
734 873
735=item $uint = $context->num_devices 874=item $uint = $context->num_devices
736 875
737Calls 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.
738 877
739=for gengetinfo end context 878=for gengetinfo end context
740 879
741=back 880=back
742 881
774 913
775=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...)
776 915
777L<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>
778 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
779=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...)
780 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
781L<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>
782 933
783=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...)
784 935
785L<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>
786 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
787=item $ev = $queue->enqueue_copy_buffer_rect ($src, $dst, $src_x, $src_y, $src_z, $dst_x, $dst_y, $dst_z, $width, $height, $depth, $src_row_pitch, $src_slice_pitch, $dst_row_pitch, $dst_slice_pitch, $wait_event...) 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...)
788 947
789Yeah. 948Yeah.
790 949
791L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBufferRect.html>
792
793=item $ev = $queue->enqueue_copy_buffer_to_image ($src_buffer, $dst_image, $src_offset, $dst_x, $dst_y, $dst_z, $width, $height, $depth, $wait_events...)
794
795L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBufferToImage.html>. 950L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyBufferToImage.html>.
796
797=item $ev = $queue->enqueue_copy_image ($src_image, $dst_image, $src_x, $src_y, $src_z, $dst_x, $dst_y, $dst_z, $width, $height, $depth, $wait_events...)
798
799L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyImage.html>
800
801=item $ev = $queue->enqueue_copy_image_to_buffer ($src_image, $dst_image, $src_x, $src_y, $src_z, $width, $height, $depth, $dst_offset, $wait_events...)
802
803L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueCopyImageToBuffer.html>
804 951
805=item $ev = $queue->enqueue_task ($kernel, $wait_events...) 952=item $ev = $queue->enqueue_task ($kernel, $wait_events...)
806 953
807L<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>
808 955
822reference 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
823elements as @$global_work_size. 970elements as @$global_work_size.
824 971
825L<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>
826 973
827=item $ev = $queue->enqueue_marker 974=item $ev = $queue->enqueue_marker ($wait_events...)
828 975
829L<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>
830 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
831=item $ev = $queue->enqueue_wait_for_events ($wait_events...) 992=item $ev = $queue->enqueue_wait_for_events ($wait_events...)
832 993
833L<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>
834 995
835=item $queue->enqueue_barrier 996=item $queue->enqueue_barrier
850 1011
851L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetCommandQueueInfo.html> 1012L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetCommandQueueInfo.html>
852 1013
853=for gengetinfo begin command_queue 1014=for gengetinfo begin command_queue
854 1015
855
856=item $ctx = $command_queue->context 1016=item $ctx = $command_queue->context
857 1017
858Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_CONTEXT> and returns the result(s). 1018Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_CONTEXT> and returns the result.
859 1019
860=item $device = $command_queue->device 1020=item $device = $command_queue->device
861 1021
862Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_DEVICE> and returns the result(s). 1022Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_DEVICE> and returns the result.
863 1023
864=item $uint = $command_queue->reference_count 1024=item $uint = $command_queue->reference_count
865 1025
866Calls 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.
867 1027
868=item $command_queue_properties = $command_queue->properties 1028=item $command_queue_properties = $command_queue->properties
869 1029
870Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_PROPERTIES> and returns the result(s). 1030Calls C<clGetCommandQueueInfo> with C<CL_QUEUE_PROPERTIES> and returns the result.
871 1031
872=for gengetinfo end command_queue 1032=for gengetinfo end command_queue
873 1033
874=back 1034=back
875 1035
886 1046
887L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetMemObjectInfo.html> 1047L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetMemObjectInfo.html>
888 1048
889=for gengetinfo begin mem 1049=for gengetinfo begin mem
890 1050
891
892=item $mem_object_type = $mem->type 1051=item $mem_object_type = $mem->type
893 1052
894Calls C<clGetMemObjectInfo> with C<CL_MEM_TYPE> and returns the result(s). 1053Calls C<clGetMemObjectInfo> with C<CL_MEM_TYPE> and returns the result.
895 1054
896=item $mem_flags = $mem->flags 1055=item $mem_flags = $mem->flags
897 1056
898Calls C<clGetMemObjectInfo> with C<CL_MEM_FLAGS> and returns the result(s). 1057Calls C<clGetMemObjectInfo> with C<CL_MEM_FLAGS> and returns the result.
899 1058
900=item $int = $mem->size 1059=item $int = $mem->size
901 1060
902Calls C<clGetMemObjectInfo> with C<CL_MEM_SIZE> and returns the result(s). 1061Calls C<clGetMemObjectInfo> with C<CL_MEM_SIZE> and returns the result.
903 1062
904=item $ptr_value = $mem->host_ptr 1063=item $ptr_value = $mem->host_ptr
905 1064
906Calls 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.
907 1066
908=item $uint = $mem->map_count 1067=item $uint = $mem->map_count
909 1068
910Calls 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.
911 1070
912=item $uint = $mem->reference_count 1071=item $uint = $mem->reference_count
913 1072
914Calls 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.
915 1074
916=item $ctx = $mem->context 1075=item $ctx = $mem->context
917 1076
918Calls C<clGetMemObjectInfo> with C<CL_MEM_CONTEXT> and returns the result(s). 1077Calls C<clGetMemObjectInfo> with C<CL_MEM_CONTEXT> and returns the result.
919 1078
920=item $mem = $mem->associated_memobject 1079=item $mem = $mem->associated_memobject
921 1080
922Calls 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.
923 1082
924=item $int = $mem->offset 1083=item $int = $mem->offset
925 1084
926Calls C<clGetMemObjectInfo> with C<CL_MEM_OFFSET> and returns the result(s). 1085Calls C<clGetMemObjectInfo> with C<CL_MEM_OFFSET> and returns the result.
927 1086
928=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>
929 1118
930=back 1119=back
931 1120
932=head2 THE OpenCL::Image CLASS 1121=head2 THE OpenCL::Image CLASS
933 1122
944 1133
945L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetImageInfo.html> 1134L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetImageInfo.html>
946 1135
947=for gengetinfo begin image 1136=for gengetinfo begin image
948 1137
949
950=item $int = $image->element_size 1138=item $int = $image->element_size
951 1139
952Calls 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.
953 1141
954=item $int = $image->row_pitch 1142=item $int = $image->row_pitch
955 1143
956Calls 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.
957 1145
958=item $int = $image->slice_pitch 1146=item $int = $image->slice_pitch
959 1147
960Calls 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.
961 1149
962=item $int = $image->width 1150=item $int = $image->width
963 1151
964Calls C<clGetImageInfo> with C<CL_IMAGE_WIDTH> and returns the result(s). 1152Calls C<clGetImageInfo> with C<CL_IMAGE_WIDTH> and returns the result.
965 1153
966=item $int = $image->height 1154=item $int = $image->height
967 1155
968Calls C<clGetImageInfo> with C<CL_IMAGE_HEIGHT> and returns the result(s). 1156Calls C<clGetImageInfo> with C<CL_IMAGE_HEIGHT> and returns the result.
969 1157
970=item $int = $image->depth 1158=item $int = $image->depth
971 1159
972Calls C<clGetImageInfo> with C<CL_IMAGE_DEPTH> and returns the result(s). 1160Calls C<clGetImageInfo> with C<CL_IMAGE_DEPTH> and returns the result.
973 1161
974=for gengetinfo end image 1162=for gengetinfo end image
975 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
976=back 1176=back
977 1177
978=head2 THE OpenCL::Sampler CLASS 1178=head2 THE OpenCL::Sampler CLASS
979 1179
980=over 4 1180=over 4
985 1185
986L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetSamplerInfo.html> 1186L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetSamplerInfo.html>
987 1187
988=for gengetinfo begin sampler 1188=for gengetinfo begin sampler
989 1189
990
991=item $uint = $sampler->reference_count 1190=item $uint = $sampler->reference_count
992 1191
993Calls 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.
994 1193
995=item $ctx = $sampler->context 1194=item $ctx = $sampler->context
996 1195
997Calls C<clGetSamplerInfo> with C<CL_SAMPLER_CONTEXT> and returns the result(s). 1196Calls C<clGetSamplerInfo> with C<CL_SAMPLER_CONTEXT> and returns the result.
998 1197
999=item $addressing_mode = $sampler->normalized_coords 1198=item $addressing_mode = $sampler->normalized_coords
1000 1199
1001Calls 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.
1002 1201
1003=item $filter_mode = $sampler->addressing_mode 1202=item $filter_mode = $sampler->addressing_mode
1004 1203
1005Calls 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.
1006 1205
1007=item $boolean = $sampler->filter_mode 1206=item $boolean = $sampler->filter_mode
1008 1207
1009Calls 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.
1010 1209
1011=for gengetinfo end sampler 1210=for gengetinfo end sampler
1012 1211
1013=back 1212=back
1014 1213
1036 1235
1037L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateKernel.html> 1236L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateKernel.html>
1038 1237
1039=for gengetinfo begin program_build 1238=for gengetinfo begin program_build
1040 1239
1041
1042=item $build_status = $program->build_status ($device) 1240=item $build_status = $program->build_status ($device)
1043 1241
1044Calls 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.
1045 1243
1046=item $string = $program->build_options ($device) 1244=item $string = $program->build_options ($device)
1047 1245
1048Calls 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.
1049 1247
1050=item $string = $program->build_log ($device) 1248=item $string = $program->build_log ($device)
1051 1249
1052Calls 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.
1053 1251
1054=for gengetinfo end program_build 1252=for gengetinfo end program_build
1055 1253
1056=item $packed_value = $program->info ($name) 1254=item $packed_value = $program->info ($name)
1057 1255
1059 1257
1060L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetProgramInfo.html> 1258L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetProgramInfo.html>
1061 1259
1062=for gengetinfo begin program 1260=for gengetinfo begin program
1063 1261
1064
1065=item $uint = $program->reference_count 1262=item $uint = $program->reference_count
1066 1263
1067Calls 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.
1068 1265
1069=item $ctx = $program->context 1266=item $ctx = $program->context
1070 1267
1071Calls C<clGetProgramInfo> with C<CL_PROGRAM_CONTEXT> and returns the result(s). 1268Calls C<clGetProgramInfo> with C<CL_PROGRAM_CONTEXT> and returns the result.
1072 1269
1073=item $uint = $program->num_devices 1270=item $uint = $program->num_devices
1074 1271
1075Calls 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.
1076 1273
1077=item @devices = $program->devices 1274=item @devices = $program->devices
1078 1275
1079Calls C<clGetProgramInfo> with C<CL_PROGRAM_DEVICES> and returns the result(s). 1276Calls C<clGetProgramInfo> with C<CL_PROGRAM_DEVICES> and returns the result.
1080 1277
1081=item $string = $program->source 1278=item $string = $program->source
1082 1279
1083Calls C<clGetProgramInfo> with C<CL_PROGRAM_SOURCE> and returns the result(s). 1280Calls C<clGetProgramInfo> with C<CL_PROGRAM_SOURCE> and returns the result.
1084 1281
1085=item @ints = $program->binary_sizes 1282=item @ints = $program->binary_sizes
1086 1283
1087Calls 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.
1088 1285
1089=for gengetinfo end program 1286=for gengetinfo end program
1090 1287
1288=item @blobs = $program->binaries
1289
1290Returns a string for the compiled binary for every device associated with
1291the program, empty strings indicate missing programs, and an empty result
1292means no program binaries are available.
1293
1294These "binaries" are often, in fact, informative low-level assembly
1295sources.
1296
1297L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetProgramInfo.html>
1298
1091=back 1299=back
1092 1300
1093=head2 THE OpenCL::Kernel CLASS 1301=head2 THE OpenCL::Kernel CLASS
1094 1302
1095=over 4 1303=over 4
1100 1308
1101L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetKernelInfo.html> 1309L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetKernelInfo.html>
1102 1310
1103=for gengetinfo begin kernel 1311=for gengetinfo begin kernel
1104 1312
1105
1106=item $string = $kernel->function_name 1313=item $string = $kernel->function_name
1107 1314
1108Calls 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.
1109 1316
1110=item $uint = $kernel->num_args 1317=item $uint = $kernel->num_args
1111 1318
1112Calls 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.
1113 1320
1114=item $uint = $kernel->reference_count 1321=item $uint = $kernel->reference_count
1115 1322
1116Calls 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.
1117 1324
1118=item $ctx = $kernel->context 1325=item $ctx = $kernel->context
1119 1326
1120Calls C<clGetKernelInfo> with C<CL_KERNEL_CONTEXT> and returns the result(s). 1327Calls C<clGetKernelInfo> with C<CL_KERNEL_CONTEXT> and returns the result.
1121 1328
1122=item $program = $kernel->program 1329=item $program = $kernel->program
1123 1330
1124Calls C<clGetKernelInfo> with C<CL_KERNEL_PROGRAM> and returns the result(s). 1331Calls C<clGetKernelInfo> with C<CL_KERNEL_PROGRAM> and returns the result.
1125 1332
1126=for gengetinfo end kernel 1333=for gengetinfo end kernel
1127 1334
1128=item $packed_value = $kernel->work_group_info ($device, $name) 1335=item $packed_value = $kernel->work_group_info ($device, $name)
1129 1336
1134 1341
1135L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetKernelWorkGroupInfo.html> 1342L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetKernelWorkGroupInfo.html>
1136 1343
1137=for gengetinfo begin kernel_work_group 1344=for gengetinfo begin kernel_work_group
1138 1345
1139
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
1195 1401
1196L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetEventInfo.html> 1402L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetEventInfo.html>
1197 1403
1198=for gengetinfo begin event 1404=for gengetinfo begin event
1199 1405
1200
1201=item $queue = $event->command_queue 1406=item $queue = $event->command_queue
1202 1407
1203Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_QUEUE> and returns the result(s). 1408Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_QUEUE> and returns the result.
1204 1409
1205=item $command_type = $event->command_type 1410=item $command_type = $event->command_type
1206 1411
1207Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_TYPE> and returns the result(s). 1412Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_TYPE> and returns the result.
1208 1413
1209=item $uint = $event->reference_count 1414=item $uint = $event->reference_count
1210 1415
1211Calls C<clGetEventInfo> with C<CL_EVENT_REFERENCE_COUNT> and returns the result(s). 1416Calls C<clGetEventInfo> with C<CL_EVENT_REFERENCE_COUNT> and returns the result.
1212 1417
1213=item $uint = $event->command_execution_status 1418=item $uint = $event->command_execution_status
1214 1419
1215Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_EXECUTION_STATUS> and returns the result(s). 1420Calls C<clGetEventInfo> with C<CL_EVENT_COMMAND_EXECUTION_STATUS> and returns the result.
1216 1421
1217=item $ctx = $event->context 1422=item $ctx = $event->context
1218 1423
1219Calls C<clGetEventInfo> with C<CL_EVENT_CONTEXT> and returns the result(s). 1424Calls C<clGetEventInfo> with C<CL_EVENT_CONTEXT> and returns the result.
1220 1425
1221=for gengetinfo end event 1426=for gengetinfo end event
1222 1427
1223=item $packed_value = $ev->profiling_info ($name) 1428=item $packed_value = $ev->profiling_info ($name)
1224 1429
1229 1434
1230L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetProfilingInfo.html> 1435L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetProfilingInfo.html>
1231 1436
1232=for gengetinfo begin profiling 1437=for gengetinfo begin profiling
1233 1438
1234
1235=item $ulong = $event->profiling_command_queued 1439=item $ulong = $event->profiling_command_queued
1236 1440
1237Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_QUEUED> and returns the result(s). 1441Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_QUEUED> and returns the result.
1238 1442
1239=item $ulong = $event->profiling_command_submit 1443=item $ulong = $event->profiling_command_submit
1240 1444
1241Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_SUBMIT> and returns the result(s). 1445Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_SUBMIT> and returns the result.
1242 1446
1243=item $ulong = $event->profiling_command_start 1447=item $ulong = $event->profiling_command_start
1244 1448
1245Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_START> and returns the result(s). 1449Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_START> and returns the result.
1246 1450
1247=item $ulong = $event->profiling_command_end 1451=item $ulong = $event->profiling_command_end
1248 1452
1249Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_END> and returns the result(s). 1453Calls C<clGetEventProfilingInfo> with C<CL_PROFILING_COMMAND_END> and returns the result.
1250 1454
1251=for gengetinfo end profiling 1455=for gengetinfo end profiling
1252 1456
1253=back 1457=back
1254 1458
1269package OpenCL; 1473package OpenCL;
1270 1474
1271use common::sense; 1475use common::sense;
1272 1476
1273BEGIN { 1477BEGIN {
1274 our $VERSION = '0.55'; 1478 our $VERSION = '0.95';
1275 1479
1276 require XSLoader; 1480 require XSLoader;
1277 XSLoader::load (__PACKAGE__, $VERSION); 1481 XSLoader::load (__PACKAGE__, $VERSION);
1278 1482
1279 @OpenCL::Buffer::ISA = 1483 @OpenCL::Buffer::ISA =
1280 @OpenCL::Image::ISA = OpenCL::Memory::; 1484 @OpenCL::Image::ISA = OpenCL::Memory::;
1281 1485
1486 @OpenCL::BufferObj::ISA = OpenCL::Buffer::;
1487
1282 @OpenCL::Image2D::ISA = 1488 @OpenCL::Image2D::ISA =
1283 @OpenCL::Image3D::ISA = OpenCL::Image::; 1489 @OpenCL::Image3D::ISA = OpenCL::Image::;
1284 1490
1285 @OpenCL::UserEvent::ISA = OpenCL::Event::; 1491 @OpenCL::UserEvent::ISA = OpenCL::Event::;
1286} 1492}
1287 1493
12881; 14941;
1289 1495
1290=head1 AUTHOR 1496=head1 AUTHOR

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines