… | |
… | |
456 | It's best to avoid this method and use one of the following convenience |
456 | It's best to avoid this method and use one of the following convenience |
457 | wrappers. |
457 | wrappers. |
458 | |
458 | |
459 | L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetPlatformInfo.html> |
459 | L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetPlatformInfo.html> |
460 | |
460 | |
|
|
461 | =item $platform->unload_compiler |
|
|
462 | |
|
|
463 | Attempts to unload the compiler for this platform, for endless |
|
|
464 | profit. Does nothing on OpenCL 1.1. |
|
|
465 | |
|
|
466 | L<http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clUnloadPlatformCompiler.html> |
|
|
467 | |
461 | =for gengetinfo begin platform |
468 | =for gengetinfo begin platform |
462 | |
469 | |
463 | =item $string = $platform->profile |
470 | =item $string = $platform->profile |
464 | |
471 | |
465 | Calls C<clGetPlatformInfo> with C<CL_PLATFORM_PROFILE> and returns the result. |
472 | Calls C<clGetPlatformInfo> with C<CL_PLATFORM_PROFILE> and returns the result. |
… | |
… | |
752 | |
759 | |
753 | Calls C<clGetDeviceInfo> with C<CL_DEVICE_AFFINITY_DOMAINS_EXT> and returns the result. |
760 | Calls C<clGetDeviceInfo> with C<CL_DEVICE_AFFINITY_DOMAINS_EXT> and returns the result. |
754 | |
761 | |
755 | =item $uint = $device->reference_count_ext |
762 | =item $uint = $device->reference_count_ext |
756 | |
763 | |
757 | Calls C<clGetDeviceInfo> with C<CL_DEVICE_REFERENCE_COUNT_EXT > and returns the result. |
764 | Calls C<clGetDeviceInfo> with C<CL_DEVICE_REFERENCE_COUNT_EXT> and returns the result. |
758 | |
765 | |
759 | =item @device_partition_property_exts = $device->partition_style_ext |
766 | =item @device_partition_property_exts = $device->partition_style_ext |
760 | |
767 | |
761 | Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARTITION_STYLE_EXT> and returns the result. |
768 | Calls C<clGetDeviceInfo> with C<CL_DEVICE_PARTITION_STYLE_EXT> and returns the result. |
762 | |
769 | |
… | |
… | |
794 | =item $buf = $ctx->buffer_sv ($flags, $data) |
801 | =item $buf = $ctx->buffer_sv ($flags, $data) |
795 | |
802 | |
796 | Creates a new OpenCL::Buffer (actually OpenCL::BufferObj) object and |
803 | Creates a new OpenCL::Buffer (actually OpenCL::BufferObj) object and |
797 | initialise it with the given data values. |
804 | initialise it with the given data values. |
798 | |
805 | |
|
|
806 | =item $img = $ctx->image ($self, $flags, $channel_order, $channel_type, $type, $width, $height, $depth, $array_size = 0, $row_pitch = 0, $slice_pitch = 0, $num_mip_level = 0, $num_samples = 0, $*data = &PL_sv_undef) |
|
|
807 | |
|
|
808 | Creates a new OpenCL::Image object and optionally initialises it with |
|
|
809 | the given data values. |
|
|
810 | |
|
|
811 | L<http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clCreateImage.html> |
|
|
812 | |
799 | =item $img = $ctx->image2d ($flags, $channel_order, $channel_type, $width, $height, $row_pitch = 0, $data = undef) |
813 | =item $img = $ctx->image2d ($flags, $channel_order, $channel_type, $width, $height, $row_pitch = 0, $data = undef) |
800 | |
814 | |
801 | Creates a new OpenCL::Image2D object and optionally initialises it with |
815 | Creates a new OpenCL::Image2D object and optionally initialises it with |
802 | the given data values. |
816 | the given data values. |
803 | |
817 | |
… | |
… | |
815 | Creates a new OpenCL::Buffer (actually OpenCL::BufferObj) object that refers to the given |
829 | Creates a new OpenCL::Buffer (actually OpenCL::BufferObj) object that refers to the given |
816 | OpenGL buffer object. |
830 | OpenGL buffer object. |
817 | |
831 | |
818 | http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLBuffer.html |
832 | http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLBuffer.html |
819 | |
833 | |
|
|
834 | =item $img = $ctx->gl_texture ($flags, $target, $miplevel, $texture) |
|
|
835 | |
|
|
836 | Creates a new OpenCL::Image object that refers to the given OpenGL |
|
|
837 | texture object or buffer. |
|
|
838 | |
|
|
839 | http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clCreateFromGLTexture.html |
|
|
840 | |
820 | =item $ctx->gl_texture2d ($flags, $target, $miplevel, $texture) |
841 | =item $img = $ctx->gl_texture2d ($flags, $target, $miplevel, $texture) |
821 | |
842 | |
822 | Creates a new OpenCL::Image2D object that refers to the given OpenGL |
843 | Creates a new OpenCL::Image2D object that refers to the given OpenGL |
823 | 2D texture object. |
844 | 2D texture object. |
824 | |
845 | |
825 | http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLTexture2D.html |
846 | http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLTexture2D.html |
826 | |
847 | |
827 | =item $ctx->gl_texture3d ($flags, $target, $miplevel, $texture) |
848 | =item $img = $ctx->gl_texture3d ($flags, $target, $miplevel, $texture) |
828 | |
849 | |
829 | Creates a new OpenCL::Image3D object that refers to the given OpenGL |
850 | Creates a new OpenCL::Image3D object that refers to the given OpenGL |
830 | 3D texture object. |
851 | 3D texture object. |
831 | |
852 | |
832 | http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLTexture3D.html |
853 | http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLTexture3D.html |
… | |
… | |
1130 | |
1151 | |
1131 | =back |
1152 | =back |
1132 | |
1153 | |
1133 | =head2 THE OpenCL::Image CLASS |
1154 | =head2 THE OpenCL::Image CLASS |
1134 | |
1155 | |
1135 | This is the superclass of all image objects - OpenCL::Image2D and OpenCL::Image3D. |
1156 | This is the superclass of all image objects - OpenCL::Image1D, |
|
|
1157 | OpenCL::Image1DArray, OpenCL::Image1DBuffer, OpenCL::Image2D, |
|
|
1158 | OpenCL::Image2DArray and OpenCL::Image3D. |
1136 | |
1159 | |
1137 | =over 4 |
1160 | =over 4 |
1138 | |
1161 | |
1139 | =item $packed_value = $ev->image_info ($name) |
1162 | =item $packed_value = $ev->image_info ($name) |
1140 | |
1163 | |
… | |
… | |
1244 | |
1267 | |
1245 | Creates an OpenCL::Kernel object out of the named C<__kernel> function in |
1268 | Creates an OpenCL::Kernel object out of the named C<__kernel> function in |
1246 | the program. |
1269 | the program. |
1247 | |
1270 | |
1248 | L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateKernel.html> |
1271 | L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateKernel.html> |
|
|
1272 | |
|
|
1273 | =item @kernels = $program->kernels_in_program |
|
|
1274 | |
|
|
1275 | Returns all kernels successfully compiled for all devices in program. |
|
|
1276 | |
|
|
1277 | http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateKernelsInProgram.html |
1249 | |
1278 | |
1250 | =for gengetinfo begin program_build |
1279 | =for gengetinfo begin program_build |
1251 | |
1280 | |
1252 | =item $build_status = $program->build_status ($device) |
1281 | =item $build_status = $program->build_status ($device) |
1253 | |
1282 | |
… | |
… | |
1389 | float and double as floating point values, memory/buffer/image2d/image3d |
1418 | float and double as floating point values, memory/buffer/image2d/image3d |
1390 | must be an object of that type or C<undef>, local-memory arguments are |
1419 | must be an object of that type or C<undef>, local-memory arguments are |
1391 | set by specifying the size, and sampler and event must be objects of that |
1420 | set by specifying the size, and sampler and event must be objects of that |
1392 | type. |
1421 | type. |
1393 | |
1422 | |
|
|
1423 | Setting an argument for a kernel does NOT keep a reference to the object - |
|
|
1424 | for example, if you set an argument to some image object, free the image, |
|
|
1425 | and call the kernel, you will run into undefined behaviour. |
|
|
1426 | |
1394 | L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clSetKernelArg.html> |
1427 | L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clSetKernelArg.html> |
1395 | |
1428 | |
1396 | =back |
1429 | =back |
1397 | |
1430 | |
1398 | =head2 THE OpenCL::Event CLASS |
1431 | =head2 THE OpenCL::Event CLASS |
… | |
… | |
1491 | our $VERSION = '0.96'; |
1524 | our $VERSION = '0.96'; |
1492 | |
1525 | |
1493 | require XSLoader; |
1526 | require XSLoader; |
1494 | XSLoader::load (__PACKAGE__, $VERSION); |
1527 | XSLoader::load (__PACKAGE__, $VERSION); |
1495 | |
1528 | |
1496 | @OpenCL::Buffer::ISA = |
1529 | @OpenCL::Buffer::ISA = |
1497 | @OpenCL::Image::ISA = OpenCL::Memory::; |
1530 | @OpenCL::Image::ISA = OpenCL::Memory::; |
1498 | |
1531 | |
1499 | @OpenCL::BufferObj::ISA = OpenCL::Buffer::; |
1532 | @OpenCL::BufferObj::ISA = OpenCL::Buffer::; |
1500 | |
1533 | |
1501 | @OpenCL::Image2D::ISA = |
1534 | @OpenCL::Image2D::ISA = |
|
|
1535 | @OpenCL::Image3D::ISA = |
|
|
1536 | @OpenCL::Image2DArray::ISA = |
|
|
1537 | @OpenCL::Image1D::ISA = |
|
|
1538 | @OpenCL::Image1DArray::ISA = |
1502 | @OpenCL::Image3D::ISA = OpenCL::Image::; |
1539 | @OpenCL::Image1DBuffer::ISA = OpenCL::Image::; |
1503 | |
1540 | |
1504 | @OpenCL::UserEvent::ISA = OpenCL::Event::; |
1541 | @OpenCL::UserEvent::ISA = OpenCL::Event::; |
1505 | } |
1542 | } |
1506 | |
1543 | |
1507 | 1; |
1544 | 1; |
1508 | |
1545 | |
1509 | =head1 AUTHOR |
1546 | =head1 AUTHOR |