[Mesa-dev] [PATCH] st/mesa: expose OES_geometry_shader and OES_texture_cube_map_array
Marek Olšák
maraeo at gmail.com
Mon Aug 29 15:35:21 UTC 2016
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.
Marek
More information about the mesa-dev
mailing list