From: Dave Airlie <airl...@redhat.com> If a subroutine uniform is declared with no functions backing it, that isn't legal, so we should fail to link.
Fixes: GL43-CTS.shader_subroutine.subroutine_uniform_wo_matching_subroutines Signed-off-by: Dave Airlie <airl...@redhat.com> --- src/compiler/glsl/linker.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp index 9c72478..daf9016 100644 --- a/src/compiler/glsl/linker.cpp +++ b/src/compiler/glsl/linker.cpp @@ -3056,6 +3056,10 @@ link_calculate_subroutine_compat(struct gl_shader_program *prog) continue; count = 0; + if (sh->NumSubroutineFunctions == 0) { + linker_error(prog, "subroutine uniform %s defined but no valid functions found\n", uni->type->name); + continue; + } for (unsigned f = 0; f < sh->NumSubroutineFunctions; f++) { struct gl_subroutine_function *fn = &sh->SubroutineFunctions[f]; for (int k = 0; k < fn->num_compat_types; k++) { -- 2.5.5 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev