[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