mesa/subroutines: count number subroutines properly.

The code was implementing the ACTIVE_SUBROUTINE_UNIFORMS
incorrectly, using the number of types not the number of
uniforms. This is different than the locations as the
locations may be sparsly allocated.

This fixes:
GL43-CTS.shader_subroutine.four_subroutines_with_two_uniforms

Reviewed-by: Chris Forbes <chrisforbes@google.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
Dave Airlie
2016-05-17 14:22:57 +10:00
parent 22db9b10eb
commit 7fa0250f94
3 changed files with 4 additions and 2 deletions

View File

@@ -3096,6 +3096,7 @@ link_calculate_subroutine_compat(struct gl_shader_program *prog)
if (!uni)
continue;
sh->NumSubroutineUniforms++;
count = 0;
if (sh->NumSubroutineFunctions == 0) {
linker_error(prog, "subroutine uniform %s defined but no valid functions found\n", uni->type->name);