[Mesa-dev] [PATCH] st/mesa: expose OES_geometry_shader and OES_texture_cube_map_array

Ilia Mirkin imirkin at alum.mit.edu
Wed Aug 31 20:55:02 UTC 2016


On Wed, Aug 31, 2016 at 4:46 PM, Marek Olšák <maraeo at gmail.com> wrote:
> On Wed, Aug 31, 2016 at 1:33 AM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>> On Mon, Aug 29, 2016 at 11:49 AM, Marek Olšák <maraeo at gmail.com> wrote:
>>> On Mon, Aug 29, 2016 at 5:41 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>>>> On Mon, Aug 29, 2016 at 11:35 AM, Marek Olšák <maraeo at gmail.com> wrote:
>>>>> On Sat, Aug 27, 2016 at 11:53 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>>>>>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>>>>>> ---
>>>>>>  docs/features.txt                      |  4 ++--
>>>>>>  docs/relnotes/12.1.0.html              |  4 ++--
>>>>>>  src/mesa/state_tracker/st_extensions.c | 14 ++++++++++++++
>>>>>>  3 files changed, 18 insertions(+), 4 deletions(-)
>>>>>>
>>>>>> diff --git a/docs/features.txt b/docs/features.txt
>>>>>> index 26e8ff7..4c755c6 100644
>>>>>> --- a/docs/features.txt
>>>>>> +++ b/docs/features.txt
>>>>>> @@ -260,7 +260,7 @@ GLES3.2, GLSL ES 3.2:
>>>>>>    GL_OES_copy_image                                     DONE (all drivers)
>>>>>>    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_geometry_shader                                DONE (i965/gen8+)
>>>>>> +  GL_OES_geometry_shader                                DONE (i965/gen8+, nvc0, radeonsi)
>>>>>>    GL_OES_gpu_shader5                                    DONE (all drivers that support GL_ARB_gpu_shader5)
>>>>>>    GL_OES_primitive_bounding_box                         not started
>>>>>>    GL_OES_sample_shading                                 DONE (i965, nvc0, r600, radeonsi)
>>>>>> @@ -271,7 +271,7 @@ GLES3.2, GLSL ES 3.2:
>>>>>>    GL_OES_tessellation_shader                            started (Ken)
>>>>>>    GL_OES_texture_border_clamp                           DONE (all drivers)
>>>>>>    GL_OES_texture_buffer                                 DONE (i965, nvc0, radeonsi)
>>>>>> -  GL_OES_texture_cube_map_array                         DONE (i965/gen8+)
>>>>>> +  GL_OES_texture_cube_map_array                         DONE (i965/gen8+, nvc0, radeonsi)
>>>>>>    GL_OES_texture_stencil8                               DONE (all drivers that support GL_ARB_texture_stencil8)
>>>>>>    GL_OES_texture_storage_multisample_2d_array           DONE (all drivers that support GL_ARB_texture_multisample)
>>>>>>
>>>>>> diff --git a/docs/relnotes/12.1.0.html b/docs/relnotes/12.1.0.html
>>>>>> index d22d14b..f77ef91 100644
>>>>>> --- a/docs/relnotes/12.1.0.html
>>>>>> +++ b/docs/relnotes/12.1.0.html
>>>>>> @@ -57,8 +57,8 @@ Note: some of the new features are only available with certain drivers.
>>>>>>  <li>GL_KHR_blend_equation_advanced on i965</li>
>>>>>>  <li>GL_KHR_texture_compression_astc_sliced_3d on i965</li>
>>>>>>  <li>GL_OES_copy_image on nv50, nvc0, r600, radeonsi, softpipe, llvmpipe</li>
>>>>>> -<li>GL_OES_geometry_shader on i965/gen8+</li>
>>>>>> -<li>GL_OES_texture_cube_map_array on i965/gen8+</li>
>>>>>> +<li>GL_OES_geometry_shader on i965/gen8+, nvc0, radeonsi</li>
>>>>>> +<li>GL_OES_texture_cube_map_array on i965/gen8+, nvc0, radeonsi</li>
>>>>>>  </ul>
>>>>>>
>>>>>>  <h2>Bug fixes</h2>
>>>>>> diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
>>>>>> index f86a5a3..c7ec10c 100644
>>>>>> --- a/src/mesa/state_tracker/st_extensions.c
>>>>>> +++ b/src/mesa/state_tracker/st_extensions.c
>>>>>> @@ -946,6 +946,15 @@ void st_init_extensions(struct pipe_screen *screen,
>>>>>>        extensions->ARB_tessellation_shader = GL_TRUE;
>>>>>>     }
>>>>>>
>>>>>> +   /* Ideally this should also check that invocations are supported. In
>>>>>> +    * practice, all of the hw that supports ES 3.1 also supports multiple
>>>>>> +    * invocations.
>>>>>> +    */
>>>>>> +   if (screen->get_shader_param(screen, PIPE_SHADER_GEOMETRY,
>>>>>> +                                PIPE_SHADER_CAP_MAX_INSTRUCTIONS) > 0) {
>>>>>> +      extensions->OES_geometry_shader = GL_TRUE;
>>>>>> +   }
>>>>>
>>>>> This should also check ARB_gpu_shader5, which adds support for
>>>>> multiple GS invocations.
>>>>
>>>> Yeah, I just thought it was a little heavy to check for gs5 when all
>>>> we wanted were multiple invocations. And I didn't really want to go
>>>> through and add a new cap. I guess the safe thing is to add a gs5 dep
>>>> and then when some hw comes along that wants OES_geom but not ARB_gs5,
>>>> we can worry about it then.
>>>
>>> Yeah that sounds good.
>>
>> How's
>>
>> https://github.com/imirkin/mesa/commit/6f9c56765849b4feaca129368e9ab5746567d908.patch
>>
>
> Reviewed-by: Marek Olšák <marek.olsak at amd.com>
>
> Note that r600g can also do cubemap arrays and multiple GS invocations.

But it can't do GLES 3.1 (yet).

  -ilia


More information about the mesa-dev mailing list