st/mesa: MAX_VARYING is the max supported number of patch varyings, not min
authorIlia Mirkin <imirkin@alum.mit.edu>
Thu, 26 Jan 2017 03:31:58 +0000 (22:31 -0500)
committerIlia Mirkin <imirkin@alum.mit.edu>
Fri, 3 Feb 2017 01:28:58 +0000 (20:28 -0500)
This fixes
GL45-CTS.tessellation_shader.tessellation_shader_tessellation.max_in_out_attributes
on nouveau. We only support 30 patch varyings (as 2 vec4 slots end up
being used for tess level settings), but were getting 32 exposed.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Cc: "13.0 17.0" <mesa-stable@lists.freedesktop.org>
src/mesa/state_tracker/st_extensions.c

index 4d46006..293814e 100644 (file)
@@ -348,7 +348,7 @@ void st_init_limits(struct pipe_screen *screen,
    c->MaxGeometryTotalOutputComponents =
       screen->get_param(screen, PIPE_CAP_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS);
    c->MaxTessPatchComponents =
-      MAX2(screen->get_param(screen, PIPE_CAP_MAX_SHADER_PATCH_VARYINGS),
+      MIN2(screen->get_param(screen, PIPE_CAP_MAX_SHADER_PATCH_VARYINGS),
            MAX_VARYING) * 4;
 
    c->MinProgramTexelOffset =