OpenGL extensions used in Kanzi

This table lists the OpenGL extensions that Kanzi uses.

Feature OpenGL extension Requirement
Binary shaders GL_ARB_get_program_binary
GL_OES_get_program_binary
If you use binary shaders, one of these extensions must be available, unless your platform supports OpenGL ES3 or higher. See Using binary shaders.
Debugging GL_KHR_debug If you call Renderer::logOpenGLInformation and this extension is available, Kanzi uses it.
Multisampling (MSAA) GL_NV_framebuffer_multisample
GL_ARB_framebuffer_object
GL_EXT_multisampled_render_to_texture
GL_IMG_multisampled_render_to_texture
If you use Composition Target Render Pass and you set multisampling to more than 0, one of these extensions must be available, unless your platform supports OpenGL ES3 or higher. See Rendering content to a composition target and Using multisampling.
Vertex formats GL_ARB_half_float_vertex
GL_OES_vertex_half_float
If you use half-float vertex formats, one of these extensions must be available, unless your platform supports OpenGL ES3 or higher. See Optimizing meshes.
Texture and render target formats GL_OES_rgb8_rgba8 extension If you use RGB8 render targets, Kanzi uses this extension, if it is available, unless your platform supports OpenGL ES3 or higher.
GL_ARB_half_float_pixel
GL_OES_texture_half_float_linear
GL_ARB_half_float_pixel
GL_EXT_color_buffer_half_float
GL_EXT_color_buffer_float
If in a texture or render target you select any float16 format, Kanzi uses these extensions, if they are available.
GL_ARB_texture_storage_multisample
GL_ARB_texture_storage
GL_EXT_texture_storage
Kanzi uses these extensions, if they are available, unless your platform supports OpenGL ES3 or higher.
GL_ETC1_RGB8_OES If you use ETC1 texture formats, the corresponding format out of these must be available. See Using the ETC algorithm.
GL_COMPRESSED_RGB8_ETC2
GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
GL_COMPRESSED_RGBA8_ETC2_EAC
If you use ETC2 texture formats, the corresponding format out of these must be available. See Using the ETC algorithm.
GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG
GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG
GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG
GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG
If you use PVRTC texture formats, the corresponding format out of these must be available. See Using the PVRTC algorithm.
GL_ATC_RGB_AMD
GL_ATC_RGBA_EXPLICIT_ALPHA_AMD
GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD
If you use ATC texture formats, the corresponding format out of these must be available. See Using the ATC algorithm.
GL_COMPRESSED_RGBA_ASTC_4x4
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4
GL_COMPRESSED_RGBA_ASTC_5x4
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4
GL_COMPRESSED_RGBA_ASTC_5x5
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5
GL_COMPRESSED_RGBA_ASTC_6x5
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5
GL_COMPRESSED_RGBA_ASTC_6x6
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6
GL_COMPRESSED_RGBA_ASTC_8x5
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5
GL_COMPRESSED_RGBA_ASTC_8x6
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6
GL_COMPRESSED_RGBA_ASTC_8x8
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8
GL_COMPRESSED_RGBA_ASTC_10x5
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5
GL_COMPRESSED_RGBA_ASTC_10x6
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6
GL_COMPRESSED_RGBA_ASTC_10x8
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8
GL_COMPRESSED_RGBA_ASTC_10x10
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10
GL_COMPRESSED_RGBA_ASTC_12x10
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10
GL_COMPRESSED_RGBA_ASTC_12x12
GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12
If you use ASTC texture formats, the corresponding format out of these must be available. See Using the ASTC algorithm.
GL_ARB_depth_texture
GL_OES_depth_texture
If you use 16-bit depth texture format, one of these extensions must be available, unless your platform supports OpenGLES3 or higher.
GL_OES_depth24
GL_ARB_depth_texture
If you use 24-bit depth texture formats, one of these extensions must be available, unless your platform supports OpenGLES3 or higher.
GL_OES_depth32
GL_ARB_depth_texture
If you use 32-bit depth texture formats, one of these extensions must be available, unless your platform supports OpenGLES3 or higher.
GL_EXT_packed_depth_stencil
GL_OES_packed_depth_stencil
If you use depth and stencil, one of these extensions must be available, unless your platform supports OpenGLES3 or higher.
GL_OES_stencil8 If you use stencil8 texture formats, this extension must be available, unless your platform supports OpenGLES3 or higher.
GL_EXT_texture_filter_anisotropic If you set anisotropic filtering in any of your textures, this extension must be available.
GL_ARB_seamless_cube_map Kanzi enables this extension, if it is available.
GL_EXT_texture_rg If you use RG textures, this extension must be available, unless your platform supports OpenGLES3 or higher.
     

See also

Using binary shaders

Rendering content to a composition target

Applying anti-aliasing

Optimizing meshes

Compressing textures

Textures

Using render target textures