Skip to content

[BUG] opencl-interop get_device_type always returns DeviceType::ALL #382

Description

@nikhilr612

Description

The get_device_type function transmutes the value -1 into DeviceType or returns DeviceType::ALL; however, the enum variant that corresponds to the value (-1i32 as u64)isDeviceType::ALL. This does not seem to be the intended behaviour.

///// Fetch Active ArrayFire device's type i.e. CPU/GPU/Accelerator etc.pubfnget_device_type() -> DeviceType{letmut out:i32 = 0;let err_val = unsafe{afcl_get_device_type(&mut out as*mutc_int)};handle_error_general(AfError::from(err_val));match out {
-1 => unsafe{ mem::transmute(out asu64)},
_ => DeviceType::ALL,}}

The value of -1 corresponds to AFCL_DEVICE_TYPE_UNKNOWN in arrayfire, whilst -1 corresponds to CL_DEVICE_TYPE_ALL in cl-sys

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions