cancel
Showing results forΒ 
Search instead forΒ 
Did you mean:Β 

OpenCL broken πŸ’” after v71 update 😒

Benjibush
Explorer

After updating quest 3s headset to v71 OpenCL is not working. When headset used v6x OpenCl was working.

Need help fixing issue

1 ACCEPTED SOLUTION

Accepted Solutions

Dens1ty
Protege

I've checked v72 on Quest 3 right now and OpenCV with OpenCL works again

View solution in original post

14 REPLIES 14

Seems Meta dropped support for OpenCL. In `/etc/public.libraries.txt`, `libOpenCL.so` is removed while `/vendor/lib/libOpenCL.so` and `/vendor/lib/libOpenCL_adreno.so` exists. I don't know why but they just silently dropped. I think there are some workaround for this (which I haven't tried yet).
- `adb pull /vender/lib/libOpenCL.so` and package it into apk

- Use vulkan compute pipeline

Benjibush
Explorer

- `adb pull /vender/lib/libOpenCL.so` and package it into apk

I have pulled it, but not packaged it, as I am not the apk developer

- Use vulkan compute pipeline

the Dev is using opencl for computation handling

 

//////// Is there any official word on meta quest dropping opencl in v71

 

I could not find any official words for this. But if `/etc/public.libraries.txt` does not list `libOpenCL.so`, there is no way to access it from the userspace. I don't know if this is a deliberate decision or not.

I just tried copying `/vendor/lib64/libOpenCL.so` to `/data/local/tmp` and explicitly `dlopen`ed it, but another error occurs, which seems it cannot be fixed without su (libOpenCL.so tries to dynamically link libc++.so).

Sadly, it seems there is no way to dynamically use OpenCL for now.

Benjibush
Explorer

Dark times πŸ˜ͺ

 

Dens1ty
Protege

"libOpenCL.so" is listed now in "/vendor/etc/public.libraries.txt" and not in "/system/etc/public.libraries.txt". I also faced the problem while using OpenCV (with OpenCL enabled) on Quest 3. It worked some time ago (probably before v71)

1.jpg

@Dens1ty Thanks for the correction! I also confirmed "libOpenCL.so" is listed in /vendor/etc/public.libraries.txt, but not in /system/etc/public.libraries.txt. 

The issue might be related to libc++.so.

The file /vendor/etc/public.libraries.txt includes libOpenCL.so, so it should function normally.

However, libOpenCL.so depends on several shared libraries, including libc++.so, libc.so, libm.so, and libdl.so. This can be verified using the readelf -d command. Despite this, libc++.so is absent from /system/etc/public.libraries.txt.

Dens1ty
Protege

Here are Quest 3 v71 on the left and Quest 2 v68 on the right:
(now i doubt the problem is linked with public libs)

1.jpg2.jpg