<p dir="ltr"><br>
On Jul 26, 2015 2:09 PM, "Eduardo Lima Mitev" <<a href="mailto:elima@igalia.com">elima@igalia.com</a>> wrote:<br>
><br>
> On 07/25/2015 12:04 AM, Jason Ekstrand wrote:<br>
> > I think we already agreed to just copy data.location into<br>
> > data.driver_location and we don't need this special-casing.<br>
> ><br>
> > Just making a note of it as I review.<br>
> > --Jason<br>
> ><br>
><br>
> Yes, I have completely removed this patch from the series. Now all the<br>
> agreed changes live in the patch that implements store_output intrinsic,<br>
> which now looks like this:<br>
><br>
> <a href="https://github.com/Igalia/mesa/commit/c7bfd3e8f0fa5540b4728f712e8441c254d029ba">https://github.com/Igalia/mesa/commit/c7bfd3e8f0fa5540b4728f712e8441c254d029ba</a><br></p>
<p dir="ltr">Those changes look fine.<br>
><br>
> > On Thu, Jul 23, 2015 at 3:17 AM, Eduardo Lima Mitev <<a href="mailto:elima@igalia.com">elima@igalia.com</a>> wrote:<br>
> >> Non-scalar backends like i965's NIR-vec4  need the orginal variable's varying<br>
> >> value instead of the driver_location (due to the way URB file emission is<br>
> >> implemented). This patch stores variable's location in const_index[0] instead of<br>
> >> the current driver_location value, which is not needed.<br>
> >> ---<br>
> >>  src/glsl/nir/nir_lower_io.c | 12 ++++++++++--<br>
> >>  1 file changed, 10 insertions(+), 2 deletions(-)<br>
> >><br>
> >> diff --git a/src/glsl/nir/nir_lower_io.c b/src/glsl/nir/nir_lower_io.c<br>
> >> index ccc832b..71a925c 100644<br>
> >> --- a/src/glsl/nir/nir_lower_io.c<br>
> >> +++ b/src/glsl/nir/nir_lower_io.c<br>
> >> @@ -378,9 +378,17 @@ nir_lower_io_block(nir_block *block, void *void_state)<br>
> >>           nir_src indirect;<br>
> >>           unsigned offset = get_io_offset(intrin->variables[0],<br>
> >>                                           &intrin->instr, &indirect, state);<br>
> >> -         offset += intrin->variables[0]->var->data.driver_location;<br>
> >><br>
> >> -         store->const_index[0] = offset;<br>
> >> +         /* Some non-scalar backends (like i965's NIR-vec4) need the orginal<br>
> >> +          * variable's varying value instead of the driver_location.<br>
> >> +          */<br>
> >> +         if (!state->is_scalar) {<br>
> >> +            store->const_index[0] =<br>
> >> +               intrin->variables[0]->var->data.location + offset;<br>
> >> +         } else {<br>
> >> +            store->const_index[0] =<br>
> >> +               intrin->variables[0]->var->data.driver_location + offset;<br>
> >> +         }<br>
> >><br>
> >>           nir_src_copy(&store->src[0], &intrin->src[0], state->mem_ctx);<br>
> >><br>
> >> --<br>
> >> 2.1.4<br>
> >><br>
> >> _______________________________________________<br>
> >> mesa-dev mailing list<br>
> >> <a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
> >> <a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
> ><br>
><br>
</p>