No joy :-( I think this is only a problem with Google Phones though. The original Pixel had this problem too (according to the internet) Why Google!?
 
I wrote a script to pull & inspect :
 
$ ./inspect_wrapper cl
/system/lib/libGLESv1_CM.so
         U __aeabi_memclr
/system/lib/libGLESv3.so
         U __aeabi_memclr
/system/lib/libGLESv2.so
         U __aeabi_memclr
/system/lib/libEGL.so
         U _ZNSt3__16chrono12steady_clock3nowEv
         U _ZNSt3__18ios_base5clearEj
         U __aeabi_memclr
         U close
         U closedir
         U dlclose
/system/lib64/libGLESv1_CM.so
/system/lib64/libGLESv3.so
/system/lib64/libGLESv2.so
/system/lib64/libEGL.so
                 U _ZNSt3__16chrono12steady_clock3nowEv
                 U _ZNSt3__18ios_base5clearEj
                 U close
                 U closedir
                 U dlclose
/vendor/lib/egl/libGLESv2_adreno.so
001cd173 T _Z37ExpandFullSurfaceRectToIncludePaddingP7BltRectPK10BltSurface
001a8edf T _ZN10EsxMemPool23RecycleBufferDescriptorEP13EsxBufferDesc
0015b97d T _ZN14EglClEventSync24GetGslSyncObjFromClEventEP9_cl_eventPP11gsl_syncobj
0013315b T _ZN16EsxTextureObject15ReclaimResourceEP10EsxContext
002f8d11 T _ZN17A5xOcclusionQuery10HwIssueEndE17EsxQueryEndReason
002fb7a1 T _ZN17A5xOcclusionQuery12CreateObjectEv
002f8c1d T _ZN17A5xOcclusionQuery12HwIssueBeginE19EsxQueryBeginReason
002f8e11 T _ZN17A5xOcclusionQuery18WriteQueryCommandsE13EsxCmdBufTypei
002f8bb3 T _ZN17A5xOcclusionQuery6HwInitEPK18EsxQueryCreateData
002f8dd1 T _ZN17A5xOcclusionQuery9HwGetDataEv
002fb78d T _ZN17A5xOcclusionQueryC1Ev
002fb78d T _ZN17A5xOcclusionQueryC2Ev
002f8ba1 T _ZN17A5xOcclusionQueryD0Ev
002f9511 T _ZN17A5xOcclusionQueryD1Ev
002f9511 T _ZN17A5xOcclusionQueryD2Ev
0018823d T _ZN9EsxCmdMgr20RecycleBucketBufDescEP13EsxBufferDesc
00402414 D _ZTV17A5xOcclusionQuery
         w __aeabi_memclr
         w __aeabi_memclr4
         w __aeabi_memclr8
         U clock_gettime
         U close
         U dlclose
         U fclose
         U gsl_device_close
         U gsl_library_close
         U gsl_syncobj_clone
/vendor/lib/egl/libEGL_adreno.so
         w __aeabi_memclr4
         w __aeabi_memclr8
         U clock_gettime
         U close
         U dlclose
         U fclose
/vendor/lib/egl/libGLESv1_CM_adreno.so
         U fclose
/vendor/lib64/egl/libGLESv2_adreno.so
000000000021996c T _Z37ExpandFullSurfaceRectToIncludePaddingP7BltRectPK10BltSurface
00000000001f6f30 T _ZN10EsxMemPool23RecycleBufferDescriptorEP13EsxBufferDesc
00000000001af19c T _ZN14EglClEventSync24GetGslSyncObjFromClEventEP9_cl_eventPP11gsl_syncobj
0000000000181d38 T _ZN16EsxTextureObject15ReclaimResourceEP10EsxContext
00000000002ca9fc T _ZN17A5xOcclusionQuery10HwIssueEndE17EsxQueryEndReason
00000000002cde00 T _ZN17A5xOcclusionQuery12CreateObjectEv
00000000002ca870 T _ZN17A5xOcclusionQuery12HwIssueBeginE19EsxQueryBeginReason
00000000002cabbc T _ZN17A5xOcclusionQuery18WriteQueryCommandsE13EsxCmdBufTypei
00000000002ca7ec T _ZN17A5xOcclusionQuery6HwInitEPK18EsxQueryCreateData
00000000002cab48 T _ZN17A5xOcclusionQuery9HwGetDataEv
00000000002cdde4 T _ZN17A5xOcclusionQueryC1Ev
00000000002cdde4 T _ZN17A5xOcclusionQueryC2Ev
00000000002ca7b8 T _ZN17A5xOcclusionQueryD0Ev
00000000002cb370 T _ZN17A5xOcclusionQueryD1Ev
00000000002cb370 T _ZN17A5xOcclusionQueryD2Ev
00000000001d9e28 T _ZN9EsxCmdMgr20RecycleBucketBufDescEP13EsxBufferDesc
00000000005fbef8 D _ZTV17A5xOcclusionQuery
                 U clock_gettime
                 U close
                 U dlclose
                 U fclose
                 U gsl_device_close
                 U gsl_library_close
                 U gsl_syncobj_clone
/vendor/lib64/egl/libEGL_adreno.so
                 U clock_gettime
                 U close
                 U dlclose
                 U fclose
/vendor/lib64/egl/libGLESv1_CM_adreno.so
                 U fclose
 
 
Sent: Wednesday, April 04, 2018 at 1:29 PM
From: "René Hansen" <ren...@gmail.com>
To: "Jason H" <jh...@gmx.com>
Cc: "interestqt-project.org" <interest@qt-project.org>
Subject: Re: [Interest] Video Filters on Android
I don't have a Pixel myself, but have you checked that OpenCL isn't rolled up into /vendor/lib/egl/libEGL_adreno.so. I know that is the case for some phones with Mali chipsets at least. Here's a list of cl symbols from one I pulled from a Samsung Galaxy S7:
 
$ ~/Code/Android/android-ndk-r10e/toolchains/x86_64-4.9/prebuilt/darwin-x86_64/bin/x86_64-linux-android-nm -D ~/Code/Android/samsunggalaxys7/lib/egl/libGLES_mali.so | ag '\bcl[A-Z]'
006823a0 T clBuildProgram
00682584 T clCompileProgram
006808d0 T clCreateBuffer
00688078 T clCreateBufferFromEGLImageARM
00680568 T clCreateCommandQueue
0067fe18 T clCreateContext
006801b4 T clCreateContextFromType
00687db4 T clCreateEventFromEGLSyncKHR
00687e94 T clCreateFromEGLImageKHR
00686f68 T clCreateFromGLBuffer
00687784 T clCreateFromGLRenderbuffer
00687140 T clCreateFromGLTexture
00687398 T clCreateFromGLTexture2D
0068758c T clCreateFromGLTexture3D
00680dc0 T clCreateImage
006816ac T clCreateImage2D
0068176c T clCreateImage3D
00682c24 T clCreateKernel
00682ce0 T clCreateKernelsInProgram
00682008 T clCreateProgramWithBinary
006821dc T clCreateProgramWithBuiltInKernels
00681ef8 T clCreateProgramWithSource
00681c8c T clCreateSampler
00680adc T clCreateSubBuffer
00680148 T clCreateSubDevices
00683334 T clCreateUserEvent
00688244 T clEnqueueAcquireEGLObjectsKHR
00687a04 T clEnqueueAcquireGLObjects
00686cbc T clEnqueueBarrier
00686ae8 T clEnqueueBarrierWithWaitList
006841d8 T clEnqueueCopyBuffer
00684414 T clEnqueueCopyBufferRect
00685828 T clEnqueueCopyBufferToImage
00685098 T clEnqueueCopyImage
006854e4 T clEnqueueCopyImageToBuffer
00683fec T clEnqueueFillBuffer
00684e7c T clEnqueueFillImage
00685b6c T clEnqueueMapBuffer
00685dfc T clEnqueueMapImage
00686b98 T clEnqueueMarker
00686a38 T clEnqueueMarkerWithWaitList
006862d0 T clEnqueueMigrateMemObjects
00686460 T clEnqueueNDRangeKernel
00686794 T clEnqueueNativeKernel
0068365c T clEnqueueReadBuffer
00683820 T clEnqueueReadBufferRect
0068476c T clEnqueueReadImage
00688414 T clEnqueueReleaseEGLObjectsKHR
00687bdc T clEnqueueReleaseGLObjects
00686688 T clEnqueueTask
006861c0 T clEnqueueUnmapMemObject
00686c00 T clEnqueueWaitForEvents
00683b20 T clEnqueueWriteBuffer
00683ce4 T clEnqueueWriteBufferRect
00684af4 T clEnqueueWriteImage
00683614 T clFinish
006835cc T clFlush
0068078c T clGetCommandQueueInfo
006804e4 T clGetContextInfo
0067fd04 T clGetDeviceIDs
0067fda8 T clGetDeviceInfo
006832ac T clGetEventInfo
00683548 T clGetEventProfilingInfo
00686d3c T clGetExtensionFunctionAddress
00686d14 T clGetExtensionFunctionAddressForPlatform
00686d4c T clGetGLContextInfoKHR
00687940 T clGetGLObjectInfo
00687988 T clGetGLTextureInfo
00681b20 T clGetImageInfo
006830bc T clGetKernelArgInfo
00683034 T clGetKernelInfo
00683140 T clGetKernelWorkGroupInfo
00681a9c T clGetMemObjectInfo
0067fc58 T clGetPlatformIDs
0067fca4 T clGetPlatformInfo
00682b64 T clGetProgramBuildInfo
00682adc T clGetProgramInfo
00681e70 T clGetSamplerInfo
006818bc T clGetSupportedImageFormats
0067fca0 T clIcdGetPlatformIDsKHR
006885e0 T clImportMemoryARM
00682834 T clLinkProgram
00680744 T clReleaseCommandQueue
0068049c T clReleaseContext
00680190 T clReleaseDevice
00683420 T clReleaseEvent
00682db0 T clReleaseKernel
00681874 T clReleaseMemObject
00682358 T clReleaseProgram
00681e28 T clReleaseSampler
006806fc T clRetainCommandQueue
00680454 T clRetainContext
0068016c T clRetainDevice
006833d8 T clRetainEvent
00682d68 T clRetainKernel
0068182c T clRetainMemObject
00682310 T clRetainProgram
00681de0 T clRetainSampler
00680814 T clSetCommandQueueProperty
006834cc T clSetEventCallback
00682df8 T clSetKernelArg
00681c28 T clSetMemObjectDestructorCallback
00683468 T clSetUserEventStatus
00682ad4 T clUnloadCompiler
00682ab8 T clUnloadPlatformCompiler
00683240 T clWaitForEvents

I haven't actually found out how to properly link against the _<chipset> named libs yet however, because it seems when running a Qt based app, Dalvik only provides /system/lib and /vendor/lib as library load paths and not /vendor/lib/egl. I sent another mail to the list regarding this specific issue a couple of days ago, but no-one has answered it yet.


/René Hansen
 
On Wed, 4 Apr 2018 at 19:21 Jason H <jh...@gmx.com> wrote:
 I should find it there yes. But the irony is that I can't find it anywhere. Meanwhile the Samsung has it where you would expect. I'm looking for an OpenGL for it, but the Adreno SDK doesn't have it. Any idea where I mght find it?
 
Many thanks.
 
taimen:/ $ find . -name *CL*  2> /dev/null
./system/usr/srec/en-US/CLG.prewalk.fst

1|taimen:/ $ find . -name *GL*  2> /dev/null
./sys/bus/platform/drivers/GLINK_CTRL
./system/lib/libGLESv1_CM.so
./system/lib/libGLESv3.so
./system/lib/libGLESv2.so
./system/lib/libEGL.so
./system/lib64/libGLESv1_CM.so
./system/lib64/libGLESv3.so
./system/lib64/libGLESv2.so
./system/lib64/libEGL.so
./vendor/lib/egl/libGLESv2_adreno.so
./vendor/lib/egl/libEGL_adreno.so
./vendor/lib/egl/libGLESv1_CM_adreno.so
./vendor/lib64/egl/libGLESv2_adreno.so
./vendor/lib64/egl/libEGL_adreno.so
./vendor/lib64/egl/libGLESv1_CM_adreno.so
 
Vs. Samsung:
 
1|dream2lte:/ $ find . -name *GL*  2> /dev/null
./system/lib/egl/libGLES_android.so
./system/lib/libEGL.so
./system/lib/libGLESv1_CM.so
./system/lib/libGLESv2.so
./system/lib/libGLESv3.so
./system/lib/libSEC_EGL.so
./system/lib64/egl/libGLES_android.so
./system/lib64/libEGL.so
./system/lib64/libGLESv1_CM.so
./system/lib64/libGLESv2.so
./system/lib64/libGLESv3.so
./system/lib64/libSEC_EGL.so
./system/vendor/lib/egl/libGLES_mali.so

./system/vendor/lib64/egl/libGLES_mali.so
1|dream2lte:/ $ find . -name *enCL*  2> /dev/null
./system/vendor/lib/libOpenCL.so.1.1
./system/vendor/lib/libOpenCL.so
./system/vendor/lib/libOpenCL.so.1
./system/vendor/lib64/libOpenCL.so.1.1
./system/vendor/lib64/libOpenCL.so
./system/vendor/lib64/libOpenCL.so.1
 
Sent: Wednesday, April 04, 2018 at 12:07 PM

From: "René Hansen" <ren...@gmail.com>
To: "Jason H" <jh...@gmx.com>
Cc: "interestqt-project.org" <interest@qt-project.org>
Subject: Re: [Interest] Video Filters on Android
You'll probably find it at /vendor/lib/libOpenCL.so.

I'm not sure which version of OpenGL ES you need, but you have both versions available to link against using the NDK at least.

I've been wanting to do a writeup on the whole QML videofilter -> OpenCL pipeline through shared GL context, but haven't really found the time. There's not that many great examples to go by out there for Android and it seems to me at least, that it's a bit of a greenfield effort, even though the Qt guys have put in some great initial building blocks.


/René

 
 
On Wed, 4 Apr 2018 at 17:30 Jason H <jh...@gmx.com> wrote:
Thanks! I'm trying to do this on a Pixel 2 XL, but there is no libOpenCL.so on it! (directory listing included later)
 
I'm searching for it. I'm looking at the Aredno SDK, 
 
I'm sort of at a loss for what all I need to include for android. You mention GLESv2, but you also mention v3. 
 
taimen:/system/lib $ ls -1 lib*
lib-imsvideocodec.so
lib-imsvt.so
lib-imsvtextutils.so
lib-imsvtutils.so
libEGL.so
libETC1.so
libFFTEm.so
libGLESv1_CM.so
libGLESv2.so
libGLESv3.so
libOpenMAXAL.so
libOpenSLES.so
libRS.so
libRSCacheDir.so
libRSCpuRef.so
libRSDriver.so
libRS_internal.so
libRScpp.so
libaaudio.so
libaaudioservice.so
libandroid.so
libandroid_net.so
libandroid_runtime.so
libandroid_servers.so
libandroidfw.so
libappfuse.so
libart-compiler.so
libart-dexlayout.so
libart.so
libaudio-resampler.so
libaudioclient.so
libaudioeffect_jni.so
libaudioflinger.so
libaudiohal.so
libaudiomanager.so
libaudiopolicyenginedefault.so
libaudiopolicymanager.so
libaudiopolicymanagerdefault.so
libaudiopolicyservice.so
libaudioprocessing.so
libaudiospdif.so
libaudioutils.so
libbacktrace.so
libbase.so
libbcinfo.so
libbinder.so
libblas.so
libc++.so
libc.so
libc_malloc_debug.so
libcamera2ndk.so
libcamera_client.so
libcamera_metadata.so
libcameraservice.so
libchrome.so
libclcore.bc
libclcore_debug.bc
libclcore_debug_g.bc
libclcore_g.bc
libclcore_neon.bc
libcompiler_rt.so
libcrypto.so
libcutils.so
libdebuggerd_client.so
libdiag_system.so
libdl.so
libdmengine.so
libdmjavaplugin.so
libdng_sdk.so
libdrmframework.so
libdrmframework_jni.so
libdvr.so
libdvr_loader.so
libeaselcomm.so
libeffectsconfig.so
libevent.so
libexif.so
libexpat.so
libfilterfw.so
libfilterpack_facedetect.so
libfilterpack_imageproc.so
libfmq.so
libfrsdk.so
libft2.so
libgatekeeper.so
libgraphicsenv.so
libgui.so
libhardware.so
libhardware_legacy.so
libharfbuzz_ng.so
libheif.so
libhidlbase.so
libhidlmemory.so
libhidltransport.so
libhwbinder.so
libhwui.so
libicui18n.so
libicuuc.so
libimg_utils.so
libimscamera_jni.so
libimsmedia_jni.so
libinput.so
libinputflinger.so
libinputservice.so
libiprouteutil.so
libjavacore.so
libjavacrypto.so
libjnigraphics.so
libjpeg.so
libkeystore_binder.so
libldacBT_abr.so
libldacBT_enc.so
liblog.so
liblz4.so
liblzma.so
libm.so
libmdnssd.so
libmedia.so
libmedia_helper.so
libmedia_jni.so
libmedia_omx.so
libmediadrm.so
libmedialogservice.so
libmediametrics.so
libmediandk.so
libmediaplayerservice.so
libmediautils.so
libmemtrack.so
libmemunreachable.so
libmidi.so
libminikin.so
libmtp.so
libnativebridge.so
libnativehelper.so
libnativeloader.so
libnativewindow.so
libnbaio.so
libnetd_client.so
libnetlink.so
libnetutils.so
libneuralnetworks.so
libnl.so
libopenjdk.so
libopenjdkjvm.so
libopenjdkjvmti.so
libopus.so
libpac.so
libpackagelistparser.so
libpcre2.so
libpdfium.so
libpiex.so
libpixelflinger.so
libpng.so
libpower.so
libpowermanager.so
libprocessgroup.so
libprocinfo.so
libprotobuf-cpp-full.so
libprotobuf-cpp-lite.so
libradio_metadata.so
librcc.so
libresourcemanagerservice.so
librs_jni.so
librtp_jni.so
libschedulerservicehidl.so
libselinux.so
libsensor.so
libsensorservice.so
libsensorservicehidl.so
libserviceutility.so
libsigchain.so
libskia.so
libsoftkeymaster.so
libsonic.so
libsonivox.so
libsoundpool.so
libsoundtrigger.so
libsoundtriggerservice.so
libspeexresampler.so
libsqlite.so
libssl.so
libstagefright.so
libstagefright_amrnb_common.so
libstagefright_enc_common.so
libstagefright_flacdec.so
libstagefright_foundation.so
libstagefright_http_support.so
libstagefright_httplive.so
libstagefright_omx.so
libstagefright_omx_utils.so
libstagefright_soft_aacdec.so
libstagefright_soft_aacenc.so
libstagefright_soft_amrdec.so
libstagefright_soft_amrnbenc.so
libstagefright_soft_amrwbenc.so
libstagefright_soft_avcdec.so
libstagefright_soft_avcenc.so
libstagefright_soft_flacdec.so
libstagefright_soft_flacenc.so
libstagefright_soft_g711dec.so
libstagefright_soft_gsmdec.so
libstagefright_soft_hevcdec.so
libstagefright_soft_mp3dec.so
libstagefright_soft_mpeg2dec.so
libstagefright_soft_mpeg4dec.so
libstagefright_soft_mpeg4enc.so
libstagefright_soft_opusdec.so
libstagefright_soft_rawdec.so
libstagefright_soft_vorbisdec.so
libstagefright_soft_vpxdec.so
libstagefright_soft_vpxenc.so
libstagefright_wfd.so
libstagefright_xmlparser.so
libstdc++.so
libsurfaceflinger.so
libsurfaceflinger_ddmconnection.so
libsuspend.so
libsync.so
libsysutils.so
libtextclassifier.so
libtextclassifier_hash.so
libtinyxml2.so
libtombstoned_client.so
libui.so
libunwind.so
libusbhost.so
libutils.so
libvintf.so
libvixl-arm.so
libvixl-arm64.so
libvndksupport.so
libvorbisidec.so
libvulkan.so
libwebviewchromium_loader.so
libwebviewchromium_plat_support.so
libwifi-service.so
libwilhelm.so
libxml2.so
libz.so
libziparchive.so
 
 
Sent: Wednesday, April 04, 2018 at 4:54 AM
From: "René Hansen" <ren...@gmail.com>
To: "Jason H" <jh...@gmx.com>
Cc: "interestqt-project.org" <interest@qt-project.org>
Subject: Re: [Interest] Video Filters on Android
I never got that specific example to work, but assuming you're building with the Android NDK, you can include:
 
#include <GLES2/gl2.h>
#include <EGL/egl.h>
 
Which will give you access to eglGetCurrentContext().

I'm using the r10e ndk, since that's what works with Qt at the moment. GLES v3 is available in toolchain v21:
 
$ ls ~/Code/Android/android-ndk-r10e//platforms/android-21/arch-arm/usr/lib/
crtbegin_dynamic.o      libGLESv2.so            libdl.so                libstdc++.a
crtbegin_so.o           libGLESv3.so            libjnigraphics.so       libstdc++.so
crtbegin_static.o       libOpenMAXAL.so         liblog.so               libthread_db.so
crtend_android.o        libOpenSLES.so          libm.a                  libz.a
crtend_so.o             libandroid.so           libm.so                 libz.so
libEGL.so               libc.a                  libm_hard.a             rs
libGLESv1_CM.so         libc.so                 libmediandk.so

If you want to link against OpenCL, you still need to pull a libOpenCL.so from an actual device though.


/René
 
On Wed, 4 Apr 2018 at 01:52 Jason H <jh...@gmx.com> wrote:
http://blog.qt.io/blog/2015/03/20/introducing-video-filters-in-qt-multimedia/ announced video filter support, and hardware accelerated too!

Code: http://code.qt.io/cgit/qt/qtmultimedia.git/tree/examples/multimedia/video/qmlvideofilter_opencl

I'm trying to get it running on Android, but I'm going down a rabbit hole with OpenCL 2.0 and EGL 3.2. I have been hacking on it but I don't know where EGLContext is declared.

Had anyone gotten this running in Android?

Thanks!
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to