[Mesa-dev] [PATCH] glsl/linker: Fix out variables linking during single stage
Tapani Pälli
tapani.palli at intel.com
Tue Oct 30 11:14:14 UTC 2018
Hi;
On 10/30/18 1:28 AM, Timothy Arceri wrote:
> On 29/10/18 10:05 pm, Vadim Shovkoplias wrote:
>> 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 ?
>
> I've pushed both. Thanks for the patches!
Unfortunately it seems this patch introduced regression in Intel CI, I'm
getting following failures after this commit (7d66eddbbde):
piglit.spec.glsl-1_30.execution.tex-miplevel-selection texturelodoffset
2dshadow.snbm64
piglit.spec.glsl-1_30.execution.tex-miplevel-selection texturelod
2dshadow.snbm64
piglit.spec.glsl-1_30.execution.tex-miplevel-selection texturelod
cube.snbm64
generated.gpu-hang-otc-gfxtest-snbgt2-02.snbm64
>>
>> Regards,
>> Vadym
>>
>> сб, 27 окт. 2018 г. в 1:21, Timothy Arceri <tarceri at itsqueeze.com
>> <mailto: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
>> <mailto:vadym.shovkoplias at globallogic.com>>
>>
>> Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com
>> <mailto: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
>> >
>>
More information about the mesa-dev
mailing list