… | |
… | |
502 | native_vector_width_int = CL_DEVICE_NATIVE_VECTOR_WIDTH_INT |
502 | native_vector_width_int = CL_DEVICE_NATIVE_VECTOR_WIDTH_INT |
503 | native_vector_width_long = CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG |
503 | native_vector_width_long = CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG |
504 | native_vector_width_float = CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT |
504 | native_vector_width_float = CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT |
505 | native_vector_width_double = CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE |
505 | native_vector_width_double = CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE |
506 | native_vector_width_half = CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF |
506 | native_vector_width_half = CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF |
507 | reference_count_ext = CL_DEVICE_REFERENCE_COUNT_EXT |
507 | reference_count_ext = CL_DEVICE_REFERENCE_COUNT_EXT |
508 | PPCODE: |
508 | PPCODE: |
509 | cl_uint value [1]; |
509 | cl_uint value [1]; |
510 | NEED_SUCCESS (GetDeviceInfo, (self, ix, sizeof (value), value, 0)); |
510 | NEED_SUCCESS (GetDeviceInfo, (self, ix, sizeof (value), value, 0)); |
511 | EXTEND (SP, 1); |
511 | EXTEND (SP, 1); |
512 | const int i = 0; |
512 | const int i = 0; |
… | |
… | |
759 | gl_buffer (OpenCL::Context self, cl_mem_flags flags, cl_GLuint bufobj) |
759 | gl_buffer (OpenCL::Context self, cl_mem_flags flags, cl_GLuint bufobj) |
760 | PPCODE: |
760 | PPCODE: |
761 | NEED_SUCCESS_ARG (cl_mem mem, CreateFromGLBuffer, (self, flags, bufobj, &res)); |
761 | NEED_SUCCESS_ARG (cl_mem mem, CreateFromGLBuffer, (self, flags, bufobj, &res)); |
762 | XPUSH_NEW_OBJ ("OpenCL::BufferObj", mem); |
762 | XPUSH_NEW_OBJ ("OpenCL::BufferObj", mem); |
763 | |
763 | |
|
|
764 | void |
|
|
765 | gl_renderbuffer (OpenCL::Context self, cl_mem_flags flags, cl_GLuint renderbuffer) |
|
|
766 | PPCODE: |
|
|
767 | NEED_SUCCESS_ARG (cl_mem mem, CreateFromGLRenderbuffer, (self, flags, renderbuffer, &res)); |
|
|
768 | XPUSH_NEW_OBJ ("OpenCL::Image2D", mem); |
|
|
769 | |
|
|
770 | #if CL_VERSION_1_2 |
|
|
771 | |
|
|
772 | void |
|
|
773 | gl_texture (OpenCL::Context self, cl_mem_flags flags, cl_GLenum target, cl_GLint miplevel, cl_GLuint texture) |
|
|
774 | PPCODE: |
|
|
775 | char *klass = "OpenCL::Memory"; |
|
|
776 | cl_gl_object_type t; |
|
|
777 | NEED_SUCCESS_ARG (cl_mem mem, CreateFromGLTexture2D, (self, flags, target, miplevel, texture, &res)); |
|
|
778 | NEED_SUCCESS (GetGLObjectInfo, (mem, &t, 0)); |
|
|
779 | switch (t) |
|
|
780 | { |
|
|
781 | case CL_GL_OBJECT_TEXTURE_BUFFER: klass = "OpenCL::Image1DBuffer"; break; |
|
|
782 | case CL_GL_OBJECT_TEXTURE1D: klass = "OpenCL::Image1D"; break; |
|
|
783 | case CL_GL_OBJECT_TEXTURE1D_ARRAY: klass = "OpenCL::Image2DArray"; break; |
|
|
784 | case CL_GL_OBJECT_TEXTURE2D: klass = "OpenCL::Image2D"; break; |
|
|
785 | case CL_GL_OBJECT_TEXTURE2D_ARRAY: klass = "OpenCL::Image2DArray"; break; |
|
|
786 | case CL_GL_OBJECT_TEXTURE3D: klass = "OpenCL::Image3D"; break; |
|
|
787 | } |
|
|
788 | XPUSH_NEW_OBJ (klass, mem); |
|
|
789 | |
|
|
790 | #endif |
|
|
791 | |
764 | #if !CL_VERSION_1_2 || defined CL_USE_DEPRECATED_OPENCL_1_1_APIS |
792 | #if !CL_VERSION_1_2 || defined CL_USE_DEPRECATED_OPENCL_1_1_APIS |
765 | |
793 | |
766 | void |
794 | void |
767 | gl_texture2d (OpenCL::Context self, cl_mem_flags flags, cl_GLenum target, cl_GLint miplevel, cl_GLuint texture) |
795 | gl_texture2d (OpenCL::Context self, cl_mem_flags flags, cl_GLenum target, cl_GLint miplevel, cl_GLuint texture) |
768 | PPCODE: |
796 | PPCODE: |
… | |
… | |
774 | PPCODE: |
802 | PPCODE: |
775 | NEED_SUCCESS_ARG (cl_mem mem, CreateFromGLTexture3D, (self, flags, target, miplevel, texture, &res)); |
803 | NEED_SUCCESS_ARG (cl_mem mem, CreateFromGLTexture3D, (self, flags, target, miplevel, texture, &res)); |
776 | XPUSH_NEW_OBJ ("OpenCL::Image3D", mem); |
804 | XPUSH_NEW_OBJ ("OpenCL::Image3D", mem); |
777 | |
805 | |
778 | #endif |
806 | #endif |
779 | |
|
|
780 | void |
|
|
781 | gl_renderbuffer (OpenCL::Context self, cl_mem_flags flags, cl_GLuint renderbuffer) |
|
|
782 | PPCODE: |
|
|
783 | NEED_SUCCESS_ARG (cl_mem mem, CreateFromGLRenderbuffer, (self, flags, renderbuffer, &res)); |
|
|
784 | XPUSH_NEW_OBJ ("OpenCL::Image2D", mem); |
|
|
785 | |
807 | |
786 | #endif |
808 | #endif |
787 | |
809 | |
788 | void |
810 | void |
789 | supported_image_formats (OpenCL::Context self, cl_mem_flags flags, cl_mem_object_type image_type) |
811 | supported_image_formats (OpenCL::Context self, cl_mem_flags flags, cl_mem_object_type image_type) |