diff --git a/extra/opencl/ffi/ffi.factor b/extra/opencl/ffi/ffi.factor index d6e702ed6f..5b7b42235d 100644 --- a/extra/opencl/ffi/ffi.factor +++ b/extra/opencl/ffi/ffi.factor @@ -604,16 +604,3 @@ FUNCTION: cl_mem clCreateFromD3D11Texture2DNV ( cl_context context, cl_mem_flags FUNCTION: cl_mem clCreateFromD3D11Texture3DNV ( cl_context context, cl_mem_flags flags, void* id3dtexture3d_resource, uint subresource, cl_int* errcode_ret ) ; FUNCTION: cl_int clEnqueueAcquireD3D11ObjectsNV ( cl_command_queue command_queue, cl_uint num_objects, cl_mem* mem_objects, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ; FUNCTION: cl_int clEnqueueReleaseD3D11ObjectsNV ( cl_command_queue command_queue, cl_uint num_objects, cl_mem* mem_objects, cl_uint num_events_in_wait_list, cl_event* event_wait_list, cl_event* event ) ; - -! Utility words needed for working with the API -: *size_t ( c-ptr -- value ) - size_t heap-size { - { 4 [ 0 alien-unsigned-4 ] } - { 8 [ 0 alien-unsigned-8 ] } - } case ; inline - -: ( value -- c-ptr ) - size_t heap-size [ (byte-array) ] keep { - { 4 [ [ 0 set-alien-unsigned-4 ] keep ] } - { 8 [ [ 0 set-alien-unsigned-8 ] keep ] } - } case ; inline diff --git a/extra/opencl/opencl-tests.factor b/extra/opencl/opencl-tests.factor index 15eaf0646c..a8104625a9 100644 --- a/extra/opencl/opencl-tests.factor +++ b/extra/opencl/opencl-tests.factor @@ -31,10 +31,10 @@ __kernel void square( "" kernel-source 1array &dispose "square" &dispose :> kernel cl-read-access num-bytes in &dispose :> in-buffer cl-write-access num-bytes f &dispose :> out-buffer - + kernel in-buffer out-buffer num-floats uint 3array { num-floats } [ ] cl-queue-kernel &dispose drop - + cl-finish out-buffer 0 num-bytes diff --git a/extra/opencl/opencl.factor b/extra/opencl/opencl.factor index 2371d2c058..def384df2c 100644 --- a/extra/opencl/opencl.factor +++ b/extra/opencl/opencl.factor @@ -18,7 +18,7 @@ ERROR: cl-error err ; dup f = [ cl-error ] [ drop ] if ; inline : info-data-size ( handle name info-quot -- size_t ) - [ 0 f 0 ] dip [ call cl-success ] 2keep drop size_t deref ; inline + [ 0 f 0 size_t ] dip [ call cl-success ] 2keep drop size_t deref ; inline : info-data-bytes ( handle name info-quot size -- bytes ) swap [ dup f ] dip [ call cl-success ] 3keep 2drop ; inline @@ -27,7 +27,7 @@ ERROR: cl-error err ; [ 3dup info-data-size info-data-bytes ] dip call ; inline : 2info-data-size ( handle1 handle2 name info-quot -- size_t ) - [ 0 f 0 ] dip [ call cl-success ] 2keep drop size_t deref ; inline + [ 0 f 0 size_t ] dip [ call cl-success ] 2keep drop size_t deref ; inline : 2info-data-bytes ( handle1 handle2 name info-quot size -- bytes ) swap [ dup f ] dip [ call cl-success ] 3keep 2drop ; inline @@ -63,6 +63,7 @@ ERROR: cl-error err ; [ [ length size_t heap-size / ] keep swap size_t ] info ; inline TUPLE: cl-handle < disposable handle ; + PRIVATE> VARIANT: cl-device-type