Hi!
We have some c++ on android that creates a 3d texture via glTexImage3D.
According to the "Qualcomm Adreno OpenGL ES Developer Guide" I should be getting 16384 for the GL_MAX_3D_TEXTURE_SIZE constant for OpenGL 3.1 (page 97).
On my OnePlus 5, which is an Adreno 540 device, 2048 is returned by glGetIntegerv(GL_MAX_3D_TEXTURE_SIZE, ... )
Predictably if I try anything higher than 2048 for glTexImage3D I get GL_INVALID_VALUE (Which is the max defined for OpenGL 3.0 on page 73).
Could I be initializing OpenGl wrong ? Linking wrong ? (GLESv3)
My EGL returns version 1.5
glGetString(GL_VERSION): OpenGL ES 3.2 [email protected] (GIT@6209c5d, Ifdcc64d6e8, 1576143393) (Date:12/12/19)
glGetString(GL_RENDERER): Adreno (TM) 540
Do phone manufacturers override the limit ? Should I be getting 16384 ? Is anyone else getting that on an Adren 420+
I'm using visual studio, clang and egl.
Dear Customer
I just checked in Adreno GPU driver,
The GL_MAX_3D_TEXTURE_SIZE is really defined as 2048 in driver code. The GL_MAX_TEXTURE_SIZE and GL_MAX_CUBE_MAP_TEXTURE_SIZE are 16384.
But this old document really says that GL_MAX_3D_TEXTURE_SIZE 16384.
I will check with DEV team then update you again.
Thanks
Bob Du