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. | |