[Mesa-dev] [PATCH 7/7] st/mesa: enable GL image extensions when backend supports them

Marek Olšák maraeo at gmail.com
Tue Feb 2 19:08:19 UTC 2016


Patches 1-5, 7:

Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek

On Sun, Jan 31, 2016 at 2:55 AM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> This enables ARB_shader_image_load_store and ARB_shader_image_size when
> the backend claims support for these. It will also implicitly enable the
> image component of ARB_shader_texture_image_samples.
>
> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
> ---
>  src/mesa/state_tracker/st_extensions.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
>
> diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
> index d066784..f0fee88 100644
> --- a/src/mesa/state_tracker/st_extensions.c
> +++ b/src/mesa/state_tracker/st_extensions.c
> @@ -223,6 +223,9 @@ void st_init_limits(struct pipe_screen *screen,
>              screen, sh, PIPE_SHADER_CAP_MAX_SHADER_BUFFERS) / 2;
>        pc->MaxShaderStorageBlocks = pc->MaxAtomicBuffers;
>
> +      pc->MaxImageUniforms = screen->get_shader_param(
> +            screen, sh, PIPE_SHADER_CAP_MAX_SHADER_IMAGES);
> +
>        /* Gallium doesn't really care about local vs. env parameters so use the
>         * same limits.
>         */
> @@ -363,6 +366,19 @@ void st_init_limits(struct pipe_screen *screen,
>        c->MaxShaderStorageBlockSize = 1 << 27;
>        extensions->ARB_shader_storage_buffer_object = GL_TRUE;
>     }
> +
> +   c->MaxCombinedImageUniforms =
> +         c->Program[MESA_SHADER_VERTEX].MaxImageUniforms +
> +         c->Program[MESA_SHADER_TESS_CTRL].MaxImageUniforms +
> +         c->Program[MESA_SHADER_TESS_EVAL].MaxImageUniforms +
> +         c->Program[MESA_SHADER_GEOMETRY].MaxImageUniforms +
> +         c->Program[MESA_SHADER_FRAGMENT].MaxImageUniforms;
> +   c->MaxImageUnits = MAX_IMAGE_UNITS;
> +   c->MaxImageSamples = 0; /* XXX */
> +   if (c->MaxCombinedImageUniforms) {
> +      extensions->ARB_shader_image_load_store = GL_TRUE;
> +      extensions->ARB_shader_image_size = GL_TRUE;
> +   }
>  }
>
>
> --
> 2.4.10
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list