[Mesa-dev] [PATCH v2 05/23] glsl: Fail to link if inter-stage input/outputs are not assigned to stream 0

Ian Romanick idr at freedesktop.org
Wed Jun 18 12:57:10 PDT 2014


Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

On 06/18/2014 02:51 AM, Iago Toral Quiroga wrote:
> Outputs that are linked to inputs in the next stage must be output to stream 0,
> otherwise we should fail to link.
> ---
>  src/glsl/link_varyings.cpp | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/src/glsl/link_varyings.cpp b/src/glsl/link_varyings.cpp
> index 9725a43..3b20594 100644
> --- a/src/glsl/link_varyings.cpp
> +++ b/src/glsl/link_varyings.cpp
> @@ -1345,6 +1345,14 @@ assign_varying_locations(struct gl_context *ctx,
>           if (input_var || (prog->SeparateShader && consumer == NULL)) {
>              matches.record(output_var, input_var);
>           }
> +
> +         /* Only stream 0 outputs can be consumed in the next stage */
> +         if (input_var && output_var->data.stream != 0) {
> +            linker_error(prog, "output %s is assigned to stream=%d but "
> +                         "is linked to an input, which requires stream=0",
> +                         output_var->name, output_var->data.stream);
> +            return false;
> +         }
>        }
>     } else {
>        /* If there's no producer stage, then this must be a separable program.
> 



More information about the mesa-dev mailing list