Digging into the actual root cause, QOpenGLES3Helper has QLibrary load "libGLESv2.so" but this is failing. Using LD_DEBUG=libs you can see:
5646: find library=libGLESv2.so [0]; searching
5646: search path=/vendor/lib:/system/lib (LD_LIBRARY_PATH)
5646: trying file=/vendor/lib/libGLESv2.so
5646: trying file=/system/lib/libGLESv2.so
5646: search cache=/etc/ld.so.cache
5646: search path=/lib/arm-linux-gnueabihf:/usr/lib/arm-linux-gnueabihf/vfp:/usr/lib/arm-linux-gnueabihf:/lib/tls/v7l/neon/vfp:/lib/tls/v7l/neon:/lib/tls/v7l/vfp:/lib/tls/v7l:/lib/tls/neon/vfp:/lib/tls/neon:/lib/tls/vfp:/lib/tls:/lib/v7l/neon/vfp:/lib/v7l/neon:/lib/v7l/vfp:/lib/v7l:/lib/neon/vfp:/lib/neon:/lib/vfp:/lib:/usr/lib/tls/v7l/neon/vfp:/usr/lib/tls/v7l/neon:/usr/lib/tls/v7l/vfp:/usr/lib/tls/v7l:/usr/lib/tls/neon/vfp:/usr/lib/tls/neon:/usr/lib/tls/vfp:/usr/lib/tls:/usr/lib/v7l/neon/vfp:/usr/lib/v7l/neon:/usr/lib/v7l/vfp:/usr/lib/v7l:/usr/lib/neon/vfp:/usr/lib/neon:/usr/lib/vfp:/usr/lib (system search path)
and off it goes searching all those paths.
Problem is the library is actually called libGLESv2.so.2 on hybris. Qt isn't able to locate the file as a result. I don't know if the library should be called libGLESv2.so only for GLESv3, but if so, it would explain a lot.
For fun, I symlinked libGLESv2.so.2 to libGLESv2.so, for which I got this error:
"OpenGL ES 3.0 entry points not found"
which makes sense as hybris is only exporting GLESv2 symbols, and nothing from GLESv3 yet.
So my patch above is actually the best solution until hybris supports GLESv3.
Digging into the actual root cause, QOpenGLES3Helper has QLibrary load "libGLESv2.so" but this is failing. Using LD_DEBUG=libs you can see:
5646: find library= libGLESv2. so [0]; searching lib:/system/ lib (LD_LIBRARY_PATH) lib/libGLESv2. so lib/libGLESv2. so etc/ld. so.cache arm-linux- gnueabihf: /usr/lib/ arm-linux- gnueabihf/ vfp:/usr/ lib/arm- linux-gnueabihf :/lib/tls/ v7l/neon/ vfp:/lib/ tls/v7l/ neon:/lib/ tls/v7l/ vfp:/lib/ tls/v7l: /lib/tls/ neon/vfp: /lib/tls/ neon:/lib/ tls/vfp: /lib/tls: /lib/v7l/ neon/vfp: /lib/v7l/ neon:/lib/ v7l/vfp: /lib/v7l: /lib/neon/ vfp:/lib/ neon:/lib/ vfp:/lib: /usr/lib/ tls/v7l/ neon/vfp: /usr/lib/ tls/v7l/ neon:/usr/ lib/tls/ v7l/vfp: /usr/lib/ tls/v7l: /usr/lib/ tls/neon/ vfp:/usr/ lib/tls/ neon:/usr/ lib/tls/ vfp:/usr/ lib/tls: /usr/lib/ v7l/neon/ vfp:/usr/ lib/v7l/ neon:/usr/ lib/v7l/ vfp:/usr/ lib/v7l: /usr/lib/ neon/vfp: /usr/lib/ neon:/usr/ lib/vfp: /usr/lib (system search path)
5646: search path=/vendor/
5646: trying file=/vendor/
5646: trying file=/system/
5646: search cache=/
5646: search path=/lib/
and off it goes searching all those paths.
Problem is the library is actually called libGLESv2.so.2 on hybris. Qt isn't able to locate the file as a result. I don't know if the library should be called libGLESv2.so only for GLESv3, but if so, it would explain a lot.
For fun, I symlinked libGLESv2.so.2 to libGLESv2.so, for which I got this error:
"OpenGL ES 3.0 entry points not found"
which makes sense as hybris is only exporting GLESv2 symbols, and nothing from GLESv3 yet.
So my patch above is actually the best solution until hybris supports GLESv3.