These outputs have a separate location domain from per-vertex outputs and need to be handled separately. For now just skip them. --- src/compiler/glsl/linker.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)
diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp index f4708fa..a4d83e1 100644 --- a/src/compiler/glsl/linker.cpp +++ b/src/compiler/glsl/linker.cpp @@ -2770,6 +2770,15 @@ match_explicit_outputs_to_inputs(struct gl_shader_program *prog, if (var->data.explicit_location && var->data.location >= VARYING_SLOT_VAR0) { + + /* FIXME: We could also match per patch outputs too rather than just + * skipping over them here. + */ + if (var->data.patch) { + var->data.is_unmatched_generic_inout = 0; + continue; + } + const unsigned idx = var->data.location - VARYING_SLOT_VAR0; if (explicit_locations[idx][var->data.location_frac] == NULL) explicit_locations[idx][var->data.location_frac] = var; @@ -2786,6 +2795,15 @@ match_explicit_outputs_to_inputs(struct gl_shader_program *prog, ir_variable *output = NULL; if (input->data.explicit_location && input->data.location >= VARYING_SLOT_VAR0) { + + /* FIXME: We could also match per patch outputs too rather than just + * skipping over them here. + */ + if (input->data.patch) { + input->data.is_unmatched_generic_inout = 0; + continue; + } + output = explicit_locations[input->data.location - VARYING_SLOT_VAR0] [input->data.location_frac]; -- 2.5.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev