OSDN Git Service

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)
committerEmil Velikov <emil.l.velikov@gmail.com>
Wed, 8 Feb 2017 14:29:09 +0000 (14:29 +0000)
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>
(cherry picked from commit 7d3f9ed71c71637a91ecf15f50dbe7578a65d57e)

src/mesa/state_tracker/st_extensions.c

index 5ccc5d9..3154e9c 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 =