[Mesa-dev] [PATCH v3] docs: expand "all drivers" to the list of drivers.

Ian Romanick idr at freedesktop.org
Thu Apr 14 16:54:00 UTC 2016


Sorry for not paying attention sooner... the problem with this is that
"all drivers" also means drivers that aren't (and won't be) in the list.
 It really means *all* drivers.  i915 and r300 support
ARB_sampler_objects, for example.  I think in nearly all cases "all
drivers" means that a driver cannot not support the extension (i.e., it
uses "dummy_true" in the extension table).  Changing it to a list
subtracts information.

The same applies to the extensions that say "all drivers that support GLSL."

A couple other comments below...

On 04/13/2016 06:58 PM, Romain Failliot wrote:
> At some place, "all drivers" wasn't useful anymore, the "all DONE" list
> already had all the currently supported drivers.
> 
> Also, the syntax "all drivers" isn't future proof, if a new drivers
> comes up (we never know) it will be considered done although by default
> it might not be.
> 
> Finally, expanding the drivers list allow to see that some drivers can
> be added to the "all DONE" section. It's the case for GL 4.1, 4.2 and
> GLES 3.1.
> ---
> 
> Third time is the charm! ;)
> 
> I've rebased to the latest master again (there's been a lot of changes
> on this file recently!)
> 
>  docs/GL3.txt | 102 ++++++++++++++++++++++++++++++-----------------------------
>  1 file changed, 52 insertions(+), 50 deletions(-)
> 
> diff --git a/docs/GL3.txt b/docs/GL3.txt
> index dc75cf8..52d8a21 100644
> --- a/docs/GL3.txt
> +++ b/docs/GL3.txt
> @@ -44,7 +44,7 @@ GL 3.0, GLSL 1.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, soft
>    GL_EXT_texture_shared_exponent                        DONE ()
>    GL_ARB_depth_buffer_float (Float depth buffers)       DONE ()
>    GL_ARB_framebuffer_object (Framebuffer objects)       DONE ()
> -  GL_ARB_half_float_pixel                               DONE (all drivers)
> +  GL_ARB_half_float_pixel                               DONE ()
>    GL_ARB_half_float_vertex                              DONE ()
>    GL_EXT_texture_integer                                DONE ()
>    GL_EXT_texture_array                                  DONE ()
> @@ -98,7 +98,7 @@ GL 3.3, GLSL 3.30 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, soft
>    GL_ARB_blend_func_extended                            DONE ()
>    GL_ARB_explicit_attrib_location                       DONE (all drivers that support GLSL)
>    GL_ARB_occlusion_query2                               DONE ()
> -  GL_ARB_sampler_objects                                DONE (all drivers)
> +  GL_ARB_sampler_objects                                DONE ()
>    GL_ARB_shader_bit_encoding                            DONE ()
>    GL_ARB_texture_rgb10_a2ui                             DONE ()
>    GL_ARB_texture_swizzle                                DONE ()
> @@ -136,47 +136,47 @@ GL 4.0, GLSL 4.00 --- all DONE: nvc0, r600, radeonsi
>    GL_ARB_transform_feedback3                            DONE (i965, nv50, llvmpipe, softpipe)
>  
>  
> -GL 4.1, GLSL 4.10 --- all DONE: nvc0, r600, radeonsi
> +GL 4.1, GLSL 4.10 --- all DONE: nvc0, r600, radeonsi, llvmpipe, softpipe

If llvmpipe and softpipe actually advertise OpenGL 4.1, then this is a
good change.  I don't see them on the 4.0 list.

>  
> -  GL_ARB_ES2_compatibility                              DONE (i965, nv50, llvmpipe, softpipe)
> +  GL_ARB_ES2_compatibility                              DONE (i965, nv50)
>    GL_ARB_get_program_binary                             DONE (0 binary formats)
> -  GL_ARB_separate_shader_objects                        DONE (all drivers)
> +  GL_ARB_separate_shader_objects                        DONE (i965, nv50)
>    GL_ARB_shader_precision                               DONE (all drivers that support GLSL 4.10)
> -  GL_ARB_vertex_attrib_64bit                            DONE (llvmpipe, softpipe)
> -  GL_ARB_viewport_array                                 DONE (i965, nv50, llvmpipe, softpipe)
> +  GL_ARB_vertex_attrib_64bit                            DONE ()
> +  GL_ARB_viewport_array                                 DONE (i965, nv50)
>  
>  
> -GL 4.2, GLSL 4.20 -- all DONE: radeonsi
> +GL 4.2, GLSL 4.20 --- all DONE: i965, radeonsi

