[Mesa-dev] [PATCH v2] st/mesa: do not init limits when compute shaders are not supported

Ilia Mirkin imirkin at alum.mit.edu
Mon Feb 15 21:47:16 UTC 2016


On Mon, Feb 15, 2016 at 4:44 PM, Samuel Pitoiset
<samuel.pitoiset at gmail.com> wrote:
> When the number of uniform blocks is less than 12,
> ARB_uniform_buffer_object can't be enabled and the maximum GL version
> is not even 3.1...
>
> This fixes a regression introduced in 7c79c1e (st/mesa: add compute
> shader state) if the maximum number of uniform blocks allowed for
> compute shaders is less than 12. This happens on Kepler but this might
> also affect other Gallium drivers.
>
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> Reported-by: Tobias Klausmann <tobias.johannes.klausmann at mni.thm.de>
> Tested-by: Tobias Klausmann <tobias.johannes.klausmann at mni.thm.de>

Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>

> ---
>  src/mesa/state_tracker/st_extensions.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
> index bdfbded..2f5d3f7 100644
> --- a/src/mesa/state_tracker/st_extensions.c
> +++ b/src/mesa/state_tracker/st_extensions.c
> @@ -75,6 +75,7 @@ static int _clamp(int a, int min, int max)
>  void st_init_limits(struct pipe_screen *screen,
>                      struct gl_constants *c, struct gl_extensions *extensions)
>  {
> +   int supported_irs;
>     unsigned sh;
>     boolean can_ubo = TRUE;
>
> @@ -177,6 +178,13 @@ void st_init_limits(struct pipe_screen *screen,
>        case PIPE_SHADER_COMPUTE:
>           pc = &c->Program[MESA_SHADER_COMPUTE];
>           options = &c->ShaderCompilerOptions[MESA_SHADER_COMPUTE];
> +
> +         if (!screen->get_param(screen, PIPE_CAP_COMPUTE))
> +            continue;
> +         supported_irs =
> +            screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_SUPPORTED_IRS);
> +         if (!(supported_irs & (1 << PIPE_SHADER_IR_TGSI)))
> +            continue;
>           break;
>        default:
>           assert(0);
> --
> 2.6.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list