Using glTexStorage2D and glTexStorage3D

glTexStorage2D and glTexStorage3D were introduced in OpenGL ES 3.0. They provide a mechanism to define immutable-format textures. These are textures where the format and dimensions of all levels cannot be altered after their creation. The main benefit of immutable-format textures is that they reduce the amount of validation the driver must perform. Texture format validation is performed up front and only once for all texture levels.