[Mesa-stable] [Mesa-dev] [PATCH] glsl/linker: Allow unused in blocks which are not declated on previous stage
Dylan Baker
dylan at pnwbakers.com
Tue Aug 28 16:03:04 UTC 2018
Quoting Andres Gomez (2018-08-28 06:48:27)
> Just Ccing Dylan ...
>
>
> On Tue, 2018-08-28 at 10:23 +0300, Vadym Shovkoplias wrote:
> > Hi Andreas,
> >
> > Similar patch for varyings linking was pushed 4 years ago, so I think this patch should be also stable.
> >
> >
> > On Tue, Aug 28, 2018 at 12:20 AM, Andres Gomez <agomez at igalia.com> wrote:
> > > Vadym, should we also include this in the stable queues ?
> > >
> > >
> > > On Mon, 2018-08-20 at 16:31 +0300, vadym.shovkoplias wrote:
> > > > From Section 4.3.4 (Inputs) of the GLSL 1.50 spec:
> > > >
> > > > "Only the input variables that are actually read need to be written
> > > > by the previous stage; it is allowed to have superfluous
> > > > declarations of input variables."
> > > >
> > > > Fixes:
> > > > * interstage-multiple-shader-objects.shader_test
> > > >
> > > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101247
> > > > Signed-off-by: Vadym Shovkoplias <vadym.shovkoplias at globallogic.com>
> > > > ---
> > > > src/compiler/glsl/link_interface_blocks.cpp | 8 +++++++-
> > > > 1 file changed, 7 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/src/compiler/glsl/link_interface_blocks.cpp b/src/compiler/glsl/link_interface_blocks.cpp
> > > > index e5eca9460e..801fbcd5d9 100644
> > > > --- a/src/compiler/glsl/link_interface_blocks.cpp
> > > > +++ b/src/compiler/glsl/link_interface_blocks.cpp
> > > > @@ -417,9 +417,15 @@ validate_interstage_inout_blocks(struct gl_shader_program *prog,
> > > > * write to any of the pre-defined outputs (e.g. if the vertex shader
> > > > * does not write to gl_Position, etc), which is allowed and results in
> > > > * undefined behavior.
> > > > + *
> > > > + * From Section 4.3.4 (Inputs) of the GLSL 1.50 spec:
> > > > + *
> > > > + * "Only the input variables that are actually read need to be written
> > > > + * by the previous stage; it is allowed to have superfluous
> > > > + * declarations of input variables."
> > > > */
> > > > if (producer_def == NULL &&
> > > > - !is_builtin_gl_in_block(var, consumer->Stage)) {
> > > > + !is_builtin_gl_in_block(var, consumer->Stage) && var->data.used) {
> > > > linker_error(prog, "Input block `%s' is not an output of "
> > > > "the previous stage\n", var->get_interface_type()->name);
> > > > return;
> > > --
> > > Br,
> > >
> > > Andres
> >
> >
> >
> > _______________________________________________
> > mesa-stable mailing list
> > mesa-stable at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-stable
> --
> Br,
>
> Andres
Staged for 18.1, thanks Andres.
Dylan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/mesa-stable/attachments/20180828/3eb16982/attachment.sig>
More information about the mesa-stable
mailing list