SYMBOLS: cl-current-context cl-current-queue cl-current-device ;
<PRIVATE
+
: (current-cl-context) ( -- cl-context )
cl-current-context get ; inline
} case ; inline
: platform-info-string ( handle name -- string )
- [ clGetPlatformInfo ] info-string ; inline
+ [ clGetPlatformInfo ] info-string ;
: platform-info ( id -- profile version name vendor extensions )
{
} case ; inline
: device-info-bool ( handle name -- ? )
- [ clGetDeviceInfo ] info-bool ; inline
+ [ clGetDeviceInfo ] info-bool ;
: device-info-ulong ( handle name -- ulong )
- [ clGetDeviceInfo ] info-ulong ; inline
+ [ clGetDeviceInfo ] info-ulong ;
: device-info-uint ( handle name -- uint )
- [ clGetDeviceInfo ] info-uint ; inline
+ [ clGetDeviceInfo ] info-uint ;
: device-info-string ( handle name -- string )
- [ clGetDeviceInfo ] info-string ; inline
+ [ clGetDeviceInfo ] info-string ;
: device-info-size_t ( handle name -- size_t )
- [ clGetDeviceInfo ] info-size_t ; inline
+ [ clGetDeviceInfo ] info-size_t ;
: device-info-size_t-array ( handle name -- size_t-array )
- [ clGetDeviceInfo ] info-size_t-array ; inline
+ [ clGetDeviceInfo ] info-size_t-array ;
: device-info ( device-id -- device )
dup {
] 2bi ; inline
: command-queue-info-ulong ( handle name -- ulong )
- [ clGetCommandQueueInfo ] info-ulong ; inline
+ [ clGetCommandQueueInfo ] info-ulong ;
: sampler-info-bool ( handle name -- ? )
- [ clGetSamplerInfo ] info-bool ; inline
+ [ clGetSamplerInfo ] info-bool ;
: sampler-info-uint ( handle name -- uint )
- [ clGetSamplerInfo ] info-uint ; inline
+ [ clGetSamplerInfo ] info-uint ;
: program-build-info-string ( program-handle device-handle name -- string )
- [ clGetProgramBuildInfo ] 2info-string ; inline
+ [ clGetProgramBuildInfo ] 2info-string ;
: program-build-log ( program-handle device-handle -- string )
- CL_PROGRAM_BUILD_LOG program-build-info-string ; inline
+ CL_PROGRAM_BUILD_LOG program-build-info-string ;
: strings>char*-array ( strings -- char*-array )
[ ascii encode dup length dup malloc [ cl-not-null ]
- keep &free [ -rot memcpy ] keep ] void*-array{ } map-as ; inline
+ keep &free [ -rot memcpy ] keep ] void*-array{ } map-as ;
: (program) ( cl-context sources -- program-handle )
[ handle>> ] dip [
} case ;
: kernel-info-string ( handle name -- string )
- [ clGetKernelInfo ] info-string ; inline
+ [ clGetKernelInfo ] info-string ;
: kernel-info-uint ( handle name -- uint )
- [ clGetKernelInfo ] info-uint ; inline
+ [ clGetKernelInfo ] info-uint ;
: kernel-work-group-info-size_t ( handle1 handle2 name -- size_t )
- [ clGetKernelWorkGroupInfo ] 2info-size_t ; inline
+ [ clGetKernelWorkGroupInfo ] 2info-size_t ;
: event-info-uint ( handle name -- uint )
- [ clGetEventInfo ] info-uint ; inline
+ [ clGetEventInfo ] info-uint ;
: event-info-int ( handle name -- int )
- [ clGetEventInfo ] info-int ; inline
+ [ clGetEventInfo ] info-int ;
: cl_command_type>command-type ( cl_command-type -- command-type )
{
} case ; inline
: profiling-info-ulong ( handle name -- ulong )
- [ clGetEventProfilingInfo ] info-ulong ; inline
-
+ [ clGetEventProfilingInfo ] info-ulong ;
: bind-kernel-arg-buffer ( kernel index buffer -- )
[ handle>> ] [ cl_mem heap-size ] [ handle>> <void*> ] tri*
cl-kernel new-disposable swap >>handle ; inline
: cl-kernel-name ( kernel -- string )
- handle>> CL_KERNEL_FUNCTION_NAME kernel-info-string ; inline
+ handle>> CL_KERNEL_FUNCTION_NAME kernel-info-string ;
: cl-kernel-arity ( kernel -- arity )
- handle>> CL_KERNEL_NUM_ARGS kernel-info-uint ; inline
+ handle>> CL_KERNEL_NUM_ARGS kernel-info-uint ;
: cl-kernel-local-size ( kernel -- size )
(current-cl-device) [ handle>> ] bi@ CL_KERNEL_WORK_GROUP_SIZE kernel-work-group-info-size_t ; inline