--- src/mesa/state_tracker/st_extensions.c | 17 +++++++++++++++-- 1 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index 3092a1a..621d910 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -206,8 +206,21 @@ void st_init_limits(struct st_context *st) options->EmitNoIndirectUniform = !screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_INDIRECT_CONST_ADDR); - options->VaryingsPackingConstraint = screen->get_shader_param(screen, sh, - PIPE_SHADER_CAP_VARYINGS_PACKING_CONSTRAINTS); + switch (screen->get_shader_param(screen, sh, + PIPE_SHADER_CAP_VARYINGS_PACKING_CONSTRAINTS)) { + case PIPE_PACKING_CONSTRAINT_NONE: + options->VaryingsPackingConstraint = PACKING_CONSTRAINT_NONE; + break; + case PIPE_PACKING_CONSTRAINT_SMOOTH_NO_PERSPECTIVE_MIXED: + options->VaryingsPackingConstraint = PACKING_CONSTRAINT_SMOOTH_NOPERSPECTIVE_MIXED; + break; + case PIPE_PACKING_CONSTRAINT_NO_MIXED_INTERPOLATION: + options->VaryingsPackingConstraint = PACKING_CONSTRAINT_NO_MIXED_INTERPOLATION; + break; + default: + options->VaryingsPackingConstraint = PACKING_CONSTRAINT_AVOID_PACKING; + break; + } if (options->EmitNoLoops) options->MaxUnrollIterations = MIN2(screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_INSTRUCTIONS), 65536); -- 1.7.7 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev