The State Of OpenGL 3/4 Support In Mesa/Gallium3D
With updated documentation in the Mesa tree, here's a look at what's left to be accomplished for the Mesa drivers to catch up with the latest upstream Khronos specifications for OpenGL 3.x and OpenGL 4.x.
The ARB_ES3_compatibility extension as mandated by the desktop OpenGL 4.3 standard is now written off as done within the documentation, thanks to Intel OTC quickly doing OpenGL ES 3.0 support in Mesa, so now the overall list appears as:
GL 3.2: Core/compatibility profiles DONE GLSL 1.50 not started Geometry shaders (GL_ARB_geometry_shader4) partially done (Zack) BGRA vertex order (GL_ARB_vertex_array_bgra) DONE (i965, r300, r600, swrast) Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE (i965, r300, r600, swrast) Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (i965, r300, r600, swrast) Provoking vertex (GL_ARB_provoking_vertex) DONE (i965, r300, r600, swrast) Seamless cubemaps (GL_ARB_seamless_cube_map) DONE (i965, r600) Multisample textures (GL_ARB_texture_multisample) DONE (i965) Frag depth clamp (GL_ARB_depth_clamp) DONE (i965, r600, swrast) Fence objects (GL_ARB_sync) DONE (i965, r300, r600, swrast) GLX_ARB_create_context_profile DONE GL 3.3: GLSL 3.30 new features in this version pretty much done GL_ARB_blend_func_extended DONE (i965, r600, softpipe) GL_ARB_explicit_attrib_location DONE (i915, i965, r300, r600, swrast) GL_ARB_occlusion_query2 DONE (i965, r300, r600, swrast) GL_ARB_sampler_objects DONE (i965, r300, r600) GL_ARB_shader_bit_encoding DONE GL_ARB_texture_rgb10_a2ui DONE (i965, r600) GL_ARB_texture_swizzle DONE (same as EXT version) (i965, r300, r600, swrast) GL_ARB_timer_query DONE (i965, r600) GL_ARB_instanced_arrays DONE (i965, r300, r600) GL_ARB_vertex_type_2_10_10_10_rev DONE (i965, r600) GL 4.0: GLSL 4.0 not started GL_ARB_texture_query_lod not started GL_ARB_draw_buffers_blend DONE (i965, r600, softpipe) GL_ARB_draw_indirect not started GL_ARB_gpu_shader5 not started GL_ARB_gpu_shader_fp64 not started GL_ARB_sample_shading not started GL_ARB_shader_subroutine not started GL_ARB_tessellation_shader not started GL_ARB_texture_buffer_object_rgb32 DONE (i965, softpipe) GL_ARB_texture_cube_map_array DONE (i965, softpipe) GL_ARB_texture_gather not started GL_ARB_transform_feedback2 DONE GL_ARB_transform_feedback3 DONE GL 4.1: GLSL 4.1 not started GL_ARB_ES2_compatibility DONE (i965, r300, r600) GL_ARB_get_program_binary DONE (0 binary formats) GL_ARB_separate_shader_objects some infrastructure done GL_ARB_shader_precision not started GL_ARB_vertex_attrib_64bit not started GL_ARB_viewport_array not started GL 4.2: GLSL 4.2 not started GL_ARB_texture_compression_bptc not started GL_ARB_compressed_texture_pixel_storage not started GL_ARB_shader_atomic_counters not started GL_ARB_texture_storage DONE (i965, r300, r600, swrast, gallium) GL_ARB_transform_feedback_instanced DONE GL_ARB_base_instance DONE (i965, nv50, nvc0, r600, radeonsi) GL_ARB_shader_image_load_store not started GL_ARB_conservative_depth DONE (softpipe) GL_ARB_shading_language_420pack not started GL_ARB_internalformat_query DONE (i965, gallium) GL_ARB_map_buffer_alignment DONE (r300, r600, radeonsi) GL 4.3: GLSL 4.3 not started ARB_arrays_of_arrays not started ARB_ES3_compatibility DONE (i965) ARB_clear_buffer_object not started ARB_compute_shader started (gallium) ARB_copy_image not started KHR_debug some work done (ARB_debug_output) ARB_explicit_uniform_location not started ARB_fragment_layer_viewport not started ARB_framebuffer_no_attachments not started ARB_internalformat_query2 not started ARB_invalidate_subdata not started ARB_multi_draw_indirect not started ARB_program_interface_query not started ARB_robust_buffer_access_behavior not started ARB_shader_image_size not started ARB_shader_storage_buffer_object not started ARB_stencil_texturing not started ARB_texture_buffer_range DONE (nv50, nvc0) ARB_texture_query_levels not started ARB_texture_storage_multisample not started ARB_texture_view not started ARB_vertex_attrib_binding not startedFor reaching OpenGL 3.2 compliance, most of what's left is OpenGL Shading Language (GLSL) 1.50 support along with bits of the geometry shaders enablement. After that, OpenGL 3.3 will quickly come into place.
OpenGL 4.x features though, however, have a lot of work until they'll be found fully implemented in Mesa/Gallium3D... Don't expect them in 2013. It's going to be a long time until OpenGL 4.3 compliance is found in Mesa, which is sad considering the next Khronos OpenGL specification update is right around the corner.
Latest Linux Hardware Reviews
Latest Linux Articles
Latest Linux News
Latest Forum Discussions