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

Comparing OpenCL/OpenCL.pm (file contents):
Revision 1.29 by root, Thu Apr 5 07:13:44 2012 UTC vs.
Revision 1.35 by root, Thu Apr 19 13:18:31 2012 UTC

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 ';
286 286
287Comverts an error value into a human readable string. 287Comverts an error value into a human readable string.
288 288
289=item $str = OpenCL::enum2str $enum 289=item $str = OpenCL::enum2str $enum
290 290
291Converts most enum values (inof parameter names, image format constants, 291Converts most enum values (of parameter names, image format constants,
292object types, addressing and filter modes, command types etc.) into a 292object types, addressing and filter modes, command types etc.) into a
293human readbale string. When confronted with some random integer it can be 293human readable string. When confronted with some random integer it can be
294very helpful to pass it through this function to maybe get some readable 294very helpful to pass it through this function to maybe get some readable
295string out of it. 295string out of it.
296 296
297=item @platforms = OpenCL::platforms 297=item @platforms = OpenCL::platforms
298 298
691 691
692Creates a new OpenCL::Image3D object and optionally initialises it with 692Creates a new OpenCL::Image3D object and optionally initialises it with
693the given data values. 693the given data values.
694 694
695L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateImage3D.html> 695L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateImage3D.html>
696
697=item $buffer = $ctx->gl_buffer ($flags, $bufobj)
698
699Creates a new OpenCL::Buffer (actually OpenCL::BufferObj) object that refers to the given
700OpenGL buffer object.
701
702http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLBuffer.html
703
704=item $ctx->gl_texture2d ($flags, $target, $miplevel, $texture)
705
706Creates a new OpenCL::Image2D object that refers to the given OpenGL
7072D texture object.
708
709http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLTexture2D.html
710
711=item $ctx->gl_texture3d ($flags, $target, $miplevel, $texture)
712
713Creates a new OpenCL::Image3D object that refers to the given OpenGL
7143D texture object.
715
716http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLTexture3D.html
717
718=item $ctx->gl_renderbuffer ($flags, $renderbuffer)
719
720Creates a new OpenCL::Image2D object that refers to the given OpenGL
721render buffer.
722
723http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateFromGLRenderbuffer.html
696 724
697=item @formats = $ctx->supported_image_formats ($flags, $image_type) 725=item @formats = $ctx->supported_image_formats ($flags, $image_type)
698 726
699Returns a list of matching image formats - each format is an arrayref with 727Returns a list of matching image formats - each format is an arrayref with
700two values, $channel_order and $channel_type, in it. 728two values, $channel_order and $channel_type, in it.
831reference to an array of local work sizes, with the same number of 859reference to an array of local work sizes, with the same number of
832elements as @$global_work_size. 860elements as @$global_work_size.
833 861
834L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueNDRangeKernel.html> 862L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueNDRangeKernel.html>
835 863
836=item $ev = $queue->enqueue_marker 864=item $ev = $queue->enqueue_marker ($wait_events...)
837 865
838L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueMarker.html> 866L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueMarker.html>
867
868=item $ev = $queue->enqueue_acquire_gl_objects ([object, ...], $wait_events...)
869
870Enqueues a list (an array-ref of OpenCL::Memory objects) to be acquired
871for subsequent OpenCL usage.
872
873L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueAcquireGLObjects.html>
874
875=item $ev = $queue->enqueue_release_gl_objects ([object, ...], $wait_events...)
876
877Enqueues a list (an array-ref of OpenCL::Memory objects) to be released
878for subsequent OpenGL usage.
879
880L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueReleaseGLObjects.html>
839 881
840=item $ev = $queue->enqueue_wait_for_events ($wait_events...) 882=item $ev = $queue->enqueue_wait_for_events ($wait_events...)
841 883
842L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueWaitForEvents.html> 884L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clEnqueueWaitForEvents.html>
843 885
931=item $int = $mem->offset 973=item $int = $mem->offset
932 974
933Calls C<clGetMemObjectInfo> with C<CL_MEM_OFFSET> and returns the result. 975Calls C<clGetMemObjectInfo> with C<CL_MEM_OFFSET> and returns the result.
934 976
935=for gengetinfo end mem 977=for gengetinfo end mem
978
979=item ($type, $name) = $mem->gl_object_info
980
981Returns the OpenGL object type (e.g. OpenCL::GL_OBJECT_TEXTURE2D) and the
982object "name" (e.g. the texture name) used to create this memory object.
983
984L<http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clGetGLObjectInfo.html>
936 985
937=back 986=back
938 987
939=head2 THE OpenCL::Buffer CLASS 988=head2 THE OpenCL::Buffer CLASS
940 989
999=item $int = $image->depth 1048=item $int = $image->depth
1000 1049
1001Calls C<clGetImageInfo> with C<CL_IMAGE_DEPTH> and returns the result. 1050Calls C<clGetImageInfo> with C<CL_IMAGE_DEPTH> and returns the result.
1002 1051
1003=for gengetinfo end image 1052=for gengetinfo end image
1053
1054=for gengetinfo begin gl_texture
1055
1056=item $GLenum = $gl_texture->target
1057
1058Calls C<clGetGlTextureInfo> with C<CL_GL_TEXTURE_TARGET> and returns the result.
1059
1060=item $GLint = $gl_texture->gl_mipmap_level
1061
1062Calls C<clGetGlTextureInfo> with C<CL_GL_MIPMAP_LEVEL> and returns the result.
1063
1064=for gengetinfo end gl_texture
1004 1065
1005=back 1066=back
1006 1067
1007=head2 THE OpenCL::Sampler CLASS 1068=head2 THE OpenCL::Sampler CLASS
1008 1069
1302package OpenCL; 1363package OpenCL;
1303 1364
1304use common::sense; 1365use common::sense;
1305 1366
1306BEGIN { 1367BEGIN {
1307 our $VERSION = '0.91'; 1368 our $VERSION = '0.92';
1308 1369
1309 require XSLoader; 1370 require XSLoader;
1310 XSLoader::load (__PACKAGE__, $VERSION); 1371 XSLoader::load (__PACKAGE__, $VERSION);
1311 1372
1312 @OpenCL::Buffer::ISA = 1373 @OpenCL::Buffer::ISA =

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines