Skip to main content
Inspiring
November 22, 2024
Solved

OpenCL broken 💔 after v71 update 😢

  • November 22, 2024
  • 14 replies
  • 3733 views

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

Need help fixing issue

    This topic has been closed for replies.
    Best answer by Dens1ty

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

    14 replies

    Participant
    November 24, 2024

    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

    BenjibushAuthor
    Inspiring
    November 24, 2024

    - `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

     

    Participant
    November 24, 2024

    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.

    BenjibushAuthor
    Inspiring
    November 24, 2024

    Dark times 😪

     

    Inspiring
    November 24, 2024

    "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)

    Participant
    November 24, 2024

    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. 

    Participant
    November 24, 2024

    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.

    Inspiring
    November 25, 2024

    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)

    Dens1tyAnswer
    Inspiring
    December 6, 2024

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

    BenjibushAuthor
    Inspiring
    December 6, 2024

    Thanks for response. Still waiting for v72 update here.