Cool. 1-3 are Reviewed-by: Jason Ekstrand <[email protected]>
On Fri, Nov 9, 2018 at 7:09 AM Alejandro Piñeiro <[email protected]> wrote: > The offset compute was working fine for the case of attrib_slots=1, > and updating the offset for the following varying. > > But in the case of attrib_slots=2 (so dvec3/4), we are basically > splitting the comp_slots needed in two outputs. In that case we can't > add to the offset the full size of the type. > > v2: added assert and some parenthesis to improve readability (Jason) > --- > src/compiler/nir/nir_gather_xfb_info.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/src/compiler/nir/nir_gather_xfb_info.c > b/src/compiler/nir/nir_gather_xfb_info.c > index f8d4cd833c7..f4f597da4f5 100644 > --- a/src/compiler/nir/nir_gather_xfb_info.c > +++ b/src/compiler/nir/nir_gather_xfb_info.c > @@ -81,7 +81,12 @@ add_var_xfb_outputs(nir_xfb_info *xfb, > output->component_mask = (comp_mask >> (s * 4)) & 0xf; > > (*location)++; > - *offset += comp_slots * 4; > + /* attrib_slots would be only > 1 for doubles. On that case > + * comp_slots will be a multiple of 2, so the following doesn't > need > + * to use DIV_ROUND_UP or similar > + */ > + assert(comp_slots % attrib_slots == 0); > + *offset += (comp_slots / attrib_slots) * 4; > } > } > } > -- > 2.14.1 > >
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
