glsl/linker: always validate explicit locations for first and last interfaces

Until now, we were only doing this when linking a SSO
program. However, nothing avoids linking a non SSO program which
doesn't have both a VS and FS. In those cases, we also need to report
the usual linking errors, if happening.

v2: Use a better name for the renamed function (Timothy).

Signed-off-by: Andres Gomez <agomez@igalia.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
Andres Gomez
2019-03-08 23:21:58 +02:00
parent 6281517f3e
commit 42351c21bb
3 changed files with 17 additions and 20 deletions

View File

@@ -678,17 +678,15 @@ validate_explicit_variable_location(struct gl_context *ctx,
/**
* Validate explicit locations for the inputs to the first stage and the
* outputs of the last stage in an SSO program (everything in between is
* validated in cross_validate_outputs_to_inputs).
* outputs of the last stage in a program, if those are not the VS and FS
* shaders.
*/
void
validate_sso_explicit_locations(struct gl_context *ctx,
struct gl_shader_program *prog,
gl_shader_stage first_stage,
gl_shader_stage last_stage)
validate_first_and_last_interface_explicit_locations(struct gl_context *ctx,
struct gl_shader_program *prog,
gl_shader_stage first_stage,
gl_shader_stage last_stage)
{
assert(prog->SeparateShader);
/* VS inputs and FS outputs are validated in
* assign_attribute_or_color_locations()
*/