[Mesa-dev] [PATCH 12/28] glsl: update explicit location matching to support component qualifier
Anuj Phogat
anuj.phogat at gmail.com
Thu Jan 7 13:52:41 PST 2016
On Mon, Dec 28, 2015 at 9:00 PM, Timothy Arceri
<timothy.arceri at collabora.com> wrote:
> This is needed so we don't optimise away the varying when more than
> one shares the same location.
> ---
> src/glsl/linker.cpp | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
> index 31d55e3..f709922 100644
> --- a/src/glsl/linker.cpp
> +++ b/src/glsl/linker.cpp
> @@ -2684,7 +2684,7 @@ match_explicit_outputs_to_inputs(struct gl_shader_program *prog,
> gl_shader *consumer)
> {
> glsl_symbol_table parameters;
> - ir_variable *explicit_locations[MAX_VARYING] = { NULL };
> + ir_variable *explicit_locations[MAX_VARYING][4] = { {NULL, NULL} };
>
> /* Find all shader outputs in the "producer" stage.
> */
> @@ -2697,8 +2697,8 @@ match_explicit_outputs_to_inputs(struct gl_shader_program *prog,
> if (var->data.explicit_location &&
> var->data.location >= VARYING_SLOT_VAR0) {
> const unsigned idx = var->data.location - VARYING_SLOT_VAR0;
> - if (explicit_locations[idx] == NULL)
> - explicit_locations[idx] = var;
> + if (explicit_locations[idx][var->data.location_frac] == NULL)
> + explicit_locations[idx][var->data.location_frac] = var;
> }
> }
>
> @@ -2712,7 +2712,8 @@ 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) {
> - output = explicit_locations[input->data.location - VARYING_SLOT_VAR0];
> + output = explicit_locations[input->data.location - VARYING_SLOT_VAR0]
> + [input->data.location_frac];
>
> if (output != NULL){
> input->data.is_unmatched_generic_inout = 0;
> --
> 2.4.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
More information about the mesa-dev
mailing list