[Mesa-dev] [PATCH] glsl/linker: Fix out variables linking during single stage

Vadim Shovkoplias vadim.shovkoplias at gmail.com
Mon Oct 29 11:05:07 UTC 2018


Hi Timothy,

Thanks for the review. Piglit patch is updated with the additional out var:
https://patchwork.freedesktop.org/patch/258899/
Original reporter confirmed that issue is finally fixed with the current
patch and closed it.

Can I ask to push the patch please ?

Regards,
Vadym

сб, 27 окт. 2018 г. в 1:21, Timothy Arceri <tarceri at itsqueeze.com>:

> On Wed, Oct 24, 2018, at 3:28 AM, Vadym Shovkoplias wrote:
> > Since out variables are copied from shader objects instruction
> > streams to linked shader instruction steam it should be cloned
> > at first to keep source instruction steam unaltered.
> >
> > Fixes: 966a797e433 glsl/linker: Link all out vars from a shader
> > objects on a single stage
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105731
> > Signed-off-by: Vadym Shovkoplias <vadym.shovkoplias at globallogic.com>
>
> Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
>
> Also please either update the existing piglit or add a new one to better
> cover the use of the freed vars. From the bug report it seems adding
> another out var is enough to do it. Thanks.
>
> > ---
> >  src/compiler/glsl/linker.cpp | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp
> > index 7db34ebf95..8b1b03322a 100644
> > --- a/src/compiler/glsl/linker.cpp
> > +++ b/src/compiler/glsl/linker.cpp
> > @@ -2269,10 +2269,11 @@ link_output_variables(struct gl_linked_shader
> > *linked_shader,
> >           if (ir->ir_type != ir_type_variable)
> >              continue;
> >
> > -         ir_variable *const var = (ir_variable *) ir;
> > +         ir_variable *var = (ir_variable *) ir;
> >
> >           if (var->data.mode == ir_var_shader_out &&
> >                 !symbols->get_variable(var->name)) {
> > +            var = var->clone(linked_shader, NULL);
> >              symbols->add_variable(var);
> >              linked_shader->ir->push_head(var);
> >           }
> > --
> > 2.18.0
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20181029/066a9408/attachment.html>


More information about the mesa-dev mailing list