rb -- Timothy Arceri [email protected]
On Wed, Dec 20, 2017, at 5:08 PM, Brian Paul wrote: > Ping, anyone? > > -Brian > > On 12/18/2017 09:30 PM, Brian Paul wrote: > > The mix of bitwise operators with * and + to compute the packing_class > > values was a little weird. Just use bitwise ops instead. > > > > v2: add assertion to make sure interpolation bits fit without collision, > > per Timothy. Basically, rewrite function to be simpler. > > --- > > src/compiler/glsl/link_varyings.cpp | 15 ++++++++++----- > > 1 file changed, 10 insertions(+), 5 deletions(-) > > > > diff --git a/src/compiler/glsl/link_varyings.cpp > > b/src/compiler/glsl/link_varyings.cpp > > index 7821b1e..5d39889 100644 > > --- a/src/compiler/glsl/link_varyings.cpp > > +++ b/src/compiler/glsl/link_varyings.cpp > > @@ -1982,12 +1982,17 @@ varying_matches::compute_packing_class(const > > ir_variable *var) > > * > > * Therefore, the packing class depends only on the interpolation type. > > */ > > - unsigned packing_class = var->data.centroid | (var->data.sample << 1) | > > - (var->data.patch << 2) | > > - (var->data.must_be_shader_input << 3); > > - packing_class *= 8; > > - packing_class += var->is_interpolation_flat() > > + const unsigned interp = var->is_interpolation_flat() > > ? unsigned(INTERP_MODE_FLAT) : var->data.interpolation; > > + > > + assert(interp < (1 << 3)); > > + > > + const unsigned packing_class = (interp << 0) | > > + (var->data.centroid << 3) | > > + (var->data.sample << 4) | > > + (var->data.patch << 5) | > > + (var->data.must_be_shader_input << 6); > > + > > return packing_class; > > } > > > > > > _______________________________________________ > mesa-dev mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
