diff --git a/lib/cl/device.jl b/lib/cl/device.jl index 2ce594cb..cc2122d7 100644 --- a/lib/cl/device.jl +++ b/lib/cl/device.jl @@ -54,27 +54,27 @@ end return Int(scalar[]) end if s === :vendor_id - return get_scalar(CL_DEVICE_VENDOR_ID, Cuint) + return get_scalar(CL_DEVICE_VENDOR_ID, cl_uint) elseif s === :max_compute_units - return get_scalar(CL_DEVICE_MAX_COMPUTE_UNITS, Cuint) + return get_scalar(CL_DEVICE_MAX_COMPUTE_UNITS, cl_uint) elseif s === :max_work_item_dims - return get_scalar(CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS, Cuint) + return get_scalar(CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS, cl_uint) elseif s === :max_clock_frequency - return get_scalar(CL_DEVICE_MAX_CLOCK_FREQUENCY, Cuint) + return get_scalar(CL_DEVICE_MAX_CLOCK_FREQUENCY, cl_uint) elseif s === :address_bits - return get_scalar(CL_DEVICE_ADDRESS_BITS, Cuint) + return get_scalar(CL_DEVICE_ADDRESS_BITS, cl_uint) elseif s === :max_read_image_args - return get_scalar(CL_DEVICE_MAX_READ_IMAGE_ARGS, Cuint) + return get_scalar(CL_DEVICE_MAX_READ_IMAGE_ARGS, cl_uint) elseif s === :max_write_image_args - return get_scalar(CL_DEVICE_MAX_WRITE_IMAGE_ARGS, Cuint) + return get_scalar(CL_DEVICE_MAX_WRITE_IMAGE_ARGS, cl_uint) elseif s === :global_mem_size - return get_scalar(CL_DEVICE_GLOBAL_MEM_SIZE, Culong) + return get_scalar(CL_DEVICE_GLOBAL_MEM_SIZE, cl_ulong) elseif s === :max_mem_alloc_size - return get_scalar(CL_DEVICE_MAX_MEM_ALLOC_SIZE, Culong) + return get_scalar(CL_DEVICE_MAX_MEM_ALLOC_SIZE, cl_ulong) elseif s === :max_const_buffer_size - return get_scalar(CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE, Culong) + return get_scalar(CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE, cl_ulong) elseif s === :local_mem_size - return get_scalar(CL_DEVICE_LOCAL_MEM_SIZE, Culong) + return get_scalar(CL_DEVICE_LOCAL_MEM_SIZE, cl_ulong) elseif s === :max_work_group_size return get_scalar(CL_DEVICE_MAX_WORK_GROUP_SIZE, Csize_t) elseif s === :max_parameter_size diff --git a/lib/cl/event.jl b/lib/cl/event.jl index e1e5b723..42a914cf 100644 --- a/lib/cl/event.jl +++ b/lib/cl/event.jl @@ -220,7 +220,7 @@ function Base.getproperty(evt::AbstractEvent, s::Symbol) function profiling_info(evt::AbstractEvent, profile_info) time = Ref{Clong}(0) try - clGetEventProfilingInfo(evt, profile_info, sizeof(Culong), time, C_NULL) + clGetEventProfilingInfo(evt, profile_info, sizeof(cl_ulong), time, C_NULL) catch err if isa(err, CLError) && err.code == CL_PROFILING_INFO_NOT_AVAILABLE if evt.status != :complete diff --git a/lib/cl/kernel.jl b/lib/cl/kernel.jl index 3ed01428..8aba3b82 100644 --- a/lib/cl/kernel.jl +++ b/lib/cl/kernel.jl @@ -319,9 +319,9 @@ function Base.getproperty(ki::KernelWorkGroupInfo, s::Symbol) elseif s == :compile_size Int.(get(CL_KERNEL_COMPILE_WORK_GROUP_SIZE, NTuple{3, Csize_t})) elseif s == :local_mem_size - Int(get(CL_KERNEL_LOCAL_MEM_SIZE, Culong)) + Int(get(CL_KERNEL_LOCAL_MEM_SIZE, cl_ulong)) elseif s == :private_mem_size - Int(get(CL_KERNEL_PRIVATE_MEM_SIZE, Culong)) + Int(get(CL_KERNEL_PRIVATE_MEM_SIZE, cl_ulong)) elseif s == :prefered_size_multiple Int(get(CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE, Csize_t)) else diff --git a/lib/cl/libopencl.jl b/lib/cl/libopencl.jl index 78f21377..c906de7b 100644 --- a/lib/cl/libopencl.jl +++ b/lib/cl/libopencl.jl @@ -17,9 +17,12 @@ function check(f) return end -const __darwin_intptr_t = Clong - -const intptr_t = __darwin_intptr_t +# TODO: add this to the generator +const intptr_t = if sizeof(Ptr{Cvoid}) == 8 + Int64 +else + Int32 +end const cl_int = Int32 diff --git a/test/kernel.jl b/test/kernel.jl index 40c9dc10..442aa604 100644 --- a/test/kernel.jl +++ b/test/kernel.jl @@ -132,7 +132,7 @@ structkernel = cl.Kernel(prg, "structest") out = CLArray{Float32}(undef, 2) bstruct = (1, Int32(4)) - clcall(structkernel, Tuple{Ptr{Float32}, Tuple{Clong, Cint}}, out, bstruct) + clcall(structkernel, Tuple{Ptr{Float32}, Tuple{Int64, Cint}}, out, bstruct) @test Array(out) == [1f0, 4f0] end