At least i965 still only advertises OpenGL 3.3 (!), so I don't think
this change should happen yet.  The s/ -- / --- / is fine.

Stripping radeonsi from the explicit lists below is definitely correct.

>  
> -  GL_ARB_texture_compression_bptc                       DONE (i965, nvc0, r600, radeonsi)
> -  GL_ARB_compressed_texture_pixel_storage               DONE (all drivers)
> -  GL_ARB_shader_atomic_counters                         DONE (i965, nvc0, radeonsi, softpipe)
> -  GL_ARB_texture_storage                                DONE (all drivers)
> -  GL_ARB_transform_feedback_instanced                   DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
> -  GL_ARB_base_instance                                  DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
> -  GL_ARB_shader_image_load_store                        DONE (i965, radeonsi, softpipe)
> +  GL_ARB_texture_compression_bptc                       DONE (nvc0, r600)
> +  GL_ARB_compressed_texture_pixel_storage               DONE (nv50, nvc0, r600, llvmpipe, softpipe)
> +  GL_ARB_shader_atomic_counters                         DONE (nvc0, softpipe)
> +  GL_ARB_texture_storage                                DONE (nv50, nvc0, r600, llvmpipe, softpipe)
> +  GL_ARB_transform_feedback_instanced                   DONE (nv50, nvc0, r600, llvmpipe, softpipe)
> +  GL_ARB_base_instance                                  DONE (nv50, nvc0, r600, llvmpipe, softpipe)
> +  GL_ARB_shader_image_load_store                        DONE (softpipe)
>    GL_ARB_conservative_depth                             DONE (all drivers that support GLSL 1.30)
>    GL_ARB_shading_language_420pack                       DONE (all drivers that support GLSL 1.30)
> -  GL_ARB_shading_language_packing                       DONE (all drivers)
> -  GL_ARB_internalformat_query                           DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
> -  GL_ARB_map_buffer_alignment                           DONE (all drivers)
> +  GL_ARB_shading_language_packing                       DONE (nv50, nvc0, r600, llvmpipe, softpipe)
> +  GL_ARB_internalformat_query                           DONE (nv50, nvc0, r600, llvmpipe, softpipe)
> +  GL_ARB_map_buffer_alignment                           DONE (nv50, nvc0, r600, llvmpipe, softpipe)
>  
>  
> -GL 4.3, GLSL 4.30:
> +GL 4.3, GLSL 4.30
>  
>    GL_ARB_arrays_of_arrays                               DONE (all drivers that support GLSL 1.30)
>    GL_ARB_ES3_compatibility                              DONE (all drivers that support GLSL 3.30)
> -  GL_ARB_clear_buffer_object                            DONE (all drivers)
> +  GL_ARB_clear_buffer_object                            DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
>    GL_ARB_compute_shader                                 DONE (i965)
>    GL_ARB_copy_image                                     DONE (i965, nv50, nvc0, r600, radeonsi)
> -  GL_KHR_debug                                          DONE (all drivers)
> +  GL_KHR_debug                                          DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
>    GL_ARB_explicit_uniform_location                      DONE (all drivers that support GLSL)
>    GL_ARB_fragment_layer_viewport                        DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe)
>    GL_ARB_framebuffer_no_attachments                     DONE (i965, nvc0, r600, radeonsi, softpipe)
> -  GL_ARB_internalformat_query2                          DONE (all drivers)
> -  GL_ARB_invalidate_subdata                             DONE (all drivers)
> +  GL_ARB_internalformat_query2                          DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
> +  GL_ARB_invalidate_subdata                             DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
>    GL_ARB_multi_draw_indirect                            DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe)
> -  GL_ARB_program_interface_query                        DONE (all drivers)
> +  GL_ARB_program_interface_query                        DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
>    GL_ARB_robust_buffer_access_behavior                  DONE (radeonsi)
>    GL_ARB_shader_image_size                              DONE (i965, radeonsi, softpipe)
>    GL_ARB_shader_storage_buffer_object                   DONE (i965, nvc0, radeonsi, softpipe)
> @@ -185,12 +185,12 @@ GL 4.3, GLSL 4.30:
>    GL_ARB_texture_query_levels                           DONE (all drivers that support GLSL 1.30)
>    GL_ARB_texture_storage_multisample                    DONE (all drivers that support GL_ARB_texture_multisample)
>    GL_ARB_texture_view                                   DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
> -  GL_ARB_vertex_attrib_binding                          DONE (all drivers)
> +  GL_ARB_vertex_attrib_binding                          DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
>  
>  
> -GL 4.4, GLSL 4.40:
> +GL 4.4, GLSL 4.40
>  
> -  GL_MAX_VERTEX_ATTRIB_STRIDE                           DONE (all drivers)
> +  GL_MAX_VERTEX_ATTRIB_STRIDE                           DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
>    GL_ARB_buffer_storage                                 DONE (i965, nv50, nvc0, r600, radeonsi)
>    GL_ARB_clear_texture                                  DONE (i965, nv50, nvc0)
>    GL_ARB_enhanced_layouts                               in progress (Timothy)
> @@ -200,21 +200,21 @@ GL 4.4, GLSL 4.40:
>    - specified vec4-slot component numbers               in progress
>    - specified transform/feedback layout                 DONE
>    - input/output block locations                        DONE
> -  GL_ARB_multi_bind                                     DONE (all drivers)
> +  GL_ARB_multi_bind                                     DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
>    GL_ARB_query_buffer_object                            DONE (nvc0)
>    GL_ARB_texture_mirror_clamp_to_edge                   DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
>    GL_ARB_texture_stencil8                               DONE (nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
>    GL_ARB_vertex_type_10f_11f_11f_rev                    DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
>  
> -GL 4.5, GLSL 4.50:
> +GL 4.5, GLSL 4.50
>  
>    GL_ARB_ES3_1_compatibility                            not started
>    GL_ARB_clip_control                                   DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
>    GL_ARB_conditional_render_inverted                    DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
>    GL_ARB_cull_distance                                  in progress (Tobias)
>    GL_ARB_derivative_control                             DONE (i965, nv50, nvc0, r600, radeonsi)
> -  GL_ARB_direct_state_access                            DONE (all drivers)
> -  GL_ARB_get_texture_sub_image                          DONE (all drivers)
> +  GL_ARB_direct_state_access                            DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
> +  GL_ARB_get_texture_sub_image                          DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
>    GL_ARB_shader_texture_image_samples                   DONE (i965, nv50, nvc0, r600, radeonsi)
>    GL_ARB_texture_barrier                                DONE (i965, nv50, nvc0, r600, radeonsi)
>    GL_KHR_context_flush_control                          DONE (all - but needs GLX/EGL extension to be useful)
> @@ -223,25 +223,26 @@ GL 4.5, GLSL 4.50:
>    GL_EXT_shader_integer_mix                             DONE (all drivers that support GLSL)
>  
>  These are the extensions cherry-picked to make GLES 3.1
> -GLES3.1, GLSL ES 3.1
> +GLES3.1, GLSL ES 3.1 --- all DONE: i965

I'm not sure what to do about this one.  We only support OpenGL ES 3.1
on Gen8 and later due to stencil texturing.  The other extensions are
generally supported on all i965 hardware.  Though, even that is not 100%
true... GL_ARB_compute_shader is only supported on Gen7+, for example.

Hm... since GL_ART_stencil_texturing stil has the Gen8+ note, this
should be fine.

> +
>    GL_ARB_arrays_of_arrays                               DONE (all drivers that support GLSL 1.30)
> -  GL_ARB_compute_shader                                 DONE (i965)
> -  GL_ARB_draw_indirect                                  DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe)
> +  GL_ARB_compute_shader                                 DONE ()
> +  GL_ARB_draw_indirect                                  DONE (nvc0, r600, radeonsi, llvmpipe, softpipe)
>    GL_ARB_explicit_uniform_location                      DONE (all drivers that support GLSL)
> -  GL_ARB_framebuffer_no_attachments                     DONE (i965, nvc0, r600, radeonsi, softpipe)
> -  GL_ARB_program_interface_query                        DONE (all drivers)
> -  GL_ARB_shader_atomic_counters                         DONE (i965, nvc0, radeonsi, softpipe)
> -  GL_ARB_shader_image_load_store                        DONE (i965, softpipe, radeonsi)
> -  GL_ARB_shader_image_size                              DONE (i965, softpipe, radeonsi)
> -  GL_ARB_shader_storage_buffer_object                   DONE (i965, nvc0, radeonsi, softpipe)
> -  GL_ARB_shading_language_packing                       DONE (all drivers)
> -  GL_ARB_separate_shader_objects                        DONE (all drivers)
> +  GL_ARB_framebuffer_no_attachments                     DONE (nvc0, r600, radeonsi, softpipe)
> +  GL_ARB_program_interface_query                        DONE (nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
> +  GL_ARB_shader_atomic_counters                         DONE (nvc0, radeonsi, softpipe)
> +  GL_ARB_shader_image_load_store                        DONE (softpipe, radeonsi)
> +  GL_ARB_shader_image_size                              DONE (softpipe, radeonsi)
> +  GL_ARB_shader_storage_buffer_object                   DONE (nvc0, radeonsi, softpipe)
> +  GL_ARB_shading_language_packing                       DONE (nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
> +  GL_ARB_separate_shader_objects                        DONE (nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
>    GL_ARB_stencil_texturing                              DONE (i965/gen8+, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
> -  GL_ARB_texture_multisample (Multisample textures)     DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
> +  GL_ARB_texture_multisample (Multisample textures)     DONE (nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
>    GL_ARB_texture_storage_multisample                    DONE (all drivers that support GL_ARB_texture_multisample)
> -  GL_ARB_vertex_attrib_binding                          DONE (all drivers)
> -  GS5 Enhanced textureGather                            DONE (i965, nvc0, r600, radeonsi)
> -  GS5 Packing/bitfield/conversion functions             DONE (i965, nvc0, r600, radeonsi)
> +  GL_ARB_vertex_attrib_binding                          DONE (nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
> +  GS5 Enhanced textureGather                            DONE (nvc0, r600, radeonsi)
> +  GS5 Packing/bitfield/conversion functions             DONE (nvc0, r600, radeonsi)
>    GL_EXT_shader_integer_mix                             DONE (all drivers that support GLSL)
>  
>    Additional functionality not covered above:
> @@ -251,14 +252,15 @@ GLES3.1, GLSL ES 3.1
>        gl_HelperInvocation support                       DONE (i965, nvc0, r600)

The bits above should get the same treatment as the rest of the GLES 3.1
section.

>  
>  GLES3.2, GLSL ES 3.2
> -  GL_EXT_color_buffer_float                             DONE (all drivers)
> +
> +  GL_EXT_color_buffer_float                             DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)

I think this is one of the few changes from "all drivers" that is correct.

>    GL_KHR_blend_equation_advanced                        not started
> -  GL_KHR_debug                                          DONE (all drivers)
> +  GL_KHR_debug                                          DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
>    GL_KHR_robustness                                     not started (90% done with the ARB variant)
>    GL_KHR_texture_compression_astc_ldr                   DONE (i965/gen9+)
>    GL_OES_copy_image                                     DONE (core only)
>    GL_OES_draw_buffers_indexed                           DONE (all drivers that support GL_ARB_draw_buffers_blend)
> -  GL_OES_draw_elements_base_vertex                      DONE (all drivers)
> +  GL_OES_draw_elements_base_vertex                      DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
>    GL_OES_geometry_shader                                started (Marta)
>    GL_OES_gpu_shader5                                    DONE (all drivers that support GL_ARB_gpu_shader5)
>    GL_OES_primitive_bounding box                         not started
> @@ -268,7 +270,7 @@ GLES3.2, GLSL ES 3.2
>    GL_OES_shader_io_blocks                               not started (based on parts of GLSL 1.50, which is done)
>    GL_OES_shader_multisample_interpolation               DONE (nvc0, r600, radeonsi)
>    GL_OES_tessellation_shader                            not started (based on GL_ARB_tessellation_shader, which is done for some drivers)
> -  GL_OES_texture_border_clamp                           DONE (all drivers)
> +  GL_OES_texture_border_clamp                           DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe)
>    GL_OES_texture_buffer                                 DONE (i965, radeonsi)
>    GL_OES_texture_cube_map_array                         not started (based on GL_ARB_texture_cube_map_array, which is done for all drivers)
>    GL_OES_texture_stencil8                               DONE (all drivers that support GL_ARB_texture_stencil8)
> 



More information about the mesa-dev mailing list