powervr-graphics / Native_SDK

C++ cross-platform 3D graphics SDK. Includes demos & helper code (resource loading etc.) to speed up development of Vulkan, OpenGL ES 2.0 & 3.x applications
https://docs.imgtec.com/sdk-documentation/html/introduction.html
MIT License
702 stars 197 forks source link

[BUG] OpenGL ES 2 doesn't work for any examples #73

Open iRonJ opened 2 years ago

iRonJ commented 2 years ago

Description

I've followed the build instructions on a BeagleBone Black using a stock image for imgtec: AM3358 Debian 9.12 2020-04-06 4GB SD ImgTec https://beagleboard.org/latest-images https://www.imaginationtech.com/blog/fun-with-powervr-and-the-beaglebone-black-low-cost-development-made-easy/

The NativeSDK builds, but running any of the OpenGLES examples, except for HelloAPI, fail with the message that only OpenGL ES 3.0 is supported. Is there a way to only build for 2.0?

Repro steps

Build a BBB image from this imp: https://debian.beagleboard.org/images/bone-debian-9.12-imgtec-armhf-2020-04-06-4gb.img.xz

Run the build/make commands. At some point the build will fail then you need to copy this Lib: sudo cp /opt/Native_SDK/lib/Linux_armv7hf/libPVRScopeDeveloper.a /opt/Native_SDK/lib/Linux_armv7l

Restart the build process and it should succeed.

Run the OpenGL Examples. They should fail with a message like:

bin/OpenGLESImageBasedLighting
Opened '/dev/tty' for input
Host library 'libEGL.so' loaded
EGL Bindings: Successfully loaded library libEGL.so

Trying to create context for all configs.
Failed to create context for any configs. Tried 0 configs.
OpenGL ES 3.1 NOT supported. Trying lower version...
Trying to create context for all configs.
Failed to create context for any configs. Tried 0 configs.
OpenGL ES 3.0 NOT supported. Trying lower version...
Trying to create context for all configs.
EGL context creation: EGL_KHR_create_context supported
SUCCESS creating context! Reporting success. (Used config #0) .
Maximum API level detected: OpenGL ES 2.0
Exit message set to: InitView threw a runtime exception with message: 'InvalidOperationError (Specified operation could not be performed) : [EglContext::init]: API level requested [OpenGL ES 3.1] was not supported. Max supported API level on this device is [OpenGL ES 2.0]

Environment

Additional Info

HelloAPI works and OpenGLESIntroducingPVRUtils works

The precompiled binaries here for some older unknown version of the SDK also fully work: git://git.ti.com/graphics/img-pvr-sdk.